IRC ve mIRC Kullanıcılarının Buluşma Noktası
  Mobil Sohbet, Sohbet ve Sohbet Odaları




Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 23 Nisan 2012, 23:41   #1
Çevrimdışı
MVC – Model View Controller




MVC – Model View Controller

Veri tabanından sorgulama işlemleri yaparken, yazdığımız ekran kodu içerisine connection alma, sql çalıştırıp dönen sonuçları görüntüleme kodları yazdığımızı düşünelim.

Daha sonra bir ekrana daha ihtiyacımız olduğunu düşünelim. O ekrandan da veri tabanına bağlanıp dönen sonuçları ekranda görüntüleyeceğiz. Bunu da ekran kodunun içine yazalım. Üçüncü bir ekran yazdık. Bu ekranda da birinci ekrandaki SQL’i kullanan kodu kullanmamız gerekiyor. Aynı kodları bu ekran sınıfına kopyalamamız mümkün ancak SQL’de bir değişiklik yapılması gerektiğinde aynı SQL’i kullanan tüm sınıfların güncellenmesi gerekir. Ayrıca veri tabanı bağlantısı için tüm sınıflarda ayrı ayrı bağlantı açtık, driver’ı register ettik. Veri tabanı bağlantı ayarları değişirse ne olacak? Yine gidip tek tek bütün sınıfları güncellemek gerekecek.

Büyük projelerde değiştirilmesi gereken yer sayısı bir, iki değil birkaç bini buluyor. Bu değişiklikleri yaparken de bazı yerlerin gözden kaçması mümkün ayrıca çok fazla iş yükü oluyor. Ufacık bir değişiklik yapmak için binlerce kopyanın güncellenmesi pek de mantıklı değil. Bir de güncelledikten sonra baktınız hoşunuza gitmedi tekrar birkaç saat uğraşarak eski haline almamız gerekecek.

Bunun olmaması için bir tane sınıf oluşturuyoruz. Ortak olan tüm kodları buraya yazıyoruz. Mesela veri tabanı bağlantısı için bir sınıf yazıp connection her gerektiğinde bu sınıfı kullanabiliriz. Ya da SQL’ler için bir sınıf yazıp farklı ekranlardan bile olsa aynı SQL çağrılmak istendiğinde bu sınıf kullanılabilir. Böylece unutma şansımız olmuyor ve birden fazla yerde değişiklik yapmaya gerek kalmıyor.

İşte bu şekilde yazılan programlama mantığına çok katmanlı mimari adı veriliyor. Ekranlarımız, SQL’lerimizin olduğu sınıf, bağlantı sınıfı, loglama sınıfı, güvenlik sınıfı gibi birçok katman ortaya çıkıyor. Butona bastığımızda kod sırayla birbirini çağırıyor. Çok katmanlı mimariye uygun bütün projeler bu şekilde yazılıyor. Biz de yazdığımız uygulamanın ilerde gelişeceğine inanıyorsak mutlaka çok katmanlı mimariyi kullanıyoruz.

Katman sayısı yazılımcıya bağlıdır. Ancak en az görsel sayfalarımız, sayfalardan gelen istekleri ele alan kontrol sınıflarımız ve veri tabanı ile ilişkili olan sınıflarımız için 3 katman kullanmak tavsiye ediliyor. Dediğim gibi güvenlik için ayrı bir katman, loglama için ayrı bir katman, filtreler için ayrı bir katman, exception yönetimi için ayrı bir katman daha kullanılabilir. Bu tamamen programcının insiyatifindedir.


Görsel Katman : (View) Son kullanıcıya hizmet veren ekranlarımızın bulunduğu katmandır. Masaüstü uygulamaları için form sınıfları, web uygulamaları için HTML sayfaları, JS dosyaları, resimler vb. bu katmanda yer alır.

Kontrol Katmanı : (Controller) Kullanıcının isteklerini ilgili katmanlara ileten sınıfların bulunduğu katmandır. Örneğin web uygulamalarında yazılan servlet sınıfları bu katmanda yer alır.

Model Katmanı :
(Model) Katmanlar arası iletişimi sağlayan bean sınıfları ve diğer tüm işleri yaptığımız iş sınıfları bu katmanda yer alır. Uygulama içerisinde kullanılan Thread sınıfları, veri tabanına istek ve yönlendirme yapan, ayrıca diğer tüm işleri yapan iş sınıfları da yine bu katmandadır.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
MVC – Model View Controller

Veri tabanından sorgulama işlemleri yaparken, yazdığımız ekran kodu içerisine connection alma, sql çalıştırıp dönen sonuçları görüntüleme kodları yazdığımızı düşünelim.

Daha sonra bir ekrana daha ihtiyacımız olduğunu düşünelim. O ekrandan da veri tabanına bağlanıp dönen sonuçları ekranda görüntüleyeceğiz. Bunu da ekran kodunun içine yazalım. Üçüncü bir ekran yazdık. Bu ekranda da birinci ekrandaki SQL’i kullanan kodu kullanmamız gerekiyor. Aynı kodları bu ekran sınıfına kopyalamamız mümkün ancak SQL’de bir değişiklik yapılması gerektiğinde aynı SQL’i kullanan tüm sınıfların güncellenmesi gerekir. Ayrıca veri tabanı bağlantısı için tüm sınıflarda ayrı ayrı bağlantı açtık, driver’ı register ettik. Veri tabanı bağlantı ayarları değişirse ne olacak? Yine gidip tek tek bütün sınıfları güncellemek gerekecek.

Büyük projelerde değiştirilmesi gereken yer sayısı bir, iki değil birkaç bini buluyor. Bu değişiklikleri yaparken de bazı yerlerin gözden kaçması mümkün ayrıca çok fazla iş yükü oluyor. Ufacık bir değişiklik yapmak için binlerce kopyanın güncellenmesi pek de mantıklı değil. Bir de güncelledikten sonra baktınız hoşunuza gitmedi tekrar birkaç saat uğraşarak eski haline almamız gerekecek.

Bunun olmaması için bir tane sınıf oluşturuyoruz. Ortak olan tüm kodları buraya yazıyoruz. Mesela veri tabanı bağlantısı için bir sınıf yazıp connection her gerektiğinde bu sınıfı kullanabiliriz. Ya da SQL’ler için bir sınıf yazıp farklı ekranlardan bile olsa aynı SQL çağrılmak istendiğinde bu sınıf kullanılabilir. Böylece unutma şansımız olmuyor ve birden fazla yerde değişiklik yapmaya gerek kalmıyor.

İşte bu şekilde yazılan programlama mantığına çok katmanlı mimari adı veriliyor. Ekranlarımız, SQL’lerimizin olduğu sınıf, bağlantı sınıfı, loglama sınıfı, güvenlik sınıfı gibi birçok katman ortaya çıkıyor. Butona bastığımızda kod sırayla birbirini çağırıyor. Çok katmanlı mimariye uygun bütün projeler bu şekilde yazılıyor. Biz de yazdığımız uygulamanın ilerde gelişeceğine inanıyorsak mutlaka çok katmanlı mimariyi kullanıyoruz.

Katman sayısı yazılımcıya bağlıdır. Ancak en az görsel sayfalarımız, sayfalardan gelen istekleri ele alan kontrol sınıflarımız ve veri tabanı ile ilişkili olan sınıflarımız için 3 katman kullanmak tavsiye ediliyor. Dediğim gibi güvenlik için ayrı bir katman, loglama için ayrı bir katman, filtreler için ayrı bir katman, exception yönetimi için ayrı bir katman daha kullanılabilir. Bu tamamen programcının insiyatifindedir.


Görsel Katman : (View) Son kullanıcıya hizmet veren ekranlarımızın bulunduğu katmandır. Masaüstü uygulamaları için form sınıfları, web uygulamaları için HTML sayfaları, JS dosyaları, resimler vb. bu katmanda yer alır.

Kontrol Katmanı : (Controller) Kullanıcının isteklerini ilgili katmanlara ileten sınıfların bulunduğu katmandır. Örneğin web uygulamalarında yazılan servlet sınıfları bu katmanda yer alır.

Model Katmanı :
(Model) Katmanlar arası iletişimi sağlayan bean sınıfları ve diğer tüm işleri yaptığımız iş sınıfları bu katmanda yer alır. Uygulama içerisinde kullanılan Thread sınıfları, veri tabanına istek ve yönlendirme yapan, ayrıca diğer tüm işleri yapan iş sınıfları da yine bu katmandadır.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
  Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
radyo44.com.tr
Cevapla

Etiketler
controller, kodlapaylas.com, model, mvc, view, –

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
C# Listbox - Combobox Controller Sunay C# 0 24 Nisan 2010 01:53
ASP.NET Login Controller 2 Sunay ASP/ASP.NET 0 24 Nisan 2010 01:19
ASP.NET Login Controller 1 Sunay ASP/ASP.NET 0 24 Nisan 2010 01:19