W świecie języka C# często używa się go zamiennie ze słowem .NET (dotnet). Czym jest ten .NET i dlaczego są aż trzy różne wersje które się inaczej nazywaja, a do tego każda z tych wersji ma jeszcze własne wersje starsze i nowsze, które niekoniecznie się pokrywają ze sobą? W tym poście wszystko to wyjaśnię – dowiesz się co do .NET, będziesz znać różnice pomiędzy .NET Framework’iem, .NET Core’m i .NET Standard’em, oraz poznasz ich zastosowania – zapraszam do lektury.

.NET – patrząc na wikipedię, platforma programistyczna opracowana przez Microsoft, obejmująca środowisko uruchomieniowe (CLR) oraz biblioteki klas dostarczające standardowej funkcjonalności dla aplikacji. W praktyce, po prostu środowisko do programowania i uruchamiania aplikacji, z tym że nie tylko dla C#, ale także dla kilku innych technologii typu Visual Basic, F# etc. Do wszystkiego co dostępne w .NET masz dostęp w jednym narzędziu – Visual Studio.

A teraz wyjaśnijmy sobie trzy obecne wersje .NET’u.
.NET Framework – jest to pierwsza i najstarsza wersja tej technologii, działa tylko na systemie Windows i do niedawna był najczęściej wykorzystywany. Powoli wymiera, gdyż sam Microsoft zapowiedział, że przy wersji 5.0 przestanie być wspierany, a .NET 5 będzie swojego rodzaju połączeniem pomiędzy starym .NET Framework oraz nowym .NET Core (o którym zaraz). Obecnie stosuje się go praktycznie wyłącznie do aplikacji desktopowych (WPF oraz Windows Forms), oraz sporadycznie do aplikacji webowych ASP.NET
.NET Core – nowa, multiplatformowa wersja .NET, działająca na większości systemach operacyjnych (Windows, Mac, Linux etc.). Wyróżnia się znakomitym performance, programy napisane na tej platformie są często wielokrotnie szybsze niż jakiekolwiek inne. .NET Core jest głównym powodem sporej przewagi C# nad Javą i innymi podobnymi językami. Obecnie stosuje się go do większości aplikacji, najczęściej do webowych ASP.NET Core, ale także do desktopowych (od wersji .NET Core 3.0, aplikacje WPF oraz Windows Forms mogą być pisane w .NET Core, nie czyni ich to co prawda multiplatformowymi, nadal działają na Windowsie, ale jednak dzięki temu korzystają z kodu, który należy do .NET Core, są do tego zdecydowanie szybsze, ich uruchomienie nie zależy od komputera użytkownika (w .NET Framework’u trzeba było mieć run-time zainstalowany, a przy .NET Core aplikacja sama w sobie zawiera wszystko czego potrzebuje) oraz w przyszłości umożliwiają łatwiejszy update do .NET 5). Jest aktualnie głównym celem i oczkiem w głowie Microsoftu i to ta platforma jest najbardziej przyszłościowa.
.NET Standard – ta wersja się nieco wyróżnia – ponieważ nie jest ona implementacją, ale interfejsem – który .NET Framework i .NET Core implementuje. Sam z siebie nie działa, jest tylko biblioteką z interfejsami, które mogą być uruchomione za pomocą pozostałych wersji .NET. Jest on swojego rodzaju częścią wspólną pomiędzy Core a Framework.

To dlatego zarówno projekty .NET Core jak i .NET Framework mogą bez problemu referencować projekty .NET Standard, dzięki czemu można sporo kodu dzielić pomiędzy różnymi aplikacjami i zastosowaniami. Zastosowania to głównie właśnie poboczne projekty typu “Class Library” w kodzie które są następnie dołączane do głównych projektów napisanych już w pozostałych .NET’ach, jak i również w aplikacjach mobilnych Xamarin, ponieważ tam nie uświadczymy ani Core’a ani Framework’a, więc kod C# musimy pisać we wspomnianym .NET Standard’zie.

Każdy z wymienionych .NET’ów ma swoje wersje. .NET Core i .NET Framework mogą referencować projekty .NET Standard’u, ale oczywiście kompatybilne wersje. Jeśli chcesz przeczytać, jaka wersja danego .NET’u może referencować jaką wersję Standard’u, to tutaj masz link do dokumentacji na stronie Microsoftu.

I tak naprawdę – to wszystko co powienieneś wiedzieć o platformach .NET. Być może Microsoft trochę przesadził z nazwami i przez to wydawało się to skomplikowane, ale w rzeczywistości tak nie jest – są to proste założenia. Od teraz wiesz już który .NET wybrać w swoich aplikacjach. Z niecierpliwością czekamy na .NET 5, który dużo ułatwi tą kwestię i który raz na zawsze zabije stary .NET Framework, który najbardziej tutaj miesza i działa tylko na Windows.


Patryk Mikulski

Programowaniem zajmuje się od 4 lat i jest to moja pasja. Jestem autorem wszystkiego co związane jest z ProtonSoftware.NET. Specjalizuję się w platformie .NET z językiem C# na czele. Pracuję zarówno na etacie, jak i zajmuję się własnymi aplikacjami. Najlepiej czuję się w roli team leadera. Preferuję pełne skupienie na praktyce i efektach pracy - teoria jest dobra tylko w teorii.

0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

en_GBEnglish
en_GBEnglish