Blog: Jezyki programowania i srodowiska programistyczne | C | Net 2

.NET 5 czy .NET Framework?

.NET 5 czy .NET Framework?
  • 1 267 views

Zanim odpowiemy sobie na to pytanie, wyjaśnijmy, dlaczego w ogóle musimy je zadać.

Udostępnij!

.NET 5 czy .NET Framework?

.NET Framework to platforma programistyczna pozwalającą tworzyć aplikacje dla systemu Windows, udostępniona przez Microsoft po raz pierwszy w 2002 roku. Od pięciu lat możemy również korzystać z .NET Core – „konkurencyjnej”, wolnej i otwartej platformy pozwalającej na tworzenie i uruchamianie aplikacji na systemach Windows, Linux lub macOS.NET Core. Aż do wersji 3.1 włącznie, .NET Core pozostawał w wyraźnym cieniu .NET Framework.

Z kolejną wydaną wersją .NET Core zmieniła nazwę na .NET 5, podkreślając w ten sposób, że jest  główną platformą programistyczną Microsoftu. Dlaczego w numeracji poszczególnych edycji doszło do przeskoku z 3.1 na 5? Producent chciał uniknięcia zamieszania z nazewnictwem .NET Framework, którego ostatnia wersja posiada właśnie oznaczenie 4.x. Nie wszystkie składowe .NET 5 utraciły dopisek „Core”; ASP.NET Core 5 oraz Entity Framework Core 5 zachowały go ze względu na funkcjonowanie ASP.NET MVC 5 oraz Entity Framework 5/6, które są związane z .NET Framework.

NET Framework został porzucony –  co prawda nie będzie się go dalej rozwijać, ale pozostanie wspierany. Którą z platform wybrać zatem do kolejnego projektu? Odpowiedź zależy od wielu kryteriów. Rozważmy je po kolei:

  • Środowisko docelowe

    Jak zostało już wspomniane, aplikacje .NET Framework mogą być uruchamiane tylko w systemie Windows. Podobnie jest z konteneryzacją – do wyboru są wyłącznie kontenery Windowsa. Kiedy aplikacja ma pracować pod innym systemem, działać na wielu platformach albo wykorzystywać kontenery Dockera, wybór jest prosty: .NET 5.

 

  • Niezależność od systemowych komponentów

    Biblioteki .NET Framework nie są integralną częścią tworzonych aplikacji, wymagają więc zainstalowania w systemie odpowiedniego komponentu. Tym samym, aplikacja korzysta z systemowych bibliotek .NET Framework. W systemie może być zainstalowana tylko jedna wersja platformy. Zmieniając wersję .NET Framework zainstalowaną w systemie docelowym, niektóre aplikacje mogą więc zacząć działać niestabilnie lub w ogóle przestać działać. .NET 5 posiada opcjonalną możliwość załączenia wykorzystywanych bibliotek do programu, co gwarantuje, że zawsze będzie pochodził z tej wersji platformy, na którą został zaprojektowany i przetestowany. Dzięki temu w systemie może pracować wiele aplikacji czy serwisów, które korzystają z różnych wersji .NET. Podsumowując, jeśli wymagana jest niezależność od komponentów systemowych, wskazane jest wykorzystanie platformy .NET 5.

 

  • Wsparcie dla konkretnych technologii

    Wiele z technologii opracowanych przez Microsoft, które są wspierane przez .NET Framework, posiada swoją implementację w .NET 5, niektóre jednak nie są już kontynuowane, na przykład  NET Web Forms i Web Pages (które mogą być zastąpione przez ASP.NET Core Blazor lub Razor Pages) oraz WCF (alternatywą stał się gRPC). Zdarza się też, że zewnętrzne komponenty Microsoft lub firm trzecich posiadają SDK niekompatybilne z .NET 5; chociażby niektóre serwisy Azure nie wspierają jeszcze .NET 5. Wybór platformy programistycznej pod tym kątem będzie zależeć od technologii, z jakiej chcemy albo musimy korzystać. .NET Framework to optymalny wybór kiedy mamy współpracować z technologiami i komponentami, które nie są już wspierane lub nie są jeszcze kompatybilne z .NET 5.

 

Jak widać, .NET 5 oferuje znacznie więcej możliwości zastosowania, warto jednak nie zapominać o .NET Framework, ponieważ niektóre scenariusze zakładają korzystanie z API specyficznych dla systemu Windows. Nie oznacza to jednak, że w obrębie jednego projektu musimy wiązać się tylko z jedną z tych platform programistycznych. Będący zestawem interfejsów, które są implementowane przez obie platformy. .NET Standard pozwala nam tworzyć biblioteki wykorzystywane zarówno przez .NET 5 jak i .NET Framework.