piątek, 6 lutego 2009

Platforma .NET Framework

Platforma .NET jest dość nową technologią opracowaną przez Microsoft i opiera się na mechanizmie opartym o uruchamianie skompilowanego kodu w czymś podobnym do maszyny wirtualnej. Microsoft nazywa środowisko uruchomieniowe: Common Language Runtime (w skrócie CLR). Środowisko CLR kompiluje i wykonuje zapisany w standardowym języku pośrednim Microsoft (MSIL) kod aplikacji zwany kodem zarządzanym (ang. managed code), zapewniając wszystkie podstawowe funkcje konieczne do działania aplikacji.

Mhmm, jakkolwiek skomplikowanie to brzmi, oznacza to, że sposób w jaki uruchamiane są aplikacje bazujące na platformie .NET jest odmienne od tego, jak uruchamiane są aplikacje kompilowane do kodu maszynowego.

Odmienny sposób uruchamiania aplikacji bazujących na .NET Framework niesie za sobą wiele zalet. Programista może przenieść na system operacyjny problemy związane z zarządzaniem pamięcią (niepotrzebne obiekty, zajmujące pamięć, usunie automatycznie tzw. Garbage Collector). .NET Framework zapewnia bogatą bibliotekę komponentów, ułatwiające pisanie aplikacji. Docelowy plik wykonywalny jest zwykle mniejszy od pliku wygenerowanego tradycyjnym sposobem. Języki wykorzystywane do pisania programów na platformę .NET (np. coraz bardziej popularny C#) zostały tak opracowane, by wiele błędów można było wykryć już na poziomie kompilacji. System operacyjny może odizolować uruchomioną aplikację (dla aplikacji tworzona jest tzw. domena aplikacji, dla której można konfigurować odpowiednie zabezpieczenia, poziom izolacji, itp...). Ciekawy jest też nowy sposób zdalnego wywoływania procedur, Microsoft nazwał go ".NET Remoting" oraz jego następca "Windows Communication Foundation" (WCF) . Przewidziane jest kilka sposobów przekazywania danych, m.in: przesyłane binarne (strumienie oparte o protokół TCP), strumienie XML, binarne potoki (zwane w języku ang. "named pipes").

Poza wspomnianymi zaletami niestety pojawiają się również pewne problemy, zwłaszcza w przypadku komunikacji na granicy "kod niezarządzalny" (ang. "unmanaged code" - czyli aplikacje lub biblioteki powstałe w tradycyjny sposób i skompilowane do kodu maszynowaego), a "kod zarządzalny" (ang. "managed code", czyli skompilowany do MSIL). W tym przypadku dostępne są następujące możliwości:

  • wykorzystanie technologii COM,
  • zaimportowanie odpowiedniego pliku DLL i wykorzystanie tzw. .NET Platform Invocation Services

W kolejnych częściach opiszę jak można te dwie możliwości wykorzystać.

Brak komentarzy:

Prześlij komentarz

Posty powiązane / Related posts