AspNet6InDepth
1.0.0
ภาพรวม ASP.NET 6
ASP.NET 6 พื้นฐาน
Program.csIMiddleware interfaceRequestDelegateapp.Use , app.Map , app.MapWhen , app.UseWhen และ app.Runapp.UseStaticFiles();app.UseCors();ProblemDetails มาตรฐานappsettings.{environment}.json และอินเทอร์เฟซ IConfigurationIOptions<T>IOptionsSnapshot<T> หรือ IOptionsMonitor<T>HttpContext , HttpContext.Request และ HttpContext.ResponseRouteHttpGetAttribute , HttpPostAttribute , HttpPutAttribute , HttpPatchAttribute และ HttpDeleteAttributeFromQuery : รับค่าจากสตริงการสืบค้นFromRoute : รับค่าจากข้อมูลเส้นทางFromForm : รับค่าจากฟิลด์ฟอร์มที่โพสต์FromBody : รับค่าจากเนื้อหาคำขอFromHeader : รับค่าจากส่วนหัว HTTPIActionResult<T> หรือ ActionResult<T>AcceptAccept เป็น application/xmlAccept เป็น application/jsonHTTP PatchCompare : ตรวจสอบว่าคุณสมบัติสองรายการในแบบจำลองตรงกันหรือไม่EmailAddress : ตรวจสอบว่าสถานที่ให้บริการมีรูปแบบอีเมลหรือไม่Phone : ตรวจสอบว่าสถานที่ให้บริการมีรูปแบบหมายเลขโทรศัพท์หรือไม่Range : ตรวจสอบว่าค่าคุณสมบัติอยู่ในช่วงที่ระบุหรือไม่RegularExpression : ตรวจสอบว่าค่าคุณสมบัติตรงกับนิพจน์ทั่วไปที่ระบุหรือไม่Required : ตรวจสอบหากฟิลด์ไม่เป็นค่าว่างStringLength : ตรวจสอบว่าค่าคุณสมบัติสตริงไม่เกินขีดจำกัดความยาวที่ระบุหรือไม่Url : ตรวจสอบว่าคุณสมบัติมีรูปแบบ URL หรือไม่IHttpClientFactory.CreateClient();gzipAspNetCoreRateLimit พร้อมผู้ให้บริการหน่วยความจำAspNetCoreRateLimit และ AspNetCoreRateLimit.Redis แพ็คเกจ nuget พร้อม Azure Cache สำหรับผู้ให้บริการ RedisILogger<T> วิธีการขยายlogger.LogTrace ข้อความระดับการติดตามบันทึกlogger.LogDebug บันทึกระดับการแก้ไขข้อบกพร่องlogger.LogInformation ข้อความระดับข้อมูลบันทึกlogger.Warning บันทึกข้อความระดับคำเตือนlogger.Error บันทึกข้อความระดับข้อผิดพลาดlogger.Critical บันทึกข้อความระดับวิกฤตAzure AppInsights SDKIHostedServiceBackgroundServiceSwashbuckle.AspNetCore nuget เพื่อเพิ่มการรองรับ Swagger OpenAPIswagger.json จากระดับรูทการเข้าถึงข้อมูลในแอปพลิเคชัน ASP.NET 6 API
การเข้าถึงข้อมูลโดยใช้ Micro ORM Dapper และ 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การเข้าถึงข้อมูลโดยใช้ EF Core 6 ORM และ PostgreSQL
DbSet<T> ให้กับตารางโมเดลในฐานข้อมูลDbContextidempotent/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การแคชการตอบสนองในแอปพลิเคชัน ASP.NET 6 API
IMemoryCacheStackExchange.Redisความปลอดภัยในแอปพลิเคชัน ASP.NET 6 API
เพิ่มการรับรองความถูกต้อง
Claim ClaimsIdentity และ ClaimsPrincipalBCrypt.Net-NextSystem.IdentityModel.Tokens.Jwt/api/Account/Register เพื่อลงทะเบียนผู้ใช้/api/Account/Login เพื่อเข้าสู่ระบบผู้ใช้และสร้างชุดโทเค็นการเข้าถึงและโทเค็นการรีเฟรชชุดเริ่มต้น/api/Account/Token เพื่อรีเฟรชโทเค็นการเข้าถึงโดยใช้โทเค็นการรีเฟรชที่ส่งไป/api/Account/Revoke เพื่อเพิกถอนโทเค็นการรีเฟรชเพิ่มการอนุญาต
IAuthorizationRequirementHandleRequirementAsync เพื่อสร้างข้อกำหนดนโยบายแบบกำหนดเองProgram.csกรณีศึกษา: เพิ่มการตรวจสอบสิทธิ์ JWT และการอนุญาตบทบาทโดยใช้ Auth0
จัดการการอัพโหลดไฟล์และการดาวน์โหลดไฟล์
wwwroot folder.xlsx เพื่อตอบสนองการทดสอบ
การทดสอบหน่วย
xUnit.net[Fact] และ [Theory]Dispose[InlineData][MemberData][ClassData]IClassFixtureICollectionFixtureMoqVerify() หรือ VerifyAll()การทดสอบบูรณาการ
WebApplicationFactory<TStartup>xUnit.netการสื่อสารระหว่างบริการแบบซิงโครนัสโดยใช้ gRPC และ HTTP2
การสื่อสารระหว่างบริการแบบอะซิงโครนัสโดยใช้คิวข้อความ
การโฮสต์แอปพลิเคชัน ASP.NET 6 API