AspNet6InDepth
1.0.0
نظرة عامة على ASP.NET 6
أساسيات ASP.NET 6
Program.csIMiddlewareRequestDelegateapp.Use و app.Map و app.MapWhen و app.UseWhen و app.Runapp.UseStaticFiles();app.UseCors();ProblemDetailsappsettings.{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>Accept الرأسAccept الرأس على application/xmlAccept الرأس على application/jsonHTTP PatchCompare : التحقق من تطابق خاصيتين في النموذج.EmailAddress : التحقق مما إذا كان العقار يحتوي على تنسيق بريد إلكتروني.Phone : التحقق من صحة ما إذا كانت الخاصية تحتوي على تنسيق رقم هاتف.Range : التحقق من صحة ما إذا كانت قيمة الخاصية تقع ضمن نطاق محدد.RegularExpression : التحقق من صحة ما إذا كانت قيمة الخاصية تتطابق مع تعبير عادي محدد.Required : التحقق من صحة الحقل إذا لم يكن فارغًا.StringLength : التحقق من صحة ما إذا كانت قيمة خاصية السلسلة لا تتجاوز حد الطول المحدد.Url : التحقق مما إذا كانت الخاصية تحتوي على تنسيق URL.IHttpClientFactory.CreateClient();gzipAspNetCoreRateLimit مع موفر الذاكرة.AspNetCoreRateLimit و AspNetCoreRateLimit.Redis nuget مع Azure Cache لموفر Redis.ILogger<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-Next nugetSystem.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