WTK290U-İNTERNET TABANLI PROGRAMLAMA
Ünite 1: İnternet Tabanlı Programlamanın Temelleri
Giriş
Programlamanın 1801 yılında delikli kartlar ile başladığı söylenebilir. İlk bilgisayar ENIAC, altı kişi tarafından programlanıyordu. İlk programlama dili olarak bilinen Assembly dili 1 veya 0 ile tanımlanan kodlama yapısından kelimelerle ifade edilen yapılara dönüşmüştür/ Assembly dilinden sonra kodlamayı veya programlamayı kolaylaştıran BASIC, FORTRAN, COBOL, Pascal, C/C++ ve Java gibi programlama dilleri geliştirilmiştir. 1990’lı yıllarda WWW ve HTML teknolojilerinin gelişmesiyle birlikte internet hızla yayılmıştır. İlk yüksek seviyeli programlama dili, 1942 ve 1945 yılları arasında Konrad Zuse tarafından oluşturulan Plankalkül’dü. Ticari olarak kullanılabilen ilk dil ise IBM’de, 1956’da, John Backus tarafından yönetilen bir ekip tarafından geliştirilen FORTRAN (FORmula TRANslation) idi. İnternet tabanlı programlamanın ilk yıllarında statik Web sayfaları geliştirmeye olanak sağlayan HTML bulunmakta iken; takip eden yıllarda dinamik Web sayfaları geliştirebilmek amacıyla PHP ve ASP gibi internet tabanlı programlama dilleri geliştirilmiştir.
İnternet Tabanlı Programlama Nedir?
Programlama, üzerinde elektronik devreleri bulunan cihazların belirli görevleri yerine getirmesi için yazılan, algoritmik yapıda olan ve bir programlama dili ile yazılmış olan komutlar dizisidir. Delikli kartlar Programlamanın ilk örneğidir. Dokuma tezgâhlarında değişik şekillerde dokuma yapılabilmesi için geliştirilmiş kartlardır.
İnternet tabanlı programlama dili Web sitelerinin geliştirilmesi ve Web tarayıcılarda sorunsuz bir şekilde görüntülenebilmesi için geliştirilen programlama yapısıdır. Web sayfalarının gördüğümüz ekran görüntüsü arka planda işleyen, görmediğimiz bir kodlama altyapısına sahiptir. Bu arka planda işleyen yapının Web tarayıcılarında görüntülenmesini sağlayacak şekilde düzenlenmesi için kodlamalarının yapılması internet tabanlı programlama dilleri ile gerçekleştirilmektedir.
İnternet Tabanlı Programlamanın Tarihsel ve Yapısal Gelişimi
İnternetin bilgisayarların kendi aralarında haberleşmelerini sağlamak amacıyla bilgisayar ağlarının kurulması gereksinimine dayandığı görülmektedir. ABD’de 1960’ların başında Savunma Bakanlığı tarafından çalışmalara başlanan ve ARPANET olarak ortaya çıkan yapı İnternet Protokolü (IP) kullanan ilk yapıdır. Bilgisayarlar arasında kurulan bu yapıya 1972 yılında e-Posta hizmeti eklenmiş ve takip eden 1973 yılında FTP (Dosya Transfer Protokolü) hizmeti eklenmiştir. Savunma alanında kullanılmak üzere geliştirilen internet 1990’lardan itibaren yaygınlaşmasını devam ettirmiştir. World Wide Web (WWW) ve Hyper Text Markup Language (HTML) hizmetlerinin internet hizmeti olarak kullanılmaya başlamasıyla internetin yaygınlaşması hızlanmış ve 1994- 1995 yıllarında 60 milyon kullanıcıya ulaşmıştır.
İlk internet tabanlı dil olarak karşımıza HTML dili çıkmaktadır. HTML, 1991 yılında Tim Berners-Lee tarafından geliştirilen bir betik dili olup ilk amacı CERN’de internet tabanlı bilgi paylaşımı yapmaktır. HTML ile hazırlanan içerikler .html ya da .htm uzantılı olmaktadır. HTML dili ile hazırlanan içerikleri Web tarayıcıları ile görüntülemek mümkündür. HTML, bir programlama dili değildir. Web sayfalarının görsel boyutta düzenlenmesini sağlayan işaretleme dilidir. HTML dilinin versiyonları kitabınız sayfa 6’da yer alan Tablo 1.1’de sunulmuştur.
HTML dilinden sonra 1995 yılında Rasmus Lerdorf tarafından Personal Home Page (PHP) dilinin geliştirildiği görülmektedir. Ücretsiz ve nesne yönelimli olarak geliştirilen PHP dili, çoğunlukla hareketli ve etkileşimli Web sayfaları oluşturmak için kullanılan, sunucu taraflı, çok geniş kullanımlı, genel amaçlı, HTML içerisine gömülebilen bir betik programlama dilidir. PHP dili açık kaynak kodlu bir yapıya sahip olduğu için Rasmus Lerdorf’tan sonra PHP dilinin geliştirilmesini PHP topluluğu gerçekleştirmektedir. Dinamik Web sayfaları geliştirmeye olanak sağlayan PHP dilinin kodları PHP işleme modülü bulunan Web sunucuları tarafından yorumlanarak Web tarayıcılarında görüntülenebilir.
PHP dili ile oluşturulan kodlar <?php…?> arasına yazılmaktadır. Bu kod HTML sayfaların içine gömülebileceği gibi .php uzantılı sayfalarla da kodlar yazılabilir. PHP dili ile yazılmış kodlardan oluşan içeriğin sorunsuz bir şekilde çalışabilmesi için siteyi çalıştıran Web sunucularının Linux işletim sisteminde olması gerekmektedir. Bunun yanı sıra veritabanı olarak MySQL veritabanı önerilmektedir.
En yaygın kullanılan internet tabanlı programlama dillerinden biri de JavaScript dilidir. JavaScript, Web tarayıcılarında kullanılmakta olan dinamik bir programlama dilidir. JavaScript, C dilinin Web ortamına uyarlanmış halidir. JavaScript prototip-tabanlı, dinamik türlere ve birinci-sınıf fonksiyonlara sahip bir betik dilidir. Hazırlanan Web sayfalarında yapılması gereken kontroller JavaScript ile yapılabilmektedir. JavaScript, HTML kodlarının içine <script> … </script> etiketleri ile yazılır. Bu şekilde HTML kodlarının içine JavaScript kodları yazılabileceği gibi .js uzantılı dosyalar içerisine Javascript kodları yazılarak da sayfalar oluşturulabilir. JavaScript kodlarının düzgün bir şekilde Web tarayıcılarında görüntülenebilmesi için Web tarayıcılarının JavaScript desteğine sahip olması gerekmektedir.
PHP dilinin geliştirilmesini takip eden 1996 yılında Microsoft firması tarafından dinamik Web sayfaları oluşturmak amacıyla sunucu taraflı çalışabilen Active Server Pages (ASP) dili geliştirilmiştir. ASP dilinin kodları <%...%> arasına yazılmaktadır. ASP dili, PHP dilinin aksine açık kaynak kodlu bir yapıda değildir. Dil ile ilgili geliştirmeler Microsoft firması tarafından gerçekleştirilmektedir. ASP dilinde hazırlanan kodlar PHP dilinde olduğu gibi HTML sayfalarının içine gömülebileceği gibi .asp sayfaları şeklinde yeni sayfalar
içerisinde de yer alabilir. ASP dilinin devamı olarak Microsoft firması tarafından ASP.NET geliştirilmiştir. ASP.NET, dinamik Web sayfaları, Web uygulamaları ve XML tabanlı Web hizmetleri geliştirmeye olanak sunmaktadır. ASP.NET ile oluşturulan Web sayfalarının uzantıları .aspx olarak oluşmaktadır. Kitabınız sayfa 8’de yer alan Tablo1.2’de ASP.NET’in versiyonları verilmiştir.
ASP.NET, interaktif Web siteleri oluşturabilmek amacıyla farklı dillerin ortak dil çalışma zamanı (Common Language Runtime) altyapısına uygun olarak kullanılabilmesini sağlayan bir teknolojidir. Bu dillerin yanı sıra Python, Django, Ruby ve Ruby on Rails gibi programlama dilleri de internet tabanlı programlama dilleri olarak geçmektedir.
İnternet Tabanlı Programlama Temel Kavramları
Web Tarayıcı
Geliştirilen Web sitelerinin sunuculara yüklenmesi sonucunda o Web sitelerini ziyaret etmek için bilgisayarlarda aracı olan programın yani Web tarayıcının olması gerekmektedir. İnternet Explorer, Google Chrome, Mozilla Firefox, Apple Safari, Opera ve Yandex Browser en çok tercih edilen Web tarayıcılarıdır. Mobil cihazlar için Opera Mini, Opera Mobile, Apple Safari, Google Chrome ve Microsoft Edge Web tarayıcıları kullanılmaktadır.
WWW
WWW, bilgisayarların birbiriyle iletişim kurabildiği, görüntü, ses ve veri paylaşımının yapılabildiği tüm dünyaya yayılmış büyük bir ağdır. Web sayfası ise WWW üzerinde görüntülenen Web sitelerinin her bir dosyasını temsil etmektedir. URL (Uniform Resource Locator), Web sitelerinin sahip oldukları adreslerin genel adıdır.
Hosting ve Domain
Sunucularda kullanıcılar için ayrılan bölümlere hosting denilmektedir. Web sitelerinin içerikleri hostingler vasıtası ile sunucularda o Web siteleri için ayrılan bölümlerde saklanır. Web sitesi için ayrılan hosting alanlarına FileZilla, CuteFTP, WinSCP, Easy FTP ve SmartFTP gibi yardımcı programlarla erişilebilir. Her Web sitesinin sayılardan oluşan belli bir IP’si vardır ve her sitenin IP’sini akılda tutmak zor olacağından Web sitelerinin adreslerinin kolay hatırlanabilmesi için alan adı (domain) geliştirilmiştir. Domain uzantıları her ülke için özelleştirilmektedir. Örneğin: “.com.tr”,“.com.de”
Web sitelerinin kendine özgü alan adları vardır. Kullanım amaçlarına göre bazı domain uzantılarını kitabınız sayfa 9’da bulabilirsiniz.
Statik ve Dinamik Web Sitesi
Statik Web siteleri, daha çok uzman kişiler tarafından hazırlanan ve düzenlemelerinin de yine uzman kişiler tarafından yapılabildiği Web siteleridir. Statik Web sayfaları, daha çok bilgi verme amaçlı hazırlanan ve sık sık düzenleme gerektirmeyen sitelerdir. Üzerinde değişiklik yapılan statik Web sayfalarının sunucuya tekrar yüklenmesi
gerekmektedir. Statik Web sitesini oluştururken HTML, XHTML, DHTML ve CSS dilleri kullanılabilir.
Dinamik Web siteleri ise verilerinin veri tabanlarında tutulduğu ve istenildiğinde bu bilgilerin uzman olmayan kişiler tarafından da kolaylıkla değiştirilebildiği yapılardaki sitelerdir. Dinamik Web siteleri PHP veya ASP gibi internet tabanlı programlama dilleriyle geliştirilmektedir. Dinamik Web sitesi oluştururken ASP.Net ASP, PHP, JavaScript ve CFM gibi diller kullanılabilir.
HTML ve HTML Etiketleri
HTML: HyperText Markup Language yani Hareketli- Metin İşaretleme Dili. Web sayfalarının programlama mantığına dayalı olmayan şekilde oluşturulmasını sağlayan metin işaretleme dilidir. HTML etiketlerinden bazıları ve kullanım yerleri kitabınız sayfa 10’da listelenmiştir. Ek olarak HTML etkiletlerinin kullanım ve görüntüleme örneğini kitabınız sayfa 10 ve 11’de bulabilirsiniz.
CSS (Cascading Style Sheets)
CSS bir programlama dili olmayıp HTML’e ek olarak metin ve şekilsel düzenlemelere olanak sağlayan bir Web teknolojisidir. Yerel CSS, genel CSS ve harici CSS olmak üzere üç türü bulunmaktadır. Yerel CSS, sayfada tanımlandığı yerde geçerliyken; genel CSS sayfanın bütünü için geçerlidir. Harici CSS ise Web sayfalarının içerisinde bulunmayıp .css uzantılı harici dosyalar içerisinde kodların yazılarak oluşturulduğu ve Web sayfalarına bağlantılarının yapılması yoluyla çalıştırıldığı CSS türüdür. Yerel CSS kodları <body> </body> arasına yazılırken genel CSS kodları <head> </head> arasına yazılır. Harici CSS ise <head> </head> arasına harici CSS’in bağlantısının verilmesi yoluyla kullanılabilir.
Veri Tabanı
Veritabanı (Database), birbirleriyle ilişkili verilerin depolandığı alanlardır. SQL, Pl/SQL ve OQL gibi veritabanı dilleri bulunmaktadır. Bu dillerle oluşturulmuş MySQL, MsSQL, PostgreSQL, Oracle, Sybase, Berkeley, Firebird, Interbase, Informix ve MsAccess gibi veritabanı sistemleri mevcuttur.
Protokol
Temel olarak istemci ve sunucu taraflı olarak iki tarafın sözleşmeye uygun davranması anlamına gelir. Kullanılan protokollerden bazıları şunlardır:
• TCP/IP (Transmission Control Protocol/Internet Protocol): Yapı olarak iki katmanlı bir haberleşme protokolüdür (Üst Katman TCP (Transmission Control Protocol) Alt Katman IP (Internet Protocol)) • HTTP (Hyper-Text Transfer Protocol, Hiper- Metin Transfer Protokolü): www ile birlikte geliştirilen bu protokol, bir kaynaktan dağıtılan ve ortak kullanıma açık olan hiperortam bilgi sistemleri için uygulama seviyesinde bir iletişim protokolüdür. Kısaca, Web sayfalarının HTML formatında Web tarayıcısına aktarılmasını sağlar.
• FTP (File Transfer Protocol, Dosya Transfer Protokolü): İnternete bağlı olan bir bilgisayardan başka bir bilgisayara veri transferi gerçekleştirmek için kullanılan protokoldür. FTP için kullanılan port numarası 21’dir. • SMTP (Simple Mail Transfer Protocol, Basit Posta Aktarım Protokolü): İnternet üzerinden bir kişinin başka bir kişi ile e-Posta gönderip alabilir.
Proxy
Vekil sunucu olarak bilinen Proxy, internete erişim sırasında kullanılan ara sunucudur. Proxy ayarları Web tarayıcıları üzerinde gerçekleştirilmektedir.
İnternet Tabanlı Programlama Dilleri
İnternet tabanlı programlama dilleri betik diller, istemci sunucu taraflı programlama ve nesne tabanlı programlama olarak üç kategoride ele alınmaktadır.
Betik Diller
Betik dili, Web sayfalarında dinamik içerik oluşturmak ve kullanıcılarla iletişim kurmak amacıyla çalışan dildir. HTML etiketleri arasında tanımlanarak kullanılabilmektedir. JavaScript, Lua, Perl, PHP ve Python programlama dilleri betik dil ailesindedir.
Javascript,
JavaScript dili, istemci tarafı betikler ile tarayıcı ve kullanıcı arasında etkileşim kurulması, tarayıcının kontrol edilmesi, asenkron bir şekilde sunucu ile iletişime geçilmesi ve Web sayfası içeriğinin değiştirilmesi gibi işlevleri vardır. JavaScript ağırlıklı olarak istemci taraflı çalıştığı için Web sunucularını yormaz. JavaScript kodları, HTML kodları arasına <script> </script> etiketleri ile tanımlanarak yazılmaktadır. Çeşitli Javascript kütüphaneleri bulunmaktadır.
Lua
Lua, JavaScript gibi C dilinden üretilmiş bir script dilidir. Oyun geliştirilmesinde daha çok tercih edilmektedir.
Perl
Practical Extraction and Report Language (Pratik Çıkarım ve Raporlama Dili, Perl), Unix işletim sistemi için yorumlayıcı bir programlama dilidir. Sunucu tarafında çalışır. Dosya uzantısı “pl” dir. Perl programlarının çalıştırılabilmesi için bir Web sunucunun olması gerekir. Unix veya Linux ortamlarında çalışan Apache sunucu veya buna benzeyen programlar kullanılabilir. Açık kaynak kodlu olarak sunulan Perl programlama dili çoğu işletim sistemlerinde çalışmaktadır.
PHP
PHP dili sunucu taraflı çalışan ve HTML kodlarının içine gömülebilen betik ve programlama dilidir. PHP dilinde hazırlanan Web sayfaları için MySQL veritabanı tercih edilmektedir. Web ortamında yayınlanması için Web sunucuların Linux işletim sistemine sahip olması gerekmektedir
Python
Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve yüksek seviye etkileşimli bir programlama dilidir. Python, derlenmeye gerek duymadan çalışabilen bir yapıya sahiptir. Unix, Linux, Mac, Windows, Amiga, Symbian gibi platformlarda çalışabilmektedir.
İstemci-Sunucu Taraflı Programlama
Web tarayıcısında adres çubuğuna ziyaret edilecek Web sayfasının adresi veya IP adresi yazılarak sunucudan bilgi istenir. Sunucudan bilgi istenmesi işlemini istemci gerçekleştirir. İstemciye cevap veren ve istenilen içeriği istemciye ulaştıran yapı sunucu olarak tanımlanmaktadır.
İstemciden sunucuya gönderilen istek sayfası HTML sayfasıysa sunucu, Web tarayıcılarının HTML dilini yorumlayarak ekrana görüntüsünü yansıtabildiği için istemciden gelen sayfayı aynen geri gönderir. HTML belgesinin içinde CSS veya JavaScript kodlarının olması Web tarayıcısının görüntülemesini engellememektedir. Sunucudan istemciye aynen geri gönderilen istemci taraflı çalışabilen kodların güvenlik sınırlılığı vardır. Görüntülenen Web sayfasında fare ile sağ tıklayıp “Sayfa kaynağını görüntüle/göster” seçilirse ya da Web tarayıcıda klavyeden Ctrl+U tuş takımına basılırsa Web sitesini oluşturan bütün kodları görmek mümkün olacaktır.
İstemciden sunucuya, sunucu taraflı çalışan Asp.Net, Php, Ruby ve Jsp gibi bir Web sitesi isteği gönderilmişse sunucu bu siteyi kendi yorumlayarak istemciye HTML formatında gönderecektir. Yorumlama işlemini sunucu kendi özelliğine göre yapabilmektedir. Sunucu taraflı hazırlanan Web sayfasında kodlar sunucuda yorumlandıktan sonra istemciye döndüğü için sayfa kaynağı görüntülense dahi Asp.Net, Php, Ruby ve Jsp ile yazılmış kodlar görüntülenmeyecektir.
Sunucuların (Server) özellikleri, oluşturulan Web sayfalarının sağlıklı bir şekilde görüntülenebilmesi için önemlidir. Sunucu, bilgisayar ağlarında, diğer ağ bileşenlerinin (kullanıcıların) erişebileceği, kullanımına ve/veya paylaşımına açık kaynakları barındıran bilgisayar birimidir. Sunucu türleri olarak Web sunucusu (Web Server), dosya sunucusu (File Server), Veritabanı sunucusu (Database Server), e-Posta sunucusu (Mail Server) ve vekil sunucusu (Proxy Server) sayılabilir. Web sunucuları, Web sitelerinin barındırılması için kullanılan alanlardır. Web sunucuları, Linux veya Windows işletim sistemlerine sahip Web sunucuları olarak ikiye ayrılmaktadır. Linux Web sunucuları, PHP dilinde hazırlanan Web sayfalarının görüntülenmesini sağlarken; Windows Web sunucuları, ASP dilinde hazırlanan Web sayfalarının görüntülenmesini sağlamaktadır.
Web sitesi geliştirirken yapılan her değişikliği sunucuya yüklemeden önce kontrol etmek amacıyla bazı durumlarda yerel sunucular (LocalHost) tercih edilmektedir. Bu şekilde yapılan değişikliklerde hata varsa öncelikle tespiti yapılır ve hata giderildikten sonra sunucuya yüklenerek Web sitesi yayınlanabilir. ASP ile geliştirilen Web sitelerinin yerel
sunucuda kontrolü için bilgisayar(lar)ın işletim sisteminin Windows olması ve Internet Information Services (IIS) hizmetlerinin açık olması gerekmektedir. IIS, Windows işletim sisteminin yeni sürümlerinde yüklü olarak gelirken eski sürümlerde yüklü olmadığından dolayı eklenti olarak yüklenmesi gerekmektedir. PHP dilinde geliştirilen Web sitelerinin yerel sunucularda kontrol edilmesi için Xammp, Wamp, Appserv gibi yerel sunucular tercih edilebilir. PHP dilinde hazırlanan Web sayfalarının kontrolü için bu programların bilgisayara kurulması gerekmektedir. PHP ve ASP gibi internet tabanlı programlama dilleriyle hazırlanmış Web siteleri sunucuda yorumlanır ve istemciye HTML sayfası gibi gönderilir.
Nesne Tabanlı Programlama
Nesne tabanlı programlama kapsülleme/paketleme, kalıtım ve çok biçimlilik olmak üzere üç prensibe sahiptir.
1960’lı yıllarda ortaya çıkan nesne tabanlı programlama (Object Oriented Programming), gerçek dünyadaki nesnelerin modellenmesi ve bu modele göre kodlanması yoluyla oluşturulan programlama türüdür.
Nesne tabanlı programlamada geliştirilecek olan yazılımda gereksinimler, nesneler ve nesneler arasındaki ilişkilerle karşılanmaya çalışılır. Nesne tabanlı programlamada nesneler, özellikleriyle (Properties), işlevleriyle (Methods) ve olaylarıyla (Events) tanımlanır. Nesne tabanlı programlama dillerine örnek olarak ABAP/4, C#, C++, Eiffel, Java, Object Pascal, Objective-C, PHP, Python, REALbasic, Ruby, Simula, Smalltalk ve Visual Basic .NET’i verilebilir.
Nesne tabanlı programlama üç prensibe sahiptir. Bunlar;
• Kapsülleme/Paketleme (Encapsulation): Hazırlanan programda kullanıcıyla ilgisi olmayan kodlama kısmının gizlenmesi kapsülleme olarak geçmektedir. Kullanıcı, etkileşim kurduğu aracın istediği sonucu vermesini bekler, aracın nasıl çalıştığıyla ilgilenmez. • Kalıtım (Inheritance): Programlama açısından bakıldığında oluşturulan bir sınıftan yeni sınıf üretmektir. Bu sınıf, eski sınıfın özelliklerine sahiptir. • Çok Biçimlilik (Polymorphism): Belli bir işlemin (metodun), farklı nesnelerde veya farklı ortamlarda farklı sonuçlar vermesidir.
Dinamik Web
Dinamik Web siteleri, uzmanlık bilgisi gereksinimi olmadan Web sitelerinin içeriklerin güncellenebilmesine dayalı olan yapılardır. Dinamik Web sitelerinin güncellemelerinin kolay bir şekilde yapılabilmesi için kullanıcı panelleri geliştirilmektedir. Bu amaçla geliştirilen panellerde çeşitli mimariler kullanılmaktadır.
Model View Controller (MVC)
Trygve Reenskaug tarafından 1979 yılında yayınlanan Model-View-Controller (MVC) yazılım mühendisliği alanıyla ilgili bir kavramdır. Models (veriler), views (kullanıcı arayüzü) ve controller (denetleyici) terimleri bir
araya getirilerek oluşturulan yapıdır. MVC, Bilgisayarlarda kullanıcı arayüzü uygulaması için tasarlanan model yazılımıdır.
• Model (Veriler): Model, çalışmada kullanılan nesnelerin oluşturulduğu kısımdır. Modeller arasında birebir haberleşme olmalıdır. Kullanıcıdan controller aracılığıyla gelen verileri işler. Models, verileri, uygulamanın mantığını ve kurallarını yönetir. Models, controller’dan gelen komutlara göre aldığı verileri depolar. • Controller (Denetleyici): Kullanıcı ile sistem arasındaki bağı kurar. Girdi görevini üstlenerek ekranda uygun yere ilgili arayüzün ayarlanması için kullanıcılara kolaylık sağlar. Kullanıcıdan gelen girdileri alır ve model veya görünüm için komutlara dönüştürür. Controller ayrıca model ve view arasındaki veri akışını da kontrol eder. • View (Kullanıcı Arayüzü): Kullanıcıların gördüğü çıktıdır. Controller ile gelen ve models’ta işleme tabi tutulan verilerin bir çıktı olarak sunulmasıdır. View’da, models’ta meydana gelen değişimlere bağlı olarak kullanıcılara yeni çıktılar üretilir.
Ruby on Rails, ASP.NET MVC, AngularJS, EmberJS, JavaScriptMVC ve Backbone MVC bileşenlerine izin veren yapılardır. MVC’lerin üstünlükleri arasında proje geliştirme süresini kısaltması, yeniden kullanılabilirlik ve performans sayılabilir.
Model Template View (MTV)
Model Template View (MTV), Model Controller View yapısına benzemektedir. MTV’de View yerine Template tercih edilirken; Controller yerine View tercih edilmiştir. Sayfa 18’de bulunan Resim 1.11 MTV’nin çalışma yapısını göstermektedir.
• Model: Uygulamanın veriye erişim katmanıdır. Veriye nasıl erişileceği, veriler arasındaki ilişkiler gibi veriyle alakalı her şey bu kısımda yer alır. • Template: Uygulamanın sunum katmanıdır. Bu katman, Web sayfasında veya diğer tür dokümanlarda verilerin nasıl gösterilmesi gerektiği gibi sunum kısmıyla ilgili kararları içerir. • View: Uygulamanın iş mantığı kısmıdır. Bu katman, uygun şablon ve modellere erişimle ilgili mantıksal kısmı içerir. MVC mimari deseninde, denetleyiciye (controller) denk gelmektedir. Model kısmını uygulamanın iskeleti, View kısmını da beyni olarak düşünülebilir.
MTV mimari desenini kullanan, yüksek seviyeli ve açık kaynaklı yapı olarak Django yapısı karşımıza çıkmaktadır. Instagram, Mozilla, Pinterest ve DisqUS gibi yapılar Django yapısı ile geliştirilmiştir.