MVC modeli uygulamanızı oluştururken size kolaylık sağlayacak bir dizayn tipi sunmaktadır. Bu modeli iyi kavrayıp alışkanlık haline getirdiğinizde yazdığınız program sizin için hiçbir zaman içinden çıkılmaz bir hal almayacaktır.
Parçalara ayırıp inceleyelim.
Model: Uygulamanızın kullandığı dataları temsil eder. Bir çağrı merkezi uygulamasında şirketin tüm müşterileri, bu müşterilerin satın aldığı ürünler sizin datanızı oluşturur. Uygulamanızda bu dataya ulaşan, datayı güncelleyen, silen ya da yaratan parçaya Model adı verilir.
View: Uygulamanızın kullanıcıya bakan yüzüdür. Bir diğer deyişle kullanıcının gördüğü ara yüze View denir. Bunlar renkler, veri alanları, butonlar, drop-downlar vs. olabilir. Uygulamanın görselini oluşturan her bir parça View elemanıdır.
Controller: Controller, Model ile View arasında iletişimi sağlayan katmandır. View'dan gelen kullanıcı taleplerinin Model objesine gönderilmesi ve Model'den gelen datanın View'da gösterilmesi görevini Controller üstlenir.
Konuyu daha iyi anlatabilmek için bir senaryo üzerinden gidelim. Elimizde kullanıcıdan bir şehir adını input olarak alıp o şehrin hava durumu raporunu bir web servisten alıp kullanıcıya gösteren bir aplikasyon düşünelim. Tüm bu sürecin MVC'ye göre nasıl işlediğini şu şekilde özetleyebiliriz.
1. Kullanıcı bir şehir seçip ilgili butona basar. Bu event Controller'a gönderilir.
2. Controller model'e kullanıcı input'unu gönderip ilgili veriyi ister.
3. Model, web servisi çağırıp şehir için hava tahmini verisini alır.
4. Model veriyi aldığında Controller objesine haber verir.
5. Controller son olarak veriyi alıp View'a yönlendirir.
Model veriyi farklı şekillerde elde edebilir. Database bağlantısı kurup sql ile veri çekebilir, web servis çağırıp xml parse edebilir, dosyadan okuyabilir ya da hard-coded değerler tutabilir.
Konunun anlaşıldığını düşünüyorum. Bir sonraki modulde MVC modeline uygun ufak bir uygulama hazırlayacağız. Kullanıcı buton'a basacak, bu aksiyon Controller'a gidecek. Controller da Model'e gidip hardcoded tutulan değerleri View'a ulaştıracak. Basit ama öğretici...









