Wprowadzenie do .NET Core 1.0

Po wielu latach pracy z frameworkiem .NET przyszedł czas na .NET Core. Co zostało zmienione i dlaczego takie zmiany zostało wprowadzone? Tego dowiemy się z poniższego artykułu.

Zawartość artykułu

  • Czym jest .NET Core?
  • Co jest nowego we framework’u?
  • Wstęp do .NET Core
  • Prosta aplikacja webowa

Czym jest .NET Core?

Jest to nowy framework, który był opracowywany równolegle do .NET 4.6 (Visual Studio 2015). Poprzednio nosił nazwę .NET 5.0. Takie nazewnictwo było powodem zamieszania wśród programistów oraz tego iż, jest to następca .NET 4.6 - nie była to prawda. Jest to zupełnie nowy framework zbudowany od podstaw:
Diagram opisujący framework .NET Core

Wraz z udostępnieniem nowego framework’a pojawiły się nowe rzeczy, takie jak: CoreCLR oraz CoreFx, które zastąpiły tradycyjny CLR oraz FCL, które były przypięte do platformy Windows.

CoreCLR zawiera w sobie m.in. garbare collector, JIT compiler oraz bazowe typy danych platformy .NET oraz wiele klas niskiego poziomu.

Na samym szczycie nowego framework’a pojawia się ASP.NET Core 1.0 oraz ASP.NET Core MVC. Sporo się dzieje...
Dlatego poniżej najbardziej czytelny sposób przedstawienia powyższych informacji: Poprawne nazwewnictwo nowych wersji frameworka .NET

Co jest nowego we framework’u?

1. Wieloplatformowość
Wieloplatformowść: Windows, Linux, Mac

Jak wiemy, .NET framework działał jedynie na platformie Windows. Co z programistami pracującymi na innych platformach? Używali oni np. Mono Framework’a, które jest dostępne jako wolne oprogramowanie oraz jest kompatybilne z .NET. Nie był to produkt firmy Microsoft a jedynie wspierający ten framework. Wraz z rosnącą liczbą programistów pomiędzy różnymi platformami musiało dojść do rozwoju platformy .NET i uczynienia jej wieloplatformową.

Programiści pracujący na platformie Windows mieli do dyspozycji zintegrowane środowisko programistyczny, tj. Visual Studio. W przypadku programistów używających na codzień Linuxa oraz Mac’a – narzędzie to było niedostępne. W raz z nadejściem nowego frameworka Visual Studio nie jest już wymagane. Możesz używać dowolnego edytora tekstowego a program może być wykonany przy użyciu konsoli.

Aby tak napisane programy mogły działać na każdej platformie, Microsoft zaprezentował nowe środowisko uruchomieniowe oraz biblioteki nazwane CoreCLR oraz CoreFX, które pozwolą na kompilację programów na każdej platformie.

Czyniąc .NET Core frameworkiem mulitiplatformowym, Microsoft usunął referencje ściśle związaną z IIS - System.Web a przygotował nową: Microsoft.AspNetCore, która będzie działała na wszystkich platformach hostingowych.

2. Otwarte oprogramowanie

Otwarte oprogramowanie

Wraz z udostępnianiem oprogramowania jako otwartego, Microsoft również zdecydował się podążać tym krokiem. Ponadto, kod źródłowy jest dostępny na rozproszonym systemie kontroli wersji - GIT. Możesz w łatwy sposób dopasować go do swoich potrzeb.

3. Optymalizacja bibliotek i środowiska uruchomieniowego

Optymalizacja bibliotek i środowiska uruchomieniowego
Wraz z tą zmianą, Microsoft wprowadził zmiany w swoich bibliotekach, które są dostępne w Global Assembly Cache (GAC) w momencie instalacji .NET Framework.

Jednym z przykładów jest biblioteka System.

Biblioteka ta zawiera w sobie wiele bibliotek takich jak: System.IO, System.NET, System.Configuration, etc., które są ładowane do pamięci za każdym razem kiedy chcemy używać bibioteki System. Ale czy koniecznym jest ładowanie całej biblioteki, gdy tak naprawdę potrzebujemy tylko niektórych elementów? Załóżmy, że potrzebujmy jedynie System.IO - wówczas projekt powinien odnosić się tylko do niej. Aby biblioteki uczynić lżejszymi oraz zoptymalizowanym .NET Core wspiera teraz nugget packages dla każdej składowej dużej biblioteki oraz nie odnosi się więcej do GAC - dostępnej tylko na platformie Windows.

4. Wprowadzenie do CLI
Wprowadzenie do CLI
.NET Core przedstawia aplikację konsolową zwaną dotnet.exe.
Aplikacja ta pozwala nam na:

  • utworzenie nowej aplikacji;
  • wykonanie aplikacji;
  • uruchomienie języka pośredniego;
  • hosting CLR
dla dowolnej platformy.

5. Modularna budowa

Za każdym razem gdy dodawnana była nowa funkcjonalność do framework’a – nowa wersja była wydawana przez Microsoft. Możemy spojrzeć na przykład ASP.NET MVC.
W wersji 4 mieliśmy przedstawioną koncepcję routingu (Visual Studio 2012 i .NET Framework 4.5. Przy wersji ASP.NET MVC 5 przedstawiono routing na bazie atrybutów (Attribute level routing) – Visual Studio 2013 i .NET Framework 4.5.1. Takie zmiany dotychczas prowadziły do wydania nowej wersji framework’a. Od nowej wersji takie wprowadzanie zmian znika. Wraz z .NET Core wszystko dostępne jest jako nugget package. Od teraz dokonanie aktualizacji będzie niezwykle proste ponieważ pojawi się nowa paczka a nie caly framework. Taka zmiana czyni framework modularnym.

6. Środowisko gotowe na chmurę

Przy użyciu .NET Core możemy budować aplikacje w oparciu o aplikacje podłączone do chmury takie jak: Web Apps czy IOT apps.

Rozpoczęcie pracy

Udaj się na stronę: http://www.dot.net
Rozpoczęcie pracy z .NET Core

Pobierz oraz wykonaj wszystkie kroki instalacji.

Framework ten nie jest domyślnie zintegrowany z Visual Studio. Dodaje się go przez oddzielną instalację, która wymaga Visual Studio 2015 Update 3 lub możesz pobrać oddzielnie .NET Core SDK. W kolejnej wersji proces ten prawdopodobnie będzie zintegorwany z procesem instalacji Visual Studio.


Prosta aplikacja webowa przy użyciu CLI

Przed konsolą lini poleceń dotnet w framework’u .NET Core RC1 oraz ASP.NET Core RC1, mieliśmy narzędzie dnx do przygotowywania i uruchamiania aplikacji. Narzędzie to składało się z 3 części:

  • dnvm - DotNet Version Manager – instalator do pobrania wersji dnx;
  • dnu - DotNet Utility – narzędzie do zarządzania zależnościami, budowania oraz publikowania aplikacji;
  • dnx - DotNet Execution Runtime – używany do wykonywania kodu;

Ustawienia początkowe
Kiedy instalacja .NET Core zostanie ukończona możemy przejść do przetestowania wpisując komendę dotnet:
Instalacja .NET Core

Krok 1 - otwórz okno linii poleceń i przejdź do lokalizacji gdzie chcesz przechowywać pliki związane z projektem:
Instalacja projektu demo dla .NET Core

Krok 2 - wprowadź polecenie pozwalające na przygotowanie aplikacji konsolowej:
dotnet new –-lang C#
.NET Core - nowy projekt
Wyjaśnienie

  • polecenie new jest używane do utworzenia nowego projektu. Domyślenie zostaną utworzone pliki Program.cs oraz project.json.
  • C# definiuje język jaki będzie używany do tworzenia aplikacji. (Inną dostępną opcją jest F#. VB nie jest jeszcze wspierany).

Polecenie do utworzenia aplikacji webowej:
dotnet new –-lang C# -t web
Definicja języka w jakim zostanie napsiana aplikacja
Adnotacja: W obecnej wersji .NET Core możemy tworzyć aplikację konsolowe oraz webowe. Na dzień dzisiejszy, tworzenie aplikacji okienkowych nie jest możliwe.

Folder wynikowy
Folder ten zawiera poniższe pliki:
.NET Core - folder wynikowy po procesie instalacji

Krok 3 - nie będę robił żadnych zmian w kodzie oraz użyje linii poleceń by dodać wszystkie zależności do projektu:
dotnet restore
.NET Core - dodanie niezbędnych zależności do projektu
Polecenie to przywróci wszystkie zależności dodane do projektu project.json, tzn. rozpakuj wszystkie biblioteki zależne w obrębie pakietu nugget.

Polecenie to następnie utworzy plik project.lock.json, który zawiera nazwy bibliotek zależnych i ich wersji.

Krok 5 - dokonaj kompilacji projektu przy użyciu polecenia:
dotnet build
.NET Core - kompilacja projektu

Krok 6 - uruchomienie aplikacji
dotnet run
.NET Core - uruchomienie aplikacji
Polecenie to pozwoli nam na hosting aplikacji konsolowej na serwerze oraz dostarczy port na którym można uruchomić aplikację. Możemy teraz otworzyć naszą aplikację webową na podanym adresie http://localhost:5000 .NET Core - hostring aplikacji konsolowej na serwerze localhost