MVC (Model View Controller, Model Bakış Kontrolcü)
Yazan : Şadi Evren ŞEKER
Yazılım mühendisliğinde kullanılan bir mimari yaklaşımdır. Basitçe yazılımın tasarımı ve geliştirilmesi aşamalarında etkili olan bir bakış açısını yansıtır.
Bu bakış açısına göre kullanıcı ara yüzü (user interface) ile iş mantığı (business logic) birbirinden ayrı olmalıdır. Yani kullanıcıların önündeki ekranların tasarlanması ve geliştirilmesi sırasında kullanıcı gözüyle analiz yapılmalı ve bu analize göre kullanıcıya en kullanışlı (user friendly) ekran tasarımı yapılarak geliştirilmelidir. Arka tarafta ise iş mantığı (business logic) gözetilmeli ve kullanıcı ara yüzlerinden bu mantığa bağlantı kurulmalıdır.
MVC yaklaşımı 3 parçadan oluşur bu parçalar isminde de geçen :
- Model (Model)
- View (Bakış)
- Conroller (Kontrolcü)
parçalarıdır.
Bu parçalardan model, bilgiyi (information) veya veriyi (data) göstermek için kullanılır. View (Bakış) ise kullanıcı ara yüzünü ve kullanıcının sistem ile olan iletişimini ele alır. Controller (Kontrolcü) ise sistemin veri akışını ve bu verinin model ile olan bağlantısını kontrol etmek amacıyla kullanılır.

Yukarıdaki şekilde bu parçalar arasındaki bağlantı görülmektedir. Model parçasında modellenen veriye view(Bakıştan) doğrudan erişim bulunurken kontrolcü parçası iki parçaya da erişerek kontrolü sağlamaktadır.
MVC yaklaşımını gerçek hayattan bir örnek ile anlatmak gerekirse. Örneğin bir web sayfasının geliştirilemsi sırasında Bakış katmanı genelde HTML dilinde üretilir. HTML dilindeki bu sayfaları üreten sunucu tarafında bir kodlama (örneğin PHP, JSP veya ASP gibi) bir katman bulunur ki bu katmana kontrolcü (controller) ismi verilir. Son olarak verinin tutulduğu ve modellendiği bir katman da bulunur ki bu katmanada Model ismi verilir. Dolayısıyla MVC yaklaşımına göre bazı teknolojilerin katmanlandırılması aşağıdaki şekilde olabilir:

Yukarıdaki katmanlar birer örnek olarak düşünülüp farklı teknolojilerinde burada kullanılabileceği unutulmamalıdır.
Günümüzde .NET J2EE gibi ortamları MVC mimarisine uygun geliştirme ortamları olarak görmek mümkündür. Ayrıca bu ortamlarda birden fazla MVC alternatifi çerçeve (Framework) de bulunmaktadır. Örneğin J2EE ortamı için JSF (Java Server Faces) , Structs, JSP gibi alternatifler sayılabilir.
« JSF (Java Server Faces) | Meşguliyet (Utilization, Kullanım) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'MVC (Model View Controller, Model Bakış Kontrolcü)' isimli yazı 16 Apr 2009 tarihinde, saat: 13:06 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 3510 defa okunmuştur.
Benzer yazıları JAVA, Web Teknolojileri, Yazılım Mühendisliği (Software Engineering) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Abdurrahman ulusoy: merhaba hocam. gelişigüzel...
- Oguz Okutan: Merhaba hocam.. Fonksiyonlarda degere göre...
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
- Evren Kocaturk: ve bunu matlab üzerinde, gerekli...
- Evren Kocaturk: teşekkürler, işime yarayacak gibi,...
Yakın Yazılar
MVC (Model View Controller, Model Bakış Kontrolcü)
UML (Unified Modeling Language, Ortak Modelleme Dili)
Tekrarlı ve Arttırımlı Geliştirme (Iterative and Incremental Development)
Malumat Çıkarımı (Knowledge Retrieval)
Şelale Modeli ( Waterfall Model )
ERD ( Unsur İlişki Çizimi, Entity Relationship Diagram )
Coloumn Major Order (Sütün bazlı sıralama)
Row Major Order (Satır bazlı sıralama)
Malümat İfadesi (Knowledge Representation)
Dinamik Markof Kodlaması ile Sıkıştırma (Data Compression Using Dynamic Markov Coding)
Terminoloji Çıkarımı (Terminology Extraction)
RDF (Resource Description Framework, Kaynak Tanım Çerçevesi)
Arka Yüz Algılama (Back Face Detection)
Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
Bağlantılar