ASP.NET Core Proje ve Klasör Yapısı
ASP.NET Core projeleri, her dosyanın belirli bir görevi olduğu, oldukça düzenli bir yapıya sahiptir. Projeyi başlatan ilk kod satırından, statik dosyaların tutulduğu klasöre kadar her şeyi tanıyalım.
1) Kritik Dosyalar
- Program.cs: Uygulamanın giriş noktasıdır. Uygulamanın hangi servisleri kullanacağı (Veritabanı, Auth vb.) ve isteklerin nasıl işleneceği (Middleware) burada belirlenir.
- appsettings.json: Veritabanı bağlantı metinleri (Connection Strings) ve API anahtarları gibi ayarların tutulduğu yapılandırma dosyasıdır.
- wwwroot: Dışarıya açık olan statik dosyaların (CSS, JavaScript, Resimler) merkezidir.
2) Klasör Hiyerarşisi
| Klasör | Görev |
|---|---|
Controllers/ |
İstekleri karşılayan C# sınıfları bulunur. |
Models/ |
Veritabanı tablolarına karşılık gelen nesneler. |
Views/ |
Kullanıcıya sunulacak HTML (Razor) dosyaları. |
Migrations/ |
Veritabanı şemasının tarihsel değişim kayıtları. |
Modern Yapı: Program.cs (Minimal API Tarzı)
Yeni nesil ASP.NET Core projelerinde her şey tek bir dosyada (Program.cs) yapılandırılır:
var builder = WebApplication.CreateBuilder(args);
// 1. Servisleri Kaydet (Dependency Injection)
builder.Services.AddControllersWithViews();
var app = builder.Build();
// 2. Middleware (Ara Yazılım) Ayarları
if (!app.Environment.IsDevelopment()) {
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles(); // wwwroot kullanımını açar
app.UseRouting();
app.UseAuthorization();
// 3. Rota Tanımlama
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();