AspNet6InDepth
1.0.0
نظرة عامة على ASP.NET 6
أساسيات ASP.NET 6
Program.cs
IMiddleware
RequestDelegate
app.Use
و app.Map
و app.MapWhen
و app.UseWhen
و app.Run
app.UseStaticFiles();
app.UseCors();
ProblemDetails
appsettings.{environment}.json
وواجهة IConfiguration
IOptions
IOptionsSnapshot
أو IOptionsMonitor
HttpContext
و HttpContext.Request
و HttpContext.Response
Route
HttpGetAttribute
و HttpPostAttribute
و HttpPutAttribute
و HttpPatchAttribute
و HttpDeleteAttribute
FromQuery
: الحصول على القيم من سلسلة الاستعلامFromRoute
: يحصل على القيم من بيانات المسارFromForm
: يحصل على القيم من حقول النماذج المنشورةFromBody
: الحصول على القيم من نص الطلبFromHeader
: يحصل على القيم من رؤوس HTTPIActionResult
أو ActionResult
Accept
الرأسAccept
الرأس على application/xml
Accept
الرأس على application/json
HTTP Patch
Compare
: التحقق من تطابق خاصيتين في النموذج.EmailAddress
: التحقق مما إذا كان العقار يحتوي على تنسيق بريد إلكتروني.Phone
: التحقق من صحة ما إذا كانت الخاصية تحتوي على تنسيق رقم هاتف.Range
: التحقق من صحة ما إذا كانت قيمة الخاصية تقع ضمن نطاق محدد.RegularExpression
: التحقق من صحة ما إذا كانت قيمة الخاصية تتطابق مع تعبير عادي محدد.Required
: التحقق من صحة الحقل إذا لم يكن فارغًا.StringLength
: التحقق من صحة ما إذا كانت قيمة خاصية السلسلة لا تتجاوز حد الطول المحدد.Url
: التحقق مما إذا كانت الخاصية تحتوي على تنسيق URL.IHttpClientFactory.CreateClient();
gzip
AspNetCoreRateLimit
مع موفر الذاكرة.AspNetCoreRateLimit
و AspNetCoreRateLimit.Redis
nuget مع Azure Cache لموفر Redis.ILogger
logger.LogTrace
سجل رسائل مستوى التتبعlogger.LogDebug
رسائل مستوى تصحيح الأخطاءlogger.LogInformation
رسائل مستوى معلومات السجلlogger.Warning
سجل رسائل مستوى التحذيرlogger.Error
تسجيل رسائل مستوى الخطأlogger.Critical
المستوى الحرج للسجل الحرجAzure AppInsights
SDKIHostedService
BackgroundService
Swashbuckle.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
إلى الجداول النموذجية في قاعدة البياناتDbContext
idempotent
/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
IMemoryCache
StackExchange.Redis
الأمان في تطبيق ASP.NET 6 API
إضافة المصادقة
Claim
ClaimsIdentity
ومدير ClaimsPrincipal
BCrypt.Net-Next
nugetSystem.IdentityModel.Tokens.Jwt
/api/Account/Register
لتسجيل المستخدم/api/Account/Login
لتسجيل دخول المستخدم وإنشاء المجموعة الأولية من رمز الوصول ورمز التحديث/api/Account/Token
لتحديث رمز الوصول باستخدام رمز التحديث المُرسل/api/Account/Revoke
لإبطال رمز التحديثإضافة تصريح
IAuthorizationRequirement
HandleRequirementAsync
لإنشاء متطلبات السياسة المخصصةProgram.cs
دراسة الحالة: أضف مصادقة JWT وترخيص الدور باستخدام Auth0
التعامل مع تحميل الملفات وتنزيل الملفات
wwwroot folder
.xlsx
للاستجابةاختبار
اختبار الوحدة
xUnit.net
[Fact]
و [Theory]
Dispose
[InlineData]
[MemberData]
[ClassData]
IClassFixture
ICollectionFixture
Moq
Verify()
أو VerifyAll()
اختبار التكامل
WebApplicationFactory
xUnit.net
الاتصال المتزامن بين الخدمات باستخدام gRPC وHTTP2
الاتصال غير المتزامن بين الخدمات باستخدام قوائم انتظار الرسائل
استضافة تطبيق ASP.NET 6 API