ASP.NET Core
ASP.NET Core – otwarto‑źródłowy, wieloplatformowy framework do budowy nowoczesnych aplikacji internetowych i usług API, rozwijany przez Microsoft. Zaprojektowany jako następca klasycznego ASP.NET, łączy w sobie lekkość, modułowość oraz wysoką wydajność, jednocześnie umożliwiając uruchamianie kodu na systemach Windows, Linux i macOS.
Historia
Projekt ASP.NET powstał w 2002 roku jako część platformy .NET. W 2016 roku, w odpowiedzi na rosnące zapotrzebowanie na rozwiązania działające niezależnie od systemu Windows oraz na potrzebę lepszej wydajności, Microsoft ogłosił ASP.NET Core 1.0. Pierwsza wersja została udostępniona w czerwcu 2016 roku i od tego czasu framework jest rozwijany w cyklu open‑source na platformie GitHub. Każda kolejna wersja (2.0, 2.1, 3.0, 5.0, 6.0, 7.0) wprowadzała nowe funkcje, m.in. wsparcie dla Razor Pages, gRPC oraz pełną integrację z Entity Framework Core.
Architektura
ASP.NET Core opiera się na kilku kluczowych elementach:
- Modułowość – aplikacje składają się z pakietów NuGet, które można dodawać i usuwać w zależności od potrzeb.
- Środowisko uruchomieniowe – framework może działać w Kestrel, wbudowanym serwerze HTTP, lub jako moduł w serwerach IIS, NGINX i Apache.
- Wstrzykiwanie zależności (DI) – wbudowany kontener DI umożliwia łatwe zarządzanie zależnościami przy pomocy Dependency Injection.
- Środowiska i konfiguracja – obsługa wielu środowisk (development, staging, production) oraz konfigurowanie aplikacji za pomocą plików
appsettings.json, zmiennych środowiskowych i innych źródeł.
Model programistyczny
ASP.NET Core wspiera kilka głównych paradygmatów programistycznych:
- Model‑View‑Controller (MVC) – tradycyjny wzorzec, w którym kontrolery obsługują żądania HTTP, modele reprezentują dane, a widoki (Razor) generują HTML.
- Razor Pages – uproszczony model oparty na pojedynczych stronach, który eliminuje potrzebę tworzenia osobnych kontrolerów w prostych aplikacjach.
- RESTful API – tworzenie usług sieciowych przy użyciu kontrolerów
ApiControlleri atrybutów[HttpGet],[HttpPost]itp. - gRPC – wysokowydajny protokół oparty na HTTP/2, wykorzystywany do komunikacji między serwisami.
Kluczowe komponenty
| Komponent | Opis |
|---|---|
| Kestrel | Wbudowany, lekki serwer HTTP obsługujący połączenia asynchroniczne. |
| Middleware | Środkowy oprogramowanie (pipeline), które przetwarza żądania i odpowiedzi. |
| Entity Framework Core | ORM umożliwiający mapowanie obiektowo‑relacyjne z bazą danych. |
| SignalR | Biblioteka do komunikacji w czasie rzeczywistym (WebSocket, Server‑Sent Events). |
| ASP.NET Core Identity | System uwierzytelniania i autoryzacji użytkowników. |
Obsługa platform
Dzięki architekturze opartej na .NET Core (od wersji 3.0) oraz później na .NET 5/6/7, ASP.NET Core może być kompilowany do natywnych binarek dla:
- Systemu Windows – jako aplikacja konsolowa, usługa Windows lub aplikacja uruchamiana w IIS.
- Systemu Linux – uruchamiana bezpośrednio na Kestrel lub za pośrednictwem NGINX/Apache.
- Systemu macOS – wspierana w środowisku deweloperskim oraz przy wdrożeniach w chmurze.
Rozwój i ekosystem
ASP.NET Core jest częścią większego ekosystemu .NET, co oznacza, że deweloperzy mogą korzystać z:
- C# – nowoczesnego języka programowania, wspieranego przez najnowsze wersje kompilatora.
- Visual Studio i Visual Studio Code – edytorów z rozbudowaną obsługą debugowania, IntelliSense i szablonów projektów.
- Docker – łatwe konteneryzowanie aplikacji ASP.NET Core przy użyciu oficjalnych obrazów
mcr.microsoft.com/dotnet/aspnet. - Microsoft Azure – chmurowe platformy takie jak Azure App Service, Azure Kubernetes Service (AKS) i Azure Functions, które natywnie obsługują aplikacje ASP.NET Core.
Zastosowania
Framework znajduje zastosowanie w wielu typach projektów:
- Strony internetowe i aplikacje SPA (np. przy integracji z Angular, React czy Vue.js).
- Usługi API i mikroserwisy, które korzystają z lekkiego modelu REST lub gRPC.
- Aplikacje biznesowe oparte na Blazor, umożliwiające tworzenie interfejsu przy użyciu C# zarówno po stronie serwera, jak i przeglądarki.
- Rozwiązania czasu rzeczywistego dzięki SignalR.
Przykład prostego projektu
dotnet new webapp -n MojaAplikacja
cd MojaAplikacja
dotnet run
Powyższe polecenia tworzą nowy projekt Razor Pages, uruchamiają go w trybie deweloperskim oraz udostępniają pod adresem https://localhost:5001.
Porównanie z klasycznym ASP.NET
| Cecha | ASP.NET Classic | ASP.NET Core |
|---|---|---|
| Platforma | Tylko Windows/IIS | Wieloplatformowa (Windows, Linux, macOS) |
| Licencja | Proprietarna | Open‑Source (MIT) |
| Wydajność | Ograniczona przez System.Web | Lepsza dzięki Kestrel i nowemu runtime |
| Modułowość | Monolityczna | Pakiety NuGet, możliwość usuwania niepotrzebnych komponentów |
| Wsparcie dla kontenerów | Ograniczone | Pełna integracja z Docker i Kubernetes |
Przyszłość
Od wersji .NET 6 ASP.NET Core jest częścią platformy .NET LTS (Long‑Term Support), co zapewnia długoterminowe wsparcie i stabilność. Kolejne major release’y (np. .NET 8, .NET 9) będą kontynuować rozwój w kierunku usprawnienia wydajności, dalszej integracji z technologiami chmurowymi oraz wprowadzenia nowych programistycznych możliwości, takich jak natywne wsparcie dla Minimal API i rozbudowane narzędzia diagnostyczne.
Literatura i materiały
- Dokumentacja oficjalna ASP.NET Core – opis funkcji, przewodniki i przykłady.
- Książka ASP.NET Core in Action – praktyczne wprowadzenie do budowy aplikacji.
- Seria artykułów Microsoft Learn – interaktywne samouczki.
ASP.NET Core stał się jednym z najważniejszych narzędzi w ekosystemie .NET, umożliwiając programistom tworzenie skalowalnych, wydajnych i nowoczesnych aplikacji internetowych, które działają na dowolnym systemie operacyjnym i w najróżniejszych środowiskach chmurowych.