AspNet6InDepth
1.0.0
ASP.NET 6-Übersicht
ASP.NET 6-Grundlagen
Program.csIMiddleware SchnittstelleRequestDelegate -Objektsapp.Use , app.Map , app.MapWhen , app.UseWhen und app.Runapp.UseStaticFiles();app.UseCors();ProblemDetails zurückappsettings.{environment}.json und der IConfiguration SchnittstelleIOptions<T> -Schnittstelle an stark typisiertes C#-POCOIOptionsSnapshot<T> oder IOptionsMonitor<T> in stark typisiertes C# POCO neu geladen werden kannHttpContext , HttpContext.Request und HttpContext.ResponseRoute -Attributs an einen ControllerHttpGetAttribute , HttpPostAttribute , HttpPutAttribute , HttpPatchAttribute und HttpDeleteAttributeFromQuery : 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<T> oder ActionResult<T>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<T> -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<T> 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 ClaimsPrincipalBCrypt.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.csFallstudie: 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]IClassFixtureICollectionFixture zwischen mehreren KlassenMoqVerify() oder VerifyAll() aufgerufen wurde.Integrationstests
WebApplicationFactory<TStartup> erbenxUnit.netSynchrone Inter-Service-Kommunikation mit gRPC und HTTP2
Asynchrone Kommunikation zwischen Diensten mithilfe von Message Queues
Hosten der ASP.NET 6-API-Anwendung