CLR
br>
CLR (Common Language Runtime) zwane inaczej zintegrowanym CLR jest to dedykowana dla SQL Server’a wersja .NET.
.NET z kolei jest to platforma programistyczna firmy Microsoft składająca się właśnie z CLR, czyli środowiska uruchomieniowego oraz wszelkich bibliotek klas (.dll) dystrybuujących standardową funkcjonalność aplikacji.
Platforma ta nie jest bezpośrednio powiązana z jakimkolwiek językiem programowania, a sam kod może być implementowany w wielu różnych językach, np. C++, C#, Delphi, F#, J#, czy VB .NET.
Temat programowania w technologii .NET jest bardzo obszerny i wykracza poza wszelkie ramy niniejszego szkolenia, zresztą na ten temat powstało wiele książek, dlatego też w tej lekcji nie będziemy implementować kodu w tej technologi, natomiast nauczymy się integrować go z bazą danych.
br>
br>
WŁAŚCIWOŚCI CLR:
br>
● implementowany kod oraz jego utrzymywanie, analizowanie i kontrolowanie wiąże się ze znajomością przynajmniej jednego języka programowania, jest zdecydowanie trudniejsze;
● do pisania kodu .NET potrzebne jest dodatkowe oprogramowanie: Visual Studio firmy Microsoft;
● pozwala na zarządzanie wątkami oraz wszelkimi zasobami pamięciowymi serwera;
● operacyjnie jest odizolowany od SQL Servera, czyli nie zużywa jego zasobów, tylko zasoby systemowe maszyny;
● daje generalnie nieograniczone możliwości programistyczne, czego nie oferuje nam sam SQL;
● często realizując skomplikowane obliczenia biznesowe CLR będzie zdecydowanie efektywniejszym rozwiązaniem;
● należy pamiętać, że w .NET logika jest dwuwartościowa, a nie trójwartościowa jak w SQL, dla przypomnienia chodzi o operowanie na typach danych nie mających przypisanej wartości w .NET versus wartości NULL w SQL’u.
● w CLR można implementować zarówno wyzwalacze, funkcje, czy procedury łącznie z obsługą parametrów, a w SSMS uruchamia się je analogicznie jak do tej pory, standardowo;
● trzeba mieć odpowiednie uprawnienia jako użytkownik bazodanowy oraz SQL Server musi być odpowiednio skonfigurowany, co jest opisane i zrobione w dołączonym do tej lekcji skrypcie;
● pozwala na dostęp do zewnętrznych zasobów serwera, czego nie można uzyskać z poziomu kodu SQL.
br>
br>
WYMAGANE USTAWIENIA:
br>
TRUSTWORTHY
Właściwość TRUSTWORTHY oznacza, czy SQL Server jest zaufaną bazą danych i ufa całej jej zawartości. Niektóre bazy danych ze względu na dziedzinę oraz jej przeznaczenie nie mogą mieć takiej możliwości odnośnie bezpieczeństwa danych, więc domyślnie ustawienie to jest wyłączone. W celu umożliwienia korzystania z CLR właściwość ta musi być włączona.
CLR ENABLED
Funkcja integracji CLR domyślnie jest wyłączona i żeby z niej korzystać, trzeba ją włączyć.
br>
br>
PLIKI DO ŚCIĄGNIĘCIA:
1. 012_Kod_CLR.sql
2. 012_Kod_CLR_Hello_World.dll
br>