Your SlideShare is downloading. ×
0
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Web Uygulama Anaçatıları
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Web Uygulama Anaçatıları

1,406

Published on

Web uygulama anaçatıları üzerine sunucu yazılım teknolojileri için hazırladığım sunum.

Web uygulama anaçatıları üzerine sunucu yazılım teknolojileri için hazırladığım sunum.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,406
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Web Uygulama Ana¸atıları c Web Uygulama Ana¸atıları c Tahir Emre KALAYCI May 5, 2009
  • 2. Web Uygulama Ana¸atıları c G¨ndem u 1 Web Uygulama Ana¸atıları c Nedir? Spring, Ruby On Rails, ZK, CakePHP, Flex, GWT, Dojo 2 ˙cerik Y¨netim Sistemleri I¸ o Nedir? Drupal, Joomla!, Plone, Moodle, WordPress 3 Django
  • 3. Web Uygulama Ana¸atıları c Web Uygulama Ana¸atıları c Nedir? Web Uygulama Ana¸atısı Nedir? c Web uygulamaları geli¸tirmek i¸in kullanılan yazılım s c ¸er¸evesidir c c Dinamik web siteleri, web servisleri ve web uygulamaları geli¸tirmek i¸in kullanılır s c Web uygulaması geli¸tirme s¨recini kolayla¸tırmak ve s u s geli¸tiricilere ara¸lar sunmak amacına sahiptir s c ¨ gin ¸o˘u veritabanı eri¸imini, ¸ablonlama deste˘i ve Orne˘ c g s s g oturum y¨netim deste˘i sunarlar. o g Temel olarak kodun tekrar kullanımı (“code reuse”) prati˘ini g desteklerler
  • 4. Web Uygulama Ana¸atıları c Web Uygulama Ana¸atıları c Nedir? Ana¸atı Mimarileri c Model View Controller (MVC) tasarım deseni Push-based: Co˘u MVC ¸er¸evesi “push-based“ y¨ntemi ¸ g c c o kullanır. Bunlar i¸lem yapmak i¸in eylemleri kullanır, daha s c sonra veriyi g¨r¨n¨m katmanına ”iterler”. (Struts, Django, ou u Ruby On Rails, Spring MVC) Pull-based: Bile¸en temelli adı da alırlar. Bu ¸er¸eveler s c c g¨r¨n¨m katmanıyla ba¸larlar, bu katman verileri gerektik¸e ou u s c bir ¸ok denetleyiciden “¸ekerler”. Bu tip mimaride bir c c g¨r¨n¨m¨n birden fazla denetleyicisi olabilir. (Struts2, ou u u Tapestry, JBoss Seam, Wicket) ˙cerik Y¨netim Sistemleri: Sunumun ilerisinde anlataca˘ım I¸ o g i¸erik y¨netim sistemleri mod¨ler yapıyı desteklemeleri ve c o u geni¸letilebilmeleri nedeniyle farklı bir mimaride de olsa web s uygulama ¸er¸evesi haline gelmi¸lerdir. c c s
  • 5. Web Uygulama Ana¸atıları c Web Uygulama Ana¸atıları c Nedir? ¨ Ozellikler G¨venlik: Bazı ¸er¸eveler kimlik denetleme, do˘rulama ve u c c g yetkilendirme i¸in destek sunarlar. Sayfalara eri¸imi rol temelli c s bir ¸ekilde kısıtlarlar. s Veritabanı eri¸imi ve e¸leme: Co˘u ¸er¸eve veritabanına s s ¸ g c c eri¸mek i¸in veritabanı ba˘ımsız uygulama geli¸tirme aray¨z¨ s c g s u u (API) sunar. Geli¸tiricilerin veritabanı de˘i¸tirdi˘inde kod s gs g de˘i¸tirmeden, daha y¨ksek soyutlama ile ¸alı¸masına olanak gs u c s sa˘larlar. g URL e¸leme: Kullanıcı dostu URL adresi deste˘i sunarlar. s g Web ¸ablon sistemi: Dinamik web sayfaları genellikle bir kısmı s statik web sayfalarından olu¸an yapılar i¸erir (sol tarafta s c de˘i¸meyen men¨ler gibi), ¸ablonlama sistemi yardımıyla bu gs u s ¸ekilde t¨m sayfalarda ortak olan alanların tanımlanması s u sa˘lanır. g
  • 6. Web Uygulama Ana¸atıları c Web Uygulama Ana¸atıları c Nedir? ¨ Ozellikler ¨ Onbellekleme: Bant geni¸li˘ini daha verimli kullanmak i¸in s g c web belgelerinin ¨nbelleklenmesi deste˘i sunarlar. o g Ajax deste˘i: AJAX mimarisini desteklerler g Otomatik yapılandırma: Bazı ¸er¸eveler uygulama c c yapılandırması i¸lemini otomatikle¸tirerek yapılması gereken i¸i s s s azaltır. Web servisleri deste˘i g A¸ık standart mimarisi: Genel kabul g¨rm¨¸ a¸ık standart ve c o us c teknolojileri desteklerler
  • 7. Web Uygulama Ana¸atıları c Web Uygulama Ana¸atıları c Spring, Ruby On Rails, ZK, CakePHP, Flex, GWT, Dojo Bug¨ne kadar g¨rd¨klerimiz : Struts, JavaServer Faces u o u Spring: A¸ık kaynak uygulama ¸er¸evesi, Java ve .NET c c c platformlarını destekliyor. ZK Framework: Javascript bilgisi gerektirmeyen AJAX ana¸atısı, RIA, A¸ık kaynak, Standartlara dayanıyor, c c Geni¸letilebilir s CakePHP: A¸ık kaynak hızlı uygulama geli¸tirme PHP c s ana¸atısı. MVC’ye dayanıyor. c Flex: Adobe tarafından geli¸tirilen ve Actionscript ve Flash s tabanlı bir RIA ana¸atısı. c GWT: Google tarafından geli¸tirilen AJAX web uygulama s geli¸tirme ara¸ kutusu s c Dojo: Javascript tabanlı, AJAX ve DHTML ara¸ kutusu c
  • 8. Web Uygulama Ana¸atıları c ˙cerik Y¨netim Sistemleri I¸ o Nedir? ˙cerik Y¨netim Sistemi Nedir? I¸ o ˙cerik y¨netim sistemi adından anla¸ılaca˘ı gibi i¸erik yaratma I¸ o s g c ve d¨zenlemeyi kolayla¸tıran sistemlerdir. u s ˙cerik? (haber makaleleri, g¨nl¨k yazıları, kullanım klavuzları, I¸ u u rehberler, teknik belgeler, satı¸ rehberleri, pazarlama s bro¸urleri,. bilgisayar dosyaları, g¨r¨nt¨, ses dosyaları, s¨ ou u elektronik belgeler,....) Tamamen i¸eriklere dayalı web sitelerinin (haber siteleri, c g¨nl¨k siteleri, ...) olu¸turulmasında kullanılır. u u s Katılımcılı˘ı destekler, kullanıcılar ve rolleri tanımlanabilir, g i¸birli˘ine dayanan uretimleri ve ilgili i¸ akı¸ını destekler s g ¨ s s Otomatik ¸ablonlar, kolay d¨zenlenebilen i¸erik, ¨l¸eklenebilir s u c oc ¨zellik k¨meleri, web standartları g¨ncelleme deste˘i, i¸ akı¸ı o u u g s s y¨netimi, kullanıcı ve rol y¨netimi, belge y¨netimi, i¸erik o o o c sanalla¸tırma s
  • 9. Web Uygulama Ana¸atıları c ˙cerik Y¨netim Sistemleri I¸ o Drupal, Joomla!, Plone, Moodle, WordPress Drupal, Joomla!, Plone, Moodle, WordPress Bizi ¸u an ilgilendiren Web i¸erik y¨netim sistemleri: Geni¸, s c o s dinamik web materyalini y¨netmek ve kontrol etmek i¸in o c kullanılır. Drupal: PHP, A¸ık kaynak, mod¨ler yapı, ¨zelle¸tirilebilir, t¨m c u o s u i¸eri˘i arama, tema sistemi, rol tabanlı izin sistemi, kayıt ve c g raporlama, ¨nbellekleme, optimizasyon o Joomla!: PHP, A¸ık kaynak, eklentiler, bile¸enler, c s Plone: Zope web sunucusu ust¨nde ¸alı¸ır (Python), GPL ¨ u c s lisansı, Moodle: PHP, A¸ık kaynak uzaktan e˘itim sistemi, c g WordPress: PHP, A¸ık kaynak yayım (publishing) sistemi c (g¨nl¨k, kitap, ...) u u
  • 10. Web Uygulama Ana¸atıları c Django Django Python programlama diliyle hazırlanmı¸tır s Yeniden kullanılabilirlik, mod¨lerlik, hızlı uygulama geli¸tirme, u s Kendini Tekrar Etme (“Don’t Repeat Yourself”) kavramlarını sonuna kadar kullanır Ek olarak y¨netim ekranı sunar (CRUD ¨zelli˘i olan) o o g Veritabanı g¨d¨ml¨ web sitelerinin yaratılmasında kullanılır u u u MVC tasarım desenine yakın bir y¨ntemi kullanır o (Model-Template-View)
  • 11. Web Uygulama Ana¸atıları c Django ¨ Ozellikler Geli¸tirme ve sınama i¸in hafif web sunucusu s c HTML form verileri ve veritabanı verilerine d¨n¨¸um i¸in form o us¨ c serile¸tirme ve do˘rulama s g ¨ Onbellekleme Uluslararasıla¸tırma s XML, JSON deste˘i g Sablon sistemi ¸ Slogan: “The Web Framework for perfectionists with deadlines”
  • 12. Web Uygulama Ana¸atıları c Django ˙cerdi˘i Uygulamalar I¸ g Geni¸letilebilir kimlik denetleme s Dinamik y¨netim aray¨z¨ o u u RSS ve Atom besleme ara¸ları c Esnek yorum sistemi Tek Django kurulumunda birden fazla site barındırma deste˘i g Google Sitemaps uretim ara¸ları ¨ c Sablon k¨t¨phaneleri ¸ uu CBS (GIS) uygulamaları yaratmak i¸in destek c
  • 13. Web Uygulama Ana¸atıları c Django MVT? Model: Veritabanı soyutlaması i¸in kullanılan veri sınıflarını c barındıran katman (Django ORM) G¨r¨n¨m (View): MVC’deki denetleyicinin g¨revlerini yapan ou u o kısım, kullanıcının ne g¨rece˘ini ayarlar. Fonksiyonlar. o g Sablon (Template): Kullanıcıların g¨rmesi gerekeni ayarlar ¸ o (Django Template Engine)
  • 14. Web Uygulama Ana¸atıları c Django Python? Nesne y¨nelimli o Y¨ksek seviyeli dinamik veri tipleri u Mod¨ler ve etkile¸imli u s Girintilere dayalı, sade s¨zdizimi o Yorumlayıcı (Interpreter) kullanıyor ˙ Istisna i¸leme, betik olarak kullanılabilme, ¸ok sayıda s c k¨t¨phane, ¨˘renim kolaylı˘ı, ¨zg¨r yazılım, yo˘un kullanım uu og g o u g (Django, Zope, GIMP, Inkscape, Scribus, Paint Shop Pro, Ubuntu, Debian, Pardus, Google, NASA, CERN, YouTube, Industrial Light & Magic,....)
  • 15. Web Uygulama Ana¸atıları c Django Terimler Proje: Django’nun bir ¨rne˘i, genellikle tek bir web sitesiyle o g ili¸kilendirilebilir (blog sitesi) s Uygulama: Django i¸erisinde yazılmı¸ ve web sitesinin bir c s i¸levselli˘ini ger¸ekle¸tirilmi¸ kod k¨mesi (Bir blog sitesinde s g c s s u blog ve yorumlar iki ayrı uygulama olarak ele alınabilir) Uygulamalar tekrar kullanılabilir.
  • 16. Web Uygulama Ana¸atıları c Django Model ¨rne˘i o g
  • 17. Web Uygulama Ana¸atıları c Django G¨r¨n¨m (View) ¨rne˘i ou u o g
  • 18. Web Uygulama Ana¸atıları c Django Sablon ¨rne˘i ¸ o g
  • 19. Web Uygulama Ana¸atıları c Django Sonu¸ yerine: Web Uygulama Ana¸atılarının Avantajları, c c Dezavantajları Avantajlar Tekrarları ¨nler: Programcı zamanı olarak daha verimlidir o Otomatik olarak uretilmi¸ kod daha g¨venilir ve yapısal olarak ¨ s u daha tekbi¸imli c DRY yakla¸ımı destekleniyor s Dezavantajlar Otomatik uretilmi¸ kodun anla¸ılması zor olabilir, de˘i¸tirmesi ¨ s s gs zor olabilir Sistemler genellikle b¨y¨k ve yava¸ olabilir. u u s Bkz: “Why I hate frameworks?” (http://discuss.joelonsoftware.com/default.asp?joel.3.219431.121)
  • 20. Web Uygulama Ana¸atıları c Django Kaynaklar Tony C Shan; Winnie W Hua, ”Taxonomy of Java Web Application Frameworks,” e-Business Engineering, 2006. ICEBE ’06. IEEE International Conference on , vol., no., pp.378-385, Oct. 2006 Wikipedia “Web application framework” ba¸lı˘ı s g Wikipedia “Comparison of web application frameworks“ ba¸lı˘ı s g Wikipedia ”Web content management system“ ba¸lı˘ı s g http://www.springsource.org http://www.rubyonrails.org http://www.zkoss.org/product/zk.dsp http://cakephp.org/ http://www.adobe.com/products/flex/ http://www.drupal.org http://www.drupaldersleri.org http://www.joomla.org/
  • 21. Web Uygulama Ana¸atıları c Django Kaynaklar http://plone.org/ http://moodle.org/ http://wordpress.org/ http://www.djangoproject.com/ http://e-bergi.com/2008/Ocak/Django Wikipedia ”Python (programlama dili)“ ba¸lı˘ı s g http://www.belgeler.org/uygulamalar/python-tutorial.html http://docs.djangoproject.com/en/dev/

×