web uygulama anaçatıları

21
Web Uygulama Ana¸catıları Web Uygulama Ana¸catıları Tahir Emre KALAYCI May 5, 2009

Upload: te-k

Post on 20-Jun-2015

1.444 views

Category:

Technology


3 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Web Uygulama Anacatıları

Tahir Emre KALAYCI

May 5, 2009

Page 2: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Gundem

1 Web Uygulama AnacatılarıNedir?Spring, Ruby On Rails, ZK, CakePHP, Flex, GWT, Dojo

2 Icerik Yonetim SistemleriNedir?Drupal, Joomla!, Plone, Moodle, WordPress

3 Django

Page 3: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Web Uygulama Anacatıları

Nedir?

Web Uygulama Anacatısı Nedir?

Web uygulamaları gelistirmek icin kullanılan yazılımcercevesidir

Dinamik web siteleri, web servisleri ve web uygulamalarıgelistirmek icin kullanılır

Web uygulaması gelistirme surecini kolaylastırmak vegelistiricilere araclar sunmak amacına sahiptir

Ornegin cogu veritabanı erisimini, sablonlama destegi veoturum yonetim destegi sunarlar.

Temel olarak kodun tekrar kullanımı (“code reuse”) pratiginidesteklerler

Page 4: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Web Uygulama Anacatıları

Nedir?

Anacatı Mimarileri

Model View Controller (MVC) tasarım deseni

Push-based: Cogu MVC cercevesi “push-based“ yontemikullanır. Bunlar islem yapmak icin eylemleri kullanır, dahasonra veriyi gorunum katmanına ”iterler”. (Struts, Django,Ruby On Rails, Spring MVC)

Pull-based: Bilesen temelli adı da alırlar. Bu cercevelergorunum katmanıyla baslarlar, bu katman verileri gerektikcebir cok denetleyiciden “cekerler”. Bu tip mimaride birgorunumun birden fazla denetleyicisi olabilir. (Struts2,Tapestry, JBoss Seam, Wicket)

Icerik Yonetim Sistemleri: Sunumun ilerisinde anlatacagımicerik yonetim sistemleri moduler yapıyı desteklemeleri vegenisletilebilmeleri nedeniyle farklı bir mimaride de olsa webuygulama cercevesi haline gelmislerdir.

Page 5: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Web Uygulama Anacatıları

Nedir?

Ozellikler

Guvenlik: Bazı cerceveler kimlik denetleme, dogrulama veyetkilendirme icin destek sunarlar. Sayfalara erisimi rol temellibir sekilde kısıtlarlar.

Veritabanı erisimi ve esleme: Cogu cerceve veritabanınaerismek icin veritabanı bagımsız uygulama gelistirme arayuzu(API) sunar. Gelistiricilerin veritabanı degistirdiginde koddegistirmeden, daha yuksek soyutlama ile calısmasına olanaksaglarlar.

URL esleme: Kullanıcı dostu URL adresi destegi sunarlar.

Web sablon sistemi: Dinamik web sayfaları genellikle bir kısmıstatik web sayfalarından olusan yapılar icerir (sol taraftadegismeyen menuler gibi), sablonlama sistemi yardımıyla busekilde tum sayfalarda ortak olan alanların tanımlanmasısaglanır.

Page 6: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Web Uygulama Anacatıları

Nedir?

Ozellikler

Onbellekleme: Bant genisligini daha verimli kullanmak icinweb belgelerinin onbelleklenmesi destegi sunarlar.

Ajax destegi: AJAX mimarisini desteklerler

Otomatik yapılandırma: Bazı cerceveler uygulamayapılandırması islemini otomatiklestirerek yapılması gereken isiazaltır.

Web servisleri destegi

Acık standart mimarisi: Genel kabul gormus acık standart veteknolojileri desteklerler

Page 7: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Web Uygulama Anacatıları

Spring, Ruby On Rails, ZK, CakePHP, Flex, GWT, Dojo

Bugune kadar gorduklerimiz : Struts, JavaServer Faces

Spring: Acık kaynak uygulama cercevesi, Java ve .NETplatformlarını destekliyor.

ZK Framework: Javascript bilgisi gerektirmeyen AJAXanacatısı, RIA, Acık kaynak, Standartlara dayanıyor,Genisletilebilir

CakePHP: Acık kaynak hızlı uygulama gelistirme PHPanacatısı. MVC’ye dayanıyor.

Flex: Adobe tarafından gelistirilen ve Actionscript ve Flashtabanlı bir RIA anacatısı.

GWT: Google tarafından gelistirilen AJAX web uygulamagelistirme arac kutusu

Dojo: Javascript tabanlı, AJAX ve DHTML arac kutusu

Page 8: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Icerik Yonetim Sistemleri

Nedir?

Icerik Yonetim Sistemi Nedir?

Icerik yonetim sistemi adından anlasılacagı gibi icerik yaratmave duzenlemeyi kolaylastıran sistemlerdir.

Icerik? (haber makaleleri, gunluk yazıları, kullanım klavuzları,rehberler, teknik belgeler, satıs rehberleri, pazarlamabrosurleri,. bilgisayar dosyaları, goruntu, ses dosyaları,elektronik belgeler,....)

Tamamen iceriklere dayalı web sitelerinin (haber siteleri,gunluk siteleri, ...) olusturulmasında kullanılır.

Katılımcılıgı destekler, kullanıcılar ve rolleri tanımlanabilir,isbirligine dayanan uretimleri ve ilgili is akısını destekler

Otomatik sablonlar, kolay duzenlenebilen icerik, olceklenebilirozellik kumeleri, web standartları guncelleme destegi, is akısıyonetimi, kullanıcı ve rol yonetimi, belge yonetimi, iceriksanallastırma

Page 9: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Icerik Yonetim Sistemleri

Drupal, Joomla!, Plone, Moodle, WordPress

Drupal, Joomla!, Plone, Moodle, WordPress

Bizi su an ilgilendiren Web icerik yonetim sistemleri: Genis,dinamik web materyalini yonetmek ve kontrol etmek icinkullanılır.

Drupal: PHP, Acık kaynak, moduler yapı, ozellestirilebilir, tumicerigi arama, tema sistemi, rol tabanlı izin sistemi, kayıt veraporlama, onbellekleme, optimizasyon

Joomla!: PHP, Acık kaynak, eklentiler, bilesenler,

Plone: Zope web sunucusu ustunde calısır (Python), GPLlisansı,

Moodle: PHP, Acık kaynak uzaktan egitim sistemi,

WordPress: PHP, Acık kaynak yayım (publishing) sistemi(gunluk, kitap, ...)

Page 10: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Django

Django

Python programlama diliyle hazırlanmıstır

Yeniden kullanılabilirlik, modulerlik, hızlı uygulama gelistirme,Kendini Tekrar Etme (“Don’t Repeat Yourself”) kavramlarınısonuna kadar kullanır

Ek olarak yonetim ekranı sunar (CRUD ozelligi olan)

Veritabanı gudumlu web sitelerinin yaratılmasında kullanılır

MVC tasarım desenine yakın bir yontemi kullanır(Model-Template-View)

Page 11: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Django

Ozellikler

Gelistirme ve sınama icin hafif web sunucusu

HTML form verileri ve veritabanı verilerine donusum icin formserilestirme ve dogrulama

Onbellekleme

Uluslararasılastırma

XML, JSON destegi

Sablon sistemi

Slogan: “The Web Framework for perfectionists withdeadlines”

Page 12: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Django

Icerdigi Uygulamalar

Genisletilebilir kimlik denetleme

Dinamik yonetim arayuzu

RSS ve Atom besleme aracları

Esnek yorum sistemi

Tek Django kurulumunda birden fazla site barındırma destegi

Google Sitemaps uretim aracları

Sablon kutuphaneleri

CBS (GIS) uygulamaları yaratmak icin destek

Page 13: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Django

MVT?

Model: Veritabanı soyutlaması icin kullanılan veri sınıflarınıbarındıran katman (Django ORM)

Gorunum (View): MVC’deki denetleyicinin gorevlerini yapankısım, kullanıcının ne gorecegini ayarlar. Fonksiyonlar.

Sablon (Template): Kullanıcıların gormesi gerekeni ayarlar(Django Template Engine)

Page 14: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Django

Python?

Nesne yonelimli

Yuksek seviyeli dinamik veri tipleri

Moduler ve etkilesimli

Girintilere dayalı, sade sozdizimi

Yorumlayıcı (Interpreter) kullanıyor

Istisna isleme, betik olarak kullanılabilme, cok sayıdakutuphane, ogrenim kolaylıgı, ozgur yazılım, yogun kullanım(Django, Zope, GIMP, Inkscape, Scribus, Paint Shop Pro,Ubuntu, Debian, Pardus, Google, NASA, CERN, YouTube,Industrial Light & Magic,....)

Page 15: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Django

Terimler

Proje: Django’nun bir ornegi, genellikle tek bir web sitesiyleiliskilendirilebilir (blog sitesi)

Uygulama: Django icerisinde yazılmıs ve web sitesinin birislevselligini gerceklestirilmis kod kumesi (Bir blog sitesindeblog ve yorumlar iki ayrı uygulama olarak ele alınabilir)

Uygulamalar tekrar kullanılabilir.

Page 16: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Django

Model ornegi

Page 17: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Django

Gorunum (View) ornegi

Page 18: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Django

Sablon ornegi

Page 19: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Django

Sonuc yerine: Web Uygulama Anacatılarının Avantajları,Dezavantajları

Avantajlar

Tekrarları onler: Programcı zamanı olarak daha verimlidirOtomatik olarak uretilmis kod daha guvenilir ve yapısal olarakdaha tekbicimliDRY yaklasımı destekleniyor

Dezavantajlar

Otomatik uretilmis kodun anlasılması zor olabilir, degistirmesizor olabilirSistemler genellikle buyuk ve yavas olabilir.Bkz: “Why I hate frameworks?”(http://discuss.joelonsoftware.com/default.asp?joel.3.219431.121)

Page 20: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

Django

Kaynaklar

Tony C Shan; Winnie W Hua, ”Taxonomy of Java WebApplication Frameworks,” e-Business Engineering, 2006.ICEBE ’06. IEEE International Conference on , vol., no.,pp.378-385, Oct. 2006Wikipedia “Web application framework” baslıgıWikipedia “Comparison of web application frameworks“ baslıgıWikipedia ”Web content management system“ baslıgıhttp://www.springsource.orghttp://www.rubyonrails.orghttp://www.zkoss.org/product/zk.dsphttp://cakephp.org/http://www.adobe.com/products/flex/http://www.drupal.orghttp://www.drupaldersleri.orghttp://www.joomla.org/

Page 21: Web Uygulama Anaçatıları

Web Uygulama Anacatıları

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)“ baslıgı

http://www.belgeler.org/uygulamalar/python-tutorial.html

http://docs.djangoproject.com/en/dev/