بررسی مختصر و سریع در مورد ویژگی‌های جدید ASP.NET Core 2.1

این مقاله در مورد بعضی از مهم‌ترین ویژگی‌های جدید معرفی شده در ASP.NET Core 2.1 و همچنین تغییراتی که در آن رخ داده است صحبت می‌کند. در اینجا ما خلاصه کوتاه و سریعی از این تغییرات و ویژگی‌ها را بیان می‌کنیم.

بررسی مختصر و سریع در مورد ویژگی‌های جدید ASP.NET Core 2.1

SignalR فریم‌ورکی برای انجام توسعه وب بلادرنگ (real-time) مانند کلاینت‌های متصل شده یا برنامه چت می‌باشد. تا امروز، نسخه رسمی فریم‌ورک SignalR برای ASP.NET Core در دسترس نبود. در نهایت، SignalR برای ASP.NET Core فراهم شد. SignalR برای ASP.NET Core بازنویسی SignalR اصلی است و با برخی پیشرفت‌ها همراه می‌باشد.

1. یک کلاینت کاملا جدید جاوااسکریپت نوشته شده در TypeScript دارد و دیگر به jQuery وابستگی ندارد.

2. دو پروتکل توکار hub ارائه می‌دهد، یک پروتکل متنی مبنی بر JSON و یک پروتکل باینری مبنی بر MessagePack.

3. پشتیبانی از پروتکل‌های سفارشی.

4. بهبود و ساده‌سازی مدل scale-out (تغییر مقیاس افقی، به معنی افزایش گره های بیشتر به سیستم)

5. به دلیل مدل جدید scale-out سشن‌های Sticky ضروری می‌باشند.

به طور پیش‌فرض، برنامه ASP.NET Core در حال حاضر روی HTTPS اجرا می‌شود. گواهی (certificate) توسعه‌دهنده برای محیط توسعه، جهت اجرای HTTPS حتی روی دستگاه‌های محلی، تنظیم خواهد شد. برای پیاده‌سازی این امر، یک میان‌افزار (middleware) UseHttpsRedirection معرفی شده است تا همه ترافیک HTTP را به HTTPS هدایت کند. پشتیبانی از پروتکل HSTS نیز برای اجرای کلاینت‌ها (مرورگرهای وب یا سایر عوامل مورد استفاده کاربر) جهت تعامل با سرور از طریق اتصالات HTTPS اضافه شده است. قالب پیش‌فرض جدید این میان‌افزارها را با متد Configure اضافه خواهد کرد.

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        // Configure developer middlewares
    }
    else
    {
        app.UseHSTS();
    }
    app.UseHttpsRedirection();
}

پروتکل HSTS به طور معمول در سناریوهای توسعه نیافته استفاده می‌شود، بنابراین میان‌افزار UseHSTS() در بخش دیگری از کد اضافه شده است. این تغییر کمک خواهد کرد تا مشکلات خاص HTTPS تولیدشده در محیط ساخت اصلاح شوند.

قرارداد جدید Web API برای پشتیبانی قدرتمند Swagger. امروزه، شما باید از ویژگی‌های مختلف برای مستندات دقیق swagger استفاده کنید. ASP.NET Core 2.1 مستندسازی قدرتمند swagger را ارائه می‌دهد و دیگر نیازی به نوشتن ویژگی‌های مختلف برای نوشتن مستندات swagger از یک API نیست.

تیم Net. لایه‌ای اضافه کرده است که پاسخ‌های احتمالی را بر اساس آنچه شما احتمالا با اقدامات خود انجام داده‌اید استنتاج می‌کند (شما هنوز می‌توانید از ویژگی‌ها استفاده کنید، اگر می‌خواهید صریح و واضح عمل کنید).

امروزه، شما به اعتبارسنجی مدل برای بررسی خطا نیاز دارید، اما در ASP.NET Core 2.1 لازم نیست. اتربیوت جدید ApiController در حال حاضر اعتبارسنجی خودکار مدل را انجام می‌دهد و به صورت خودکار با یک خطای 400 پاسخ می‌دهد.

یک نوع جدید به نام ActionResult<T> معرفی شده است که به شما اجازه می‌دهد تا هر نوع پاسخ یا هر action resultای را بازگردانید، در حالی که نوع پاسخ را نشان می‌دهد، مثل:

public ActionResult<ToDo> Get(int id)
{
    if (!_repository.TryGetToDo(id, out var todo))
    {
       return NotFound();
    }
    return todo;
}

معرفی HttpClientFactory (HttpClient به عنوان سرویس). HttpClientFactory جدید یک مخزن مرکزی برای ثبت، پیکربندی و استفاده از نمونه‌های HttpClient در برنامه شما است. این عملیات با اجرای فعلی HttpClient ایجاد می‌شود.

ارتقاء ANCM برای عملکرد بهتر. ماژول ASP.NET Core (ANCM) به شما اجازه می‌دهد برنامه ASP.NET Core را در پشت IIS اجرا کنید. ANCM ماژول بومی IIS است که به خط لوله (pipeline) IIS متصل می‌شود و ترافیک را به برنامه back-end ASP.NET Core هدایت می‌کند. برنامه‌های ASP.NET Core در فرآیند جداگانه‌ای از فرآیند ایجادکننده IIS اجرا می‌شوند،‌ ANCM همچنین مدیریت فرآیند را انجام می‌دهد. ANCM فرآیند برنامه ASP.NET Core را وقتی اولین درخواست می‌آید، شروع می‌کند و هنگام برخورد، مجددا راه‌اندازی می‌شود.

در 2.1، یک شیوه فرآیند جدید ANCM برای برنامه‌های مبنی بر NET Core. افزوده شده است که زمان اجرا و برنامه درون فرآیند ایجادکننده IIS (w3wp.exe) را بارگذاری می‌کند. این کار تقریبا عملکرد را 6 برابر بهبود می‌بخشد و مدیریت خطا را آسان‌تر می‌سازد.

به طور خلاصه، زمان اجرا و برنامه هر دو می‌توانند درون فرآیند ایجادکننده IIS (w3wp.exe) بارگیری شوند.

ASP.NET Identity به عنوان کتابخانه UI. ASP.NET Core 2.1 اجرای پیش‌فرض identity UI را به عنوان یک کتابخانه ارائه می‌دهد. می‌توانید identity UI پیش‌فرض را با نصب پکیج NuGet و سپس فعال کردن آن در کلاس Startup خود، به برنامه‌یتان اضافه کنید.

تست MVC Functional وسیله‌ای برای فعال کردن تست بهتر برنامه MVC است که شامل روتینگ، فیلترها، کنترلر، اکشن‌ها، ویوها و صفحات می‌باشد. این مسأله به شما کمک می‌کند تا مشکلات جاری را پیدا کنید.

طرح‌های احراز هویت مجازی برای ترکیب طرح‌های احراز هویت، مثل توکن‌های حامل و کوکی‌های احراز هویت در همان برنامه.

ASP.NET Core 2.1 یک متا پکیج جدید را برای استفاده در برنامه‌ها معرفی خواهد کرد:

Microsoft.AspNetCore.App. متا پکیج جدید با متا پکیج‌های موجود متفاوت است زیرا تعداد وابستگی‌های پکیج‌هایی که توسط ASP.NET یا تیم‌های NET. پشتیبانی نمی‌شود یا متعلق به آن‌ها نیست را کاهش می‌دهد.

موافقت مقررات حفاظت از اطلاعات عمومی (GDPR). قالب پروژه ASP.NET Core 2.1 شامل مواردی است که به شما کمک می‌کند برخی از GDPR مربوط به UE خود را بیابید. قالب جدید از UI پشتیبانی می‌کند تا  به منظور موافقت کاربران برای ذخیره‌سازی اطلاعات شخصی سوال بپرسد.

امروزه صفحات razor در زمان اجرا کامپایل می‌شوند. در ASP.NET Core 2.1، صفحات razor و viewها به عنوان بخشی از فرآیند ساخت برای بهبود عملکرد راه‌اندازی کامپایل می‌شوند. یک نکته خوب در مورد این پیاده‌سازی این است که از ویرایش/رفرش در لحظه‌ (live) صفحات razor پشتیبانی می‌کند.

Razor UI به عنوان class library. ASP.NET Core 2.1 ساخت را آسان‌تر کرده است و Razor مبنی بر UI را در یک کتابخانه قرار داده است و آن را در میان پروژه های متعدد به اشتراک می‌گذارد. یک Razor SDK می‌تواند فایل‌های Razor درون یک پروژه class library را بسازد که می‌تواند درون پکیج NuGet بسته‌بندی شود.

صفحات Razor در حال حاضر areaها و دایرکتوری shared درون فولدر Pages را پشتیبانی می‌کنند. Pages/Shared/ تا مراقب موارد مربوط به razor باشد.

با ASP.NET Core 2.1، یک زیرمجموعه از دریافت‌کننده‌های ASP.NET WebHooks به ASP.NET Core منتقل می‌شوند. دریافت‌کننده‌های زیر برنامه‌ریزی شده‌اند تا روی ASP.NET Core کار کنند:

Azure alerts, Azure Kudu notifications, Dynamics CRM, Bitbucket, Dropbox, GitHub, MailChimp, Pusher, Salesforce, Slack, Stripe, Trello, WordPress.

خلاصه

 ASP.Net Core 2.1 چند ویژگی جدید مثل HTTPS پیش‌فرض، بازنویسی ورژن‌هایی از SignalR برای ASP.NET Core، بهبود صفحات razor، عملکرد سریع‌تر و غیره را معرفی کرده است. در زمان نوشتن این مقاله Preview 2 موجود بود و امید است که به زودی منتشر شود.  بعید به نظر می‌رسد که این موارد، بعد از نسخه پایانی به طور قابل توجهی تغییر کرده یا به روز رسانی شود.