DOT TEN - Aplikacje .NET Core 10.0 (preview 5)

Wprowadzenie

Cel

Szybkie zaznajomienie z nowym modelem budowania i uruchamiania aplikacji w .NET Core 10.0.

Zasoby

Najpierw trzeba pobrać repozytorium:
git clone https://github.com/ryszarddrozdwr/dotten.git

Skupiamy się na zawartości folderu prj:

Folder prj

Wystarczy uruchomić konsolę wewnątrz tego folderu i z okna konsoli będzie można uruchomić wszystkie znajdujące się tam aplikacje.

Do edycji plików można używać aplikacji Visual Studio Code.

W tym celu wpisz w konsoli:
code . Enter

appconsole.cs

Aplikacja konsolowa wyświetlająca statyczną treść bez interakcji z użytkownikiem.

W celu uruchomienia aplikacji wpisz w konsoli:
dotnet run appconsole.cs

apppureweb.cs

Aplikacja Web Minimal API udostępniająca statyczną treść - zobacz pliki w katalogu wwwroot.

Aplikacja web wymaga wskazania (dyrektywą: #:sdk) zestawu webowego:

#:sdk Microsoft.NET.Sdk.Web

Domyślny zestaw (Microsoft.NET.Sdk) nie musi być wyspecyfikowany - patrzy appconsole.cs - tam nie ma tego odwołania.

Ponieważ zależy nam na domyślnych ustawieniach (treść statyczna pobierana jest z folderu wwwroot) wystarczy jedno wywołanie:

app.UseFileServer();

W kolejnej aplikacji wprowadzimy zmiany w domyślnej konfiguracji.

W celu uruchomienia aplikacji wpisz w konsoli:
dotnet run apppureweb.cs

apppureweb02.cs

Aplikacja Web udostępniająca statyczną treść - zobacz pliki w katalogu wwwroot02.

Aplikacja różni się od aplikacji apppureweb.cs konfiguracją - statyczną treść bierze z folderu wwwroot02

W tym celu, zamiast app.UseFileServer(), musimy uzyć:

app.UseDefaultFiles();

app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot02"))
});

W celu uruchomienia aplikacji wpisz w konsoli:
dotnet run apppureweb02.cs

appweb.cs

Aplikacja Web z obsługą OpenAPI.

Ponieważ OpenAPI obsługiwane jest przez zewnętrzną bibliotekę - Nuget - w pliku pojawia się kolejna dyrektywa:

#:package Microsoft.AspNetCore.OpenApi@10.*-*

Do dyspozycji mamy następujące endpointy:

          /
          /api/players
          /api/players/id
        

Dostęp do dokumentacji jest pod adresem /openapi/v1.json

W celu uruchomienia aplikacji wpisz w konsoli:
dotnet run appweb.cs

appwebcalc.cs

Aplikacja webowa, która używa biblioteki (patrz folder lib, projekt LibraryMath).

Ponieważ .NET 10.0 Preview 5 nie potrafi jeszcze dołączać zewnętrznych bibliotek inaczej niż za pomocą Nuget, należy projekt LibraryMath odpowiednio przygotować.

Najpierw zmodyfikowany został plik projektu: LibraryMath.csproj, następnie projekt został zbudowany poleceniem:

dotnet pack --configuration Release

Kolejny etap, to zapisanie nugeta do lokalnego repozytorium (source)

Uwaga. Należy podać bezwzględną ścieżkę:

dotnet nuget add source C:\.......\dotten\prj\lib\LibraryMath\bin\Release --name DotTen

Należy sprawdzić, czy nasz Nuget się zapisał, poleceniem:

dotnet nuget list source

Teraz nie pozostaje nic innego, jak uruchomić aplikację i przetestować:
dotnet run appwebcalc.cs

CDN

W (preview 6) pojawia się kolejna dyrektywa, dzięki której moża wykorzystać istniejący projekt. Teraz istniejący projekt biblioteki należy opakować w Nuget i opublikować - może być prywatne repozytorium ale wymaga to kolejnego kroku, niepotrzebnie komplikującego pisanie aplikacji.

Następne przykłady w kolejnej odsłonie.