Blazor - شرح ملف Program.cs و Startup (في .NET 5 أو 6)
Blazor Server - شرح ملف Program.cs و Startup (في .NET 5 أو 6)
ملف Program.cs (وفي الإصدارات الأقدم مع Startup.cs) هو المسؤول عن إعداد التطبيق وتشغيله.
🔹 في .NET 6 (وما بعده):
تم تبسيط الإعداد وأصبح كل شيء تقريبًا داخل ملف واحد هو Program.cs.
var builder = WebApplication.CreateBuilder(args);
// تسجيل الخدمات (Dependency Injection)
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
var app = builder.Build();
// إعداد الـ Middlewares
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
// تعيين نقاط النهاية (Endpoints)
app.MapBlazorHub();
app.MapFallbackToPage("/_Host");
app.Run();
🔹 ملاحظات مهمة:
- builder.Services: يتم فيها تسجيل الخدمات التي يحتاجها التطبيق (مثل Blazor نفسه).
- app.UseRouting: يسمح للنظام بفهم التنقل بين الصفحات.
- app.MapBlazorHub: يحدد نقطة الاتصال باستخدام SignalR لتحديث الواجهة.
- app.MapFallbackToPage: يعيد التوجيه لأي عنوان غير معروف إلى صفحة Blazor الأساسية (_Host.cshtml).
🔹 ماذا عن .NET 5 وما قبله؟
في الإصدارات الأقدم مثل .NET 5، كانت الإعدادات موزعة بين:
- Program.cs: يقوم بإنشاء Host ويحدد Startup Class.
- Startup.cs: يحتوي على دوال ConfigureServices و Configure.
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>();
});
}
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddServerSideBlazor();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (!env.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
});
}
}
✅ في .NET 6 فما فوق أصبح كل شيء أبسط وأسرع بفضل دمج Program و Startup معًا.
تعليقات
إرسال تعليق