Co to jest kod zarządzany?
„Kod zarządzany” to termin stworzony przez Microsoft® Coproration. Termin ten odnosi się do kodu programu, który wymaga użycia maszyny wirtualnej Common Language Runtime (CLR) w celu użycia. Termin „niezarządzany kod” jest używany w odniesieniu do kodu programu, który nie wymaga tej maszyny wirtualnej.
Program Common Language Runtime został opracowany w celu umożliwienia uruchamiania programów na różnych komputerach i systemach operacyjnych bez konieczności wprowadzania zmian w kodzie programu. W tym celu kod programu komputerowego jest konwertowany na kod bajtowy maszyny wirtualnej. Ten kod bajtowy jest następnie interpretowany przez maszynę wirtualną CLR i konwertowany na kod bajtowy dla określonego komputera, na którym jest uruchomiony.
Kod zarządzany może działać na dowolnym komputerze wyposażonym w maszynę wirtualną CLR. Ten wysoki stopień przenośności daje mu zdecydowaną przewagę nad niezarządzanym kodem. Kod niezarządzany wymaga, aby programiści zmienili kod programu w celu użycia na różnych komputerach. Ten proces nie tylko może być powolny, ale może również prowadzić do wielu błędów aplikacji.
Kolejną zaletą kodu zarządzanego jest zwiększone bezpieczeństwo. Bezpieczeństwo programu wykonanego z niezarządzanego kodu zależy w dużej mierze od implementacji dokonanej przez programistów. Korzystanie z maszyny wirtualnej CLR pomaga usunąć dużą część problemów związanych z bezpieczeństwem z programistami. Większość problemów bezpieczeństwa, które mogą się pojawić, są bezpośrednio wyśrodkowane w samej maszynie wirtualnej. To samo w sobie pomaga scentralizować problemy, znacznie przyspieszając wdrażanie poprawek bezpieczeństwa.
Kwestia, czy określony zestaw kodu jest kodem zarządzanym czy niezarządzanym, jest niezwykle ważna dla programistów komputerowych. Kod zarządzany ma wyższy stopień przenośności, ale ta przenośność wymaga zainstalowania środowiska uruchomieniowego języka wspólnego na komputerze docelowym. Z kolei niezarządzany kod można uruchomić bez dodawania CLR.
Korzystanie z kodu zarządzanego ma wiele zalet, ale ma też kilka wad. Podstawową wadą jest narzut związany z używaniem maszyny wirtualnej CLR. Różnica między szybkością działania kodu zarządzanego a prędkością kodu niezarządzanego jest często nieistotna, ale w niektórych przypadkach powoduje bardzo zauważalną różnicę w czasie odpowiedzi aplikacji. W rezultacie niezarządzany kod odgrywa kluczową rolę w większości aplikacji, które wymagają wysokiego stopnia szybkości niż przenośności.