AspNet6InDepth
1.0.0
ASP.NET 6-Übersicht
ASP.NET 6-Grundlagen
Program.cs
IMiddleware
SchnittstelleRequestDelegate
-Objektsapp.Use
, app.Map
, app.MapWhen
, app.UseWhen
und app.Run
app.UseStaticFiles();
app.UseCors();
ProblemDetails
zurückappsettings.{environment}.json
und der IConfiguration
SchnittstelleIOptions
-Schnittstelle an stark typisiertes C#-POCOIOptionsSnapshot
oder IOptionsMonitor
in stark typisiertes C# POCO neu geladen werden kannHttpContext
, HttpContext.Request
und HttpContext.Response
Route
-Attributs an einen ControllerHttpGetAttribute
, HttpPostAttribute
, HttpPutAttribute
, HttpPatchAttribute
und HttpDeleteAttribute
FromQuery
: Ruft Werte aus der Abfragezeichenfolge abFromRoute
: Ruft Werte aus Routendaten abFromForm
: Ruft Werte aus geposteten Formularfeldern abFromBody
: Ruft Werte aus dem Anforderungstext abFromHeader
: Ruft Werte aus HTTP-Headern abIActionResult
oder ActionResult
Accept
HeadersAccept
Header auf application/xml
gesetzt istAccept
Header auf application/json
gesetzt istHTTP Patch
-AnfragenCompare
: Überprüfen Sie, ob zwei Eigenschaften in einem Modell übereinstimmen.EmailAddress
: Überprüfen Sie, ob eine Eigenschaft ein E-Mail-Format hat.Phone
: Überprüfen Sie, ob eine Eigenschaft ein Telefonnummernformat hat.Range
: Überprüfen Sie, ob ein Eigenschaftswert innerhalb eines angegebenen Bereichs liegt.RegularExpression
: Überprüfen Sie, ob ein Eigenschaftswert mit einem angegebenen regulären Ausdruck übereinstimmt.Required
: Validieren, ob ein Feld nicht null ist.StringLength
: Validiert, ob ein String-Eigenschaftswert eine angegebene Längenbeschränkung nicht überschreitet.Url
: Überprüfen Sie, ob eine Eigenschaft ein URL-Format hat.IHttpClientFactory.CreateClient();
gzip
-Algorithmus hinzuAspNetCoreRateLimit
Nuget-Pakets mit Speicheranbieter.AspNetCoreRateLimit
und AspNetCoreRateLimit.Redis
mit dem Azure Cache for Redis-Anbieter.ILogger
-Erweiterungsmethodenlogger.LogTrace
protokolliert Meldungen auf Trace-Ebenelogger.LogDebug
protokolliert Meldungen auf Debug-Ebenelogger.LogInformation
protokolliert Meldungen auf Informationsebenelogger.Warning
protokolliert Meldungen der Warnstufelogger.Error
protokolliert Meldungen auf Fehlerebenelogger.Critical
protokolliert Meldungen kritischer StufeAzure AppInsights
SDKIHostedService
SchnittstelleBackgroundService
-Klasse überschreibenSwashbuckle.AspNetCore
Nuget, um Swagger OpenAPI-Unterstützung hinzuzufügenswagger.json
von der Root-Ebene aus bereitzustellenDatenzugriff in der ASP.NET 6-API-Anwendung
Datenzugriff mit Micro ORM Dapper und PostgreSQL
/api/Persons?page=1&limit=10
/api/Persons?searchAfter=4499b79a-c710-45e4-ba87-083d22c4d6ad_2023-04-17T12:00:25&limit=10
/api/Persons/b1333cad-9d7c-4a64-8823-db8c9aa55646
/api/Persons
/api/Persons/b1333cad-9d7c-4a64-8823-db8c9aa55646
/api/Persons/b1333cad-9d7c-4a64-8823-db8c9aa55646
wird gelöschtDatenzugriff mit EF Core 6 ORM und PostgreSQL
DbSet
zu Modelltabellen in der Datenbank hinzuDbContext
analysierenidempotent
Option hinzu/api/Employees?page=1&limit=10
/api/Employees?searchAfter=4499b79a-c710-45e4-ba87-083d22c4d6ad_2023-04-17T12:00:25&limit=10
/api/Employees/b1333cad-9d7c-4a64-8823-db8c9aa55646
/api/Employees
/api/Employees/b1333cad-9d7c-4a64-8823-db8c9aa55646
/api/Employees/b1333cad-9d7c-4a64-8823-db8c9aa55646
wird gelöschtAntwort-Caching in der ASP.NET 6-API-Anwendung
IMemoryCache
hinzuStackExchange.Redis
hinzuSicherheit in der ASP.NET 6-API-Anwendung
Authentifizierung hinzufügen
Claim
, ClaimsIdentity
und ClaimsPrincipal
BCrypt.Net-Next
-NugetSystem.IdentityModel.Tokens.Jwt
/api/Account/Register
um den Benutzer zu registrieren/api/Account/Login
um den Benutzer anzumelden und den ersten Satz von Zugriffstoken und Aktualisierungstoken zu generieren/api/Account/Token
um das Zugriffstoken mithilfe des gesendeten Aktualisierungstokens zu aktualisieren/api/Account/Revoke
um das Aktualisierungstoken zu widerrufenAutorisierung hinzufügen
IAuthorizationRequirement
SchnittstelleHandleRequirementAsync
um eine benutzerdefinierte Richtlinienanforderung festzulegenProgram.cs
Fallstudie: JWT-Authentifizierung und Rollenautorisierung mit Auth0 hinzufügen
Abwicklung von Datei-Uploads und Datei-Downloads
wwwroot folder
.xlsx
Datei zur AntwortTesten
Unit-Tests
xUnit.net
hinzu[Fact]
und [Theory]
verstehenDispose
-Methode[InlineData]
[MemberData]
[ClassData]
IClassFixture
ICollectionFixture
zwischen mehreren KlassenMoq
Verify()
oder VerifyAll()
aufgerufen wurde.Integrationstests
WebApplicationFactory
erbenxUnit.net
Synchrone Inter-Service-Kommunikation mit gRPC und HTTP2
Asynchrone Kommunikation zwischen Diensten mithilfe von Message Queues
Hosten der ASP.NET 6-API-Anwendung