In fact, the ASP.NET Core team themselves have dropped the use of ConfigureAwait(false)
اشتراکها
معرفی ASP.NET Core Sockets
اشتراکها
10 ویژگی جدید در asp.net core
اشتراکها
بررسی وب سرور ASP.NET Core Kestrel
ارتقاء به ASP.NET Core 3.0 : تغییرات مورد نیاز در فایل آغازین برنامه جهت ارتقاء به Endpoint routing
اگر در نگارش 2.2، فایل کلاس آغازین برنامهی شما چنین شکلی را دارد:
در نگارش 3x به صورت زیر تغییر میکند:
نکاتی که در اینجا حائز اهمیت هستند:
- متد UseRouting اضافه شدهاست.
- UseStaticFiles (در صورت نیاز) باید قبل از UseRouting فراخوانی شود.
- اگر برنامهی شما به مباحث اعتبارسنجی پرداخته و در کنترلرهای آن از فیلتر Authorize استفاده میشود، دو تغییر مهم فراخوانی UseAuthentication و سپس UseAuthorization (که این مورد جدید هست) را پس از فراخوانی UseRouting باید انجام دهید. در غیر اینصورت در حین مرور این صفحات و قسمتهای محافظت شده، برنامه با خطای زیر متوقف خواهد شد:
- محل فراخوانی UseCors را (در صورت نیاز) دقیقا مطابق کدهای فوق و به ترتیبی که ذکر شده باید انجام دهید.
- متدهای UseMvc و یا UseSignalR قبلی، به متد UseEndpoints تبدیل شدهاند.
اگر در نگارش 2.2، فایل کلاس آغازین برنامهی شما چنین شکلی را دارد:
public void Configure(IApplicationBuilder app) { ... app.UseStaticFiles(); app.UseAuthentication(); app.UseSignalR(hubs => { hubs.MapHub<ChatHub>("/chat"); }); app.UseMvc(routes => { routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}"); }); }
public void Configure(IApplicationBuilder app) { ... app.UseStaticFiles(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.UseCors(); app.UseEndpoints(endpoints => { endpoints.MapHub<ChatHub>("/chat"); endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); }); }
- متد UseRouting اضافه شدهاست.
- UseStaticFiles (در صورت نیاز) باید قبل از UseRouting فراخوانی شود.
- اگر برنامهی شما به مباحث اعتبارسنجی پرداخته و در کنترلرهای آن از فیلتر Authorize استفاده میشود، دو تغییر مهم فراخوانی UseAuthentication و سپس UseAuthorization (که این مورد جدید هست) را پس از فراخوانی UseRouting باید انجام دهید. در غیر اینصورت در حین مرور این صفحات و قسمتهای محافظت شده، برنامه با خطای زیر متوقف خواهد شد:
Endpoint xyz contains authorization metadata, but a middleware was not found that supports authorization. Configure your application startup by adding app.UseAuthorization() inside the call to Configure(..) in the application startup code.
- متدهای UseMvc و یا UseSignalR قبلی، به متد UseEndpoints تبدیل شدهاند.
قسمت اول این مطلب را در اینجا میتوانید مطالعه کنید. از سه سال قبل تا به این تاریخ، فرمت زیرنویسهای این سایت به صورت JSON تغییر پیدا کردهاست و یک چنین ساختار جدیدی را دارد:
که اگر بخواهیم کلاسهای معادل آنرا تشکیل دهیم، به ساختار زیر خواهیم رسید:
و بعد از تشکیل این ساختار که توسط منوی edit و گزینهی paste special ویژوال استودیو تشکیل شدهاست:
بارگذاری آن توسط کتابخانهی JSON.NET به صورت ذیل خواهد بود:
و پس از آن اگر حلقهای را بر روی ماژولها و سپس آیتمهای هر ماژول تشکیل دهیم، میتوان فرمت آنرا به فرمت استاندارد srt که قابلیت پخش در اکثر برنامههای video player را دارد (مانند kmplayer)، تبدیل کرد.
کدهای کامل این برنامه را از اینجا میتوانید دریافت کنید:
PluralsightJsonTranscripts.V1.0.7z
{ "userIsAuthorizedForCourseTranscripts": false, "modules": [ { "title": "Course Overview", "clips": [ { "title": "Course Overview", "playerParameters": "author=scott-allen&name=aspdotnet-core-1-0-fundamentals-m0&mode=live&clip=0&course=aspdotnet-core-1-0-fundamentals", "transcripts": [ ] } ] }, { "title": "Building Your First ASP.NET Core Application", "clips": [ { "title": "Introduction", "playerParameters": "author=scott-allen&name=aspdotnet-core-1-0-fundamentals-m1&mode=live&clip=0&course=aspdotnet-core-1-0-fundamentals", "transcripts": [ { "displayTime": 0.0, "text": "Hi! This is Scott, and this course will help you build your first application with ASP.NET Core." }, { "displayTime": 7.0, "text": "In this course, we'll be using Visual Studio and the new ASP.NET Framework to build a web application that" } ] } ] } ] }
public class PluralsightCourse { public bool UserIsAuthorizedForCourseTranscripts { get; set; } public PluralsightCourseItems[] Modules { get; set; } } public class PluralsightCourseItems { public string Title { get; set; } public PluralsightCourseClip[] Clips { get; set; } } public class PluralsightCourseClip { public string Title { get; set; } public string PlayerParameters { get; set; } public PluralsightCourseClipTranscript[] Transcripts { get; set; } } public class PluralsightCourseClipTranscript { public float DisplayTime { get; set; } public string Text { get; set; } }
بارگذاری آن توسط کتابخانهی JSON.NET به صورت ذیل خواهد بود:
public static PluralsightCourse ProcessJsonFile(string jsonData) { return JsonConvert.DeserializeObject<PluralsightCourse>(jsonData); }
کدهای کامل این برنامه را از اینجا میتوانید دریافت کنید:
PluralsightJsonTranscripts.V1.0.7z