۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

بهترین ویژگی های جدید در ASP.NET Core 6

مهم‌ترین ویژگی‌ها و پیشرفت‌های جدید را در ASP.NET Core 6 بیاموزید، یک ارتقای بزرگ در چارچوب مایکروسافت برای ساخت برنامه‌های کاربردی وب مدرن.

مهم‌ترین ویژگی‌ها و پیشرفت‌های جدید را در ASP.NET Core 6 بیاموزید، یک ارتقای بزرگ در چارچوب مایکروسافت برای ساخت برنامه‌های کاربردی وب مدرن.

Microsoft.NET 6 در نوامبر ۲۰۲۱ با انواع ویژگی‌های جدید عالی برای توسعه‌دهندگان NET وارد شد. با این حال، بزرگترین نکته برجسته .NET 6، ASP.NET Core 6 است، که ارتقای عمده چارچوب متن باز مایکروسافت برای ساخت برنامه های کاربردی وب مدرن است.

ASP.NET Core 6 بر روی زمان اجرا NET Core ساخته شده است و به شما امکان می دهد برنامه هایی را در ویندوز، لینوکس و macOS بسازید و اجرا کنید. ASP.NET Core 6 ویژگی های Web API و MVC را ترکیب می کند. این مقاله به موارد جدید در ASP.NET 6 با چند نمونه کد می پردازد.

برای کار با نمونه کدهای ارائه شده در این مقاله، باید Visual Studio 2022 را در رایانه خود نصب کنید. می‌توانید Visual Studio 2022 را از اینجا دانلود کنید.

اکنون اجازه دهید به ویژگی‌های جدید در ASP.NET Core 6 بپردازیم.

بارگذاری مجدد داغ

Hot Reload یکی از قابل توجه ترین ویژگی های جدید اضافه شده در NET 6 است. شما می توانید از این ویژگی برای تغییر رابط کاربری زمانی که برنامه ASP.NET Core 6 شما در حال اجرا است استفاده کنید. شما می‌توانید پس از ذخیره تغییرات منعکس‌شده را ببینید – نیازی به بازسازی و راه‌اندازی مجدد برنامه ندارید. این ویژگی بهره وری توسعه دهندگان را به میزان قابل توجهی افزایش می دهد.

حداقل API

ASP.NET Core 6 به شما امکان می‌دهد سرویس‌های سبک وزن (که حداقل API نیز نامیده می‌شود) بسازید که به کلاس الگو یا کنترل‌کننده نیاز ندارند. علاوه بر این، می‌توانید از روش‌های توسعه رابط IEndpointConventionBuilder برای ساخت سرویس‌های سبک وزنی که فاقد الگو یا کنترل‌کننده هستند استفاده کنید. می توانید سرویس ها یا API های سبک وزن را در کلاس Startup یا کلاس Program ایجاد کنید.

Zenhub پیش نمایش هوش مصنوعی را برای مدیریت پروژه نرم افزاری انجام می دهد

می‌توانید از برخی از روش‌های توسعه رابط IEndpointConventionBuilder برای نقشه‌برداری درخواست‌ها استفاده کنید. در اینجا لیستی از این روش های افزودنی آمده است:

  • MapControllers
  • MapGet
  • MapPut
  • MapPost
  • MapDelete
  • MapRazorPages
  • MapGrpcService
  • MapHub

روش های MapGet، MapPut، MapPost و MapDelete برای اتصال نماینده درخواست به سیستم مسیریابی استفاده می شود. روش MapControllers برای کنترلرها، MapRazorPages برای Razor Pages، MapHub برای SignalR و MapGrpcService برای gRPC استفاده می شود.

به عنوان مثال، قطعه کد زیر نشان می دهد که چگونه می توانید از یک سرویس سبک وزن برای نوشتن پاسخ “Hello World” در فایل Program.cs استفاده کنید.

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", (Func<string>)(() => "Hello World!"));

ادغام کلاس های برنامه و راه اندازی

در ASP.NET Core 5 و نسخه های قبلی، ما مجبور شدیم با دو کلاس برای ساخت و پیکربندی برنامه کار کنیم. این کلاس‌ها کلاس‌های Program و Startup هستند که در فایل‌های Program.cs و Startup.cs قرار دارند.

در اینجا مثالی از یک کلاس Startup معمولی در ASP.NET Core 5 آمده است:

public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }
         public IConfiguration Configuration { get; }
         public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddSingleton<IDataService, DataService>();
        }
        public void Configure(IApplicationBuilder app,
        IWebHostEnvironment env)
        {
             if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                app.UseHsts();
            }
            app.UseHttpsRedirection();
            app.UseRouting();
            app.UseAuthorization();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }

با ASP.NET 6، کلاس های Program و Startup در کلاس Program ادغام شده اند. در اینجا نمونه ای از کلاس Program در ASP.NET Core 6 آمده است:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddSingleton<IDataService, DataService>();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/Home/Error");
    app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapControllers();
app.Run();

تغییرات فایل Program.cs

الگوی کنسول جدید به طور چشمگیری کدهایی را که برای نوشتن یک برنامه نیاز دارید ساده می کند. الگوی کنسول دیگر حاوی کلاس برنامه نیست. در اصل، اکنون فقط باید متد Main را بنویسید.

خود مختاری، اندازه بسته، اصطکاک، هواکش و سرعت

در نسخه‌های قبلی دات‌نت، وقتی یک پروژه هسته‌ای جدید ASP.NET ایجاد می‌کردید، کلاسی به نام Program به‌طور خودکار در فایلی به نام Program.cs ایجاد می‌شد. کلاس Program شامل متد Main می‌شود، جایی که اجرای یک برنامه ASP.NET Core شروع می‌شود. Main روشی است که در آن یک برنامه وب ساخته، پیکربندی و اجرا می شود.

وقتی یک پروژه برنامه کاربردی کنسول جدید در .NET 6 ایجاد می کنید، ویژوال استودیو یک فایل Program.cs پیش فرض ایجاد می کند که حاوی این کد است:

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

وقتی یک پروژه برنامه کاربردی کنسول جدید در .NET 5 ایجاد می کنید، فایل Program.cs پیش فرض حاوی این کد است:

using System;
namespace IDGNet6Demo
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

در ASP.NET Core 5 و نسخه های قبلی، فایل Program.cs معمولی حاوی این کد خواهد بود:

public class Program {
   public static void Main(string[] args) {
      CreateHostBuilder(args).Build().Run();
   }
   public static IHostBuilder CreateHostBuilder(string[] args) =>
      Host.CreateDefaultBuilder(args)
      .ConfigureWebHostDefaults(webBuilder => {
         webBuilder.UseStartup <Startup> ();
      });
}

و در ASP.NET Core 6، فایل Program.cs معمولی حاوی این کد خواهد بود:

using NET6Demo;
Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
    }).Build().Run();

توجه داشته باشید که دیگر فایل Startup.cs را به‌طور پیش‌فرض در ASP.NET Core 6 پیدا نخواهید کرد. با این حال، اگر می‌خواهید با نسخه‌های قبلی ASP.NET Core سازگاری داشته باشید، یا به سادگی با نسخه قدیمی راحت‌تر هستید. سبک، می توانید یک کلاس Startup در پروژه به صورت دستی ایجاد کنید.

Llama 2 چیست؟ مدل زبان بزرگ متا توضیح داده شد

سپس متد UseStartup را فراخوانی کنید تا کلاس Startup را همانطور که در قطعه کد قبلی نشان داده شده است مشخص کنید.

میان افزار ثبت HTTP

پشتیبانی از میان‌افزار HTTP Logging در ASP.NET Core 6 معرفی شده است. می‌توانید از این میان‌افزار در ASP.NET Core 6 برای ثبت اطلاعات مربوط به درخواست‌ها و پاسخ‌های HTTP استفاده کنید. یا بیشتر از موارد زیر:

  • اطلاعات را درخواست کنید
  • اطلاعات پاسخ
  • سرصفحه‌های درخواست و پاسخ
  • متن درخواست
  • خواص

بهبودهای Blazor

چندین پیشرفت در Blazor در ASP.NET Core 6 وجود دارد. برخی از مهمترین آنها عبارتند از:

  • قابلیت رندر کردن اجزا از جاوا اسکریپت.
  • پشتیبانی برای حفظ وضعیت از قبل اجرا شده.
  • پشتیبانی از args رویداد سفارشی.
  • پشتیبانی از اولیه سازهای جاوا اسکریپت.
  • قابلیت رندر کردن اجزا به صورت پویا با استفاده از کلاس DynamicComponent.
  • قابلیت تعریف مرزهای خطا با استفاده از کلاس ErrorBoundary.

پشتیبانی بهبود یافته برای IAsyncDisposable

شما همچنین از IAsyncDisposable در کنترل‌کننده‌ها، کلاس‌ها، مدل‌های صفحه و کامپوننت‌های خود برای انتشار منابع ناهمگام پشتیبانی کرده‌اید.

عدم دفع یک منبع یکبار مصرف ناهمزمان ممکن است منجر به بن بست شود. رابط IAsyncDisposable این مشکل را با آزاد کردن منابع به صورت ناهمزمان حل می کند. رابط IAsyncDisposable بخشی از فضای نام سیستم است که در C# 8.0 معرفی شده است.

همانطور که روش Dispose() رابط IDisposable را برای تماس‌های همزمان پیاده‌سازی می‌کنید، باید متد DisposeAsync() رابط IAsyncDisposable را برای انجام عملیات پاکسازی و آزادسازی منابع به صورت ناهمزمان پیاده‌سازی کنید.

اکوسیستم NET 6 یک مدل توسعه ساده، عملکرد بهبود یافته و بهره وری افزایش یافته را ارائه می دهد. پیشرفت های زیادی در ASP.NET Core 6 برای بهبود عملکرد برنامه و کاهش تخصیص ها ارائه شده است. به همین ترتیب، توسعه‌دهندگان از پیشرفت‌های بسیاری بهره می‌برند که توسعه برنامه‌های وب مدرن و کارآمد را سریع‌تر و آسان‌تر می‌کنند.