مدل میزبانی حداقل در ASP.NET Core 6 به این معنی است که برای راهاندازی و اجرای برنامهتان باید کدهای کمتری بنویسید.
ASP.NET Core 6 مدل میزبانی جدیدی را معرفی کرده است که بسیار سادهتر و کارآمدتر است، و مقدار کد دیگ بخاری را که برای راهاندازی برنامه ASP.NET Core خود باید بنویسید، کاهش میدهد. این مقاله هر جا که مناسب باشد، این مدل میزبانی جدید را با نمونههای کد مرتبط معرفی میکند.
برای کار با نمونه کدهای ارائه شده در این مقاله، باید Visual Studio 2022 را در سیستم خود نصب کنید. اگر قبلاً نسخهای ندارید، میتوانید Visual Studio 2022 را از اینجا بارگیری کنید.
یک پروژه ASP.NET Core Web API در Visual Studio 2022 ایجاد کنید
ابتدا، اجازه دهید یک پروژه ASP.NET Core در Visual Studio 2022 ایجاد کنیم. با دنبال کردن این مراحل، یک پروژه جدید ASP.NET Core Web API 6 ایجاد می کنیم:
- Visual Studio 2022 IDE را راه اندازی کنید.
- روی “ایجاد پروژه جدید” کلیک کنید.
- در پنجره “ایجاد پروژه جدید”، “ASP.NET Core Web API” را از لیست الگوهای نمایش داده شده انتخاب کنید.
- بعدی را کلیک کنید.
- در پنجره “پیکربندی پروژه جدید خود”، نام و مکان پروژه جدید را مشخص کنید.
- به صورت اختیاری، بسته به تنظیمات برگزیده خود، کادر انتخاب «قرار دادن راه حل و پروژه در یک فهرست راهنمای» را علامت بزنید.
- بعدی را کلیک کنید.
- در پنجره “اطلاعات اضافی” نشان داده شده در ادامه، .NET 6.0 را به عنوان چارچوب هدف از لیست کشویی در بالا انتخاب کنید. “نوع احراز هویت” را به عنوان “هیچ” (پیشفرض) بگذارید.
- مطمئن شوید که چک باکسهای «Enable Docker»، «Configure for HTTPS» و «Enable Open API Support» علامت نخورده باشند زیرا ما در اینجا از هیچ یک از این ویژگیها استفاده نخواهیم کرد.
- روی ایجاد کلیک کنید.
ما از این پروژه ASP.NET Core 6 Web API برای کار با مدل میزبانی حداقل در بخشهای بعدی این مقاله استفاده خواهیم کرد.
کلاس برنامه در ASP.NET Core 6
هنگامی که یک پروژه جدید ASP.NET Core 6 در ویژوال استودیو ایجاد می کنید، کلاس Program به این صورت خواهد بود:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
var app = builder.Build();
// Configure the HTTP request pipeline.
app.UseAuthorization();
app.MapControllers();
app.Run();
ما از این کلاس در بخشهای بعدی این مقاله استفاده خواهیم کرد.
میان افزار را در ASP.NET Core 6 پیکربندی کنید
اجزای میانافزار در خط لوله درخواست ASP.NET Core 6 برای سفارشی کردن نحوه رسیدگی به درخواستها و پاسخها استفاده میشوند. میتوانید از میانافزار برای بازرسی، مسیریابی یا تغییر پیامهای درخواست و پاسخی که در خط لوله جریان دارند استفاده کنید.
ما میتوانیم ببینیم که چگونه پیکربندی میانافزار در ASP.NET Core 6 در مقایسه با ASP.NET Core 5 سادهسازی شده است. قطعه کد زیر را میتوان برای افزودن سرویس فایل استاتیک (مانند HTML، CSS، تصویر و جاوا اسکریپت) استفاده کرد. فایل ها) به خط لوله پردازش درخواست در ASP.NET Core 5:
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
}
//Other members
}
این پیکربندی در ASP.NET Core 6 به دو خط کاهش یافته است. می توانید کد زیر را برای افزودن همان میان افزار به خط لوله پردازش درخواست در ASP.NET Core 6 بنویسید:
// Configure the HTTP request pipeline.
var app = builder.Build();
app.UseStaticFiles();
پیکربندی مسیریابی در ASP.NET Core 6
حالا اجازه دهید پیکربندی مسیریابی را در ASP.NET Core 5 و ASP.NET Core 6 مقایسه کنیم. می توانید از کد زیر برای ایجاد نقطه پایانی در برنامه ASP.NET Core 5 استفاده کنید:
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", () =>
"This is an endpoint created in ASP.NET 5");
});
}
}
شما میتوانید در ASP.NET Core 6 با کد بسیار کمتر به همین هدف برسید:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "This is an endpoint created in ASP.NET 6");
app.Run();
یک ارائه دهنده گزارش در ASP.NET Core 6 اضافه کنید
ارائهدهندگان گزارش کلاسهایی هستند که رابط IloggingProvider را پیادهسازی میکنند. ارائه دهندگان گزارش گزارش ها را در یک هدف گزارش که در برنامه پیکربندی شده است ذخیره می کنند. استثنا ارائهدهنده گزارشگیری کنسول است که گزارشها را به عنوان خروجی استاندارد نمایش میدهد. ASP.NET Core شامل ارائه دهندگان ورود داخلی زیر است:
- کنسول
- اشکال زدایی
- منبع رویداد
- EventLog
می توانید از قطعه کد زیر برای اضافه کردن گزارش کنسول به برنامه ASP.NET Core 5 خود استفاده کنید:
public static IHostBuilder CreateHostBuilder(string[] args) = >
Host.CreateDefaultBuilder(args).ConfigureLogging(loggingBuilder = > {
loggingBuilder.ClearProviders();
loggingBuilder.AddConsole();
}).ConfigureWebHostDefaults(webBuilder = >{
webBuilder.UseStartup < Startup > ();
});
در اینجا دوباره ASP.NET Core 6 کمتر پرمخاطب است. میتوانید با استفاده از سه خط کد در ASP.NET Core 6 لاگ کنسول اضافه کنید:
var builder = WebApplication.CreateBuilder(args);
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
خدمات را در ASP.NET Core 6 اضافه کنید
نحو برای افزودن سرویسها در ASP.NET Core 6 تغییر کرده است، اما هیچگونه توصیفی نیست. با استفاده از کد زیر میتوانید سرویسها را به ظرف تزریق وابستگی داخلی در ASP.NET Core 5 اضافه کنید:
public void ConfigureServices(IServiceCollection services)
{
services.AddMemoryCache();
services.AddScoped<IProductRepository, ProductRepository>();
}
شما می توانید در ASP.NET Core 6 با استفاده از این کد به همین نتیجه برسید:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddMemoryCache();
builder.Services.AddScoped<IProductRepository, ProductRepository>();
var app = builder.Build();
یک ارائه دهنده پیکربندی در ASP.NET Core 6 اضافه کنید
ارائهدهندگان پیکربندی برای خواندن و نوشتن دادههای پیکربندی از منابع دادههای پیکربندی از پیش پیکربندی شده مختلف استفاده میشوند. ASP.NET Core 5 پشتیبانی عالی برای کار با داده های پیکربندی ذخیره شده در فایل های JSON، متغیرهای محیط، فایل های XML، فایل های INI، آرگومان های خط فرمان و غیره ارائه می دهد. می توانید از کد زیر برای افزودن یک ارائه دهنده پیکربندی در ASP.NET Core استفاده کنید. ۵:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(config =>
{
config.AddIniFile("appsettings.ini");
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
و شما میتوانید در ASP.NET Core 6 تنها در سه خط به آن دست پیدا کنید:
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddIniFile("appsettings.ini");
var app = builder.Build();
پارادایم میزبانی جدید در ASP.NET Core 6 ساده شده است و برای راهاندازی و اجرای برنامه ساده ASP.NET Core به کد دیگ بخار کمتری نیاز دارد. برای حفظ سازگاری به عقب، همچنان میتوانید از کلاس Startup در ASP.NET Core 6 استفاده کنید.
پست های مرتبط
نحوه استفاده از مدل میزبانی حداقل در ASP.NET Core 6
نحوه استفاده از مدل میزبانی حداقل در ASP.NET Core 6
نحوه استفاده از مدل میزبانی حداقل در ASP.NET Core 6