MVC Yapısı ve ASP.NET Core
Web Programlama 2 - Ünite 2: Proje Döngüsü ve Mimari
Mimari Disiplin Olarak MVC
Bu ünite, sadece kod yazmayı değil, bir "mimari disiplin" ve "proje yaşam döngüsü" kavramlarını ele alır. Modern web geliştirmede omurga görevi gören MVC yapısını ve ASP.NET Core temellerini 5 ana başlıkta inceleyeceğiz.
Geliştirme Ortamı ve Kurulum
Entegre Geliştirme Ortamı (IDE)
Visual Studio (Community)
Tam kapsamlı, profesyonel ve öğrenme amaçlı ücretsiz sürüm.
Visual Studio Code
Daha hafif, eklenti tabanlı ve hızlı editör alternatifi.
Kurulumda Kritik Nokta
Mühendislik yaklaşımıyla doğru iş yüklerini (workloads) seçmek elzemdir:
- ASP.NET ve Web Geliştirme
- SQL Server Express LocalDB (Veritabanı için)
ASP.NET Core Proje Anatomisi
Çözüm Gezgini
- MyMvcProject
- Connected Services
- Dependencies // NuGet Paketleri
- wwwroot // Statik Dosyalar (CSS, JS)
- Controllers
- Models
- Views
- Program.cs // Giriş Noktası
- Startup.cs // Konfigürasyon
- appsettings.json
Program.cs (Giriş Noktası)
Uygulamanın Main metodunu barındırır. Web sunucusunu (Kestrel/IIS) ayağa kaldırır.
Startup.cs (Projenin Beyni)
Servislerin (Dependency Injection) konteyner'a eklendiği yer.
HTTP istek hattının (Middleware) ve Routing'in ayarlandığı yer.
wwwroot
Dış dünyaya açık klasör. CSS, resim ve JavaScript kütüphaneleri burada saklanır.
MVC Mimarisi: Sorumlulukların Ayrılığı
Yazılımın "Separation of Concerns" ilkesine göre üç ana katmana bölünmesidir.
Model
Veri ve İş Mantığı
Uygulamanın verilerini (Örn: Öğrenci, Kitap) ve iş kurallarını temsil eder. Veritabanı işlemleri buradadır.
View
Sunum Katmanı
Kullanıcının gördüğü arayüzdür. .cshtml uzantılıdır ve Razor motoru ile HTML içine C# gömülür.
Controller
Karar Mekanizması
İstekleri (Request) karşılar, Model'i işler ve hangi View'in döneceğine karar verir.
İstek Yaşam Döngüsü ve Routing
Varsayılan Rota Şablonu
{controller=Home}/{action=Index}/{id?}
id? : Soru işareti parametrenin opsiyonel olduğunu belirtir.
Eğer kullanıcı kök dizine (/) giderse, sistem otomatik olarak Home Controller'daki Index metodunu çalıştırır.
Kodlama: Teoriden Pratiğe
1. Controller Oluşturma
İsimler mutlaka "Controller" sonekiyle bitmelidir. Metotlar IActionResult döndürür.
using Microsoft.AspNetCore.Mvc; public class OgrenciController : Controller { // Action Metodu public IActionResult Index() { // Views/Ogrenci/Index.cshtml dosyasını render eder. return View(); } }
2. Model Oluşturma
Veri yapısını tanımlayan sıradan C# sınıflarıdır (POCO).
public class Ogrenci { public int Id { get; set; } public string OgrAd { get; set; } public string OgrSoyad { get; set; } }
3. View Oluşturma
HTML içine C# kodu yazmayı sağlayan Razor sözdizimi (@) kullanılır.
@* Model tanımlaması *@ @model List<Ogrenci> <h2>Öğrenci Listesi</h2> <ul> @foreach (var ogr in Model) { <li>@ogr.OgrAd @ogr.OgrSoyad</li> } </ul>
Hiç yorum yok:
Yorum Gönder