Web Uygulama Anaçatıları. Tahir Emre KALAYCI. May 5, 2009



Benzer belgeler
Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

Java EE 5 Teknolojileri Jboss Seam

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri

Web Uygulamaları Mimarileri ve Güvenliği

Sunum Planı. Django Nedir? Django projesi oluşturmak Basit bir blog uygulaması. Şablon Kullanımı Diğer özellikleri

Üst Düzey Programlama

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Metin Editörleri YRD. DOÇ. DR. ENGİN CEMAL MENGÜÇ. ALINTI:

ÖZGÜR YAZILIMLAR İLE J2EE

Pardus. A. Murat Eren, 25 Mart Pardus Geliştiricisi. Pardus Yenilikleri Sık Sorulan Sorular

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

Pardus. S.Çağlar Onur, 21 Aralık Pardus Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği

KURUMSAL PORTAL TASARIMI

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

T.C. MİLLÎ EĞİTİM BAKANLIĞI Talim ve Terbiye Kurulu Başkanlığı

Zope Uygulama Sunucusu

Büyük Kurumlarda Özgür Yazılım Kullanımına Giriş

Özgür Yazılım, İş ve Kariyer Modelleri. Mahir B. Aşut EkoPC Kurucu Ortağı ve Yöneticisi, LKD Üyesi

Sunucu Taraflı JavaScript ile Gerçek Zamanlı Web Uygulamaları Geliştirme

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

Programlama Dilleri sıralaması Programlama Dilleri sıralaması 2016

LKD Kendi İlacını Kullanıyor

Ipv6 Destekli Özgür Video Konferans Yazılımı: Fi6en

FINDIK Herkese Açık Filtre

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

Eğitimde Yeni Teknolojiler

MyFaces Özgür JSF Uyarlaması. Bora Güngören Portakal Teknoloji

JBoss Seam Next Generation Integration Framework

Client Server Database

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

WordPress ile Web Sayfası Tasarımı

Eğitimde Yeni Teknolojiler

Nasıl Pardus Geliştiricisi Olunur?

Tugay İLTUŞ. Tugay İLTUŞ. drupal.gen.tr & iltus.info iletişim : tugay@iltus.info

GNU/Linux ve Özgür Yazılım. Mahir B. Aşut EkoPC Kurucu Ortağı ve Yöneticisi, LKD Üyesi

DIGITAL MARKET GRUBU PROJE PLANI

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

JavaServer Faces (JSF) Sunucu Yazılım Teknolojileri 2008

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

PHP 1. Hafta 2.Sunum

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü

1 İÇERİK YÖNETİM SİSTEMLERİ VE JOOMLA 1. İçerik Yönetim Sistemi (CMS) Nedir? 1. Neden Joomla? 2. Joomla nın Tarihi 3. Joomla nın Anlamı & Logosu 4

Kurumsal Mobil Uygulamalar IBM Mobile Foundation

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

Asp.Net Veritabanı İşlemleri

MOBIL UYGULAMA GELIŞTIRME

Servis olarak Altyapı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

Açık Kaynak Öğrenme Yönetim Sistemleri (Learning Management Systems) Ceren Çalıcı

1 Milyon Kullanıcıya Nasıl Hizmet Veriyoruz? CloudLMS Teknik Alt Yapı ve Mimarimiz

Şişli Mesleki ve Teknik Anadolu Lisesi Web Programcılığı Dalı 2014 WEB PROGRAMCILIĞI DALI

.com. Özcan Acar 2009 Kurumsal Java.com

Veri Toplama Sistemini

Kurulum 14 FTP ye Bağlanmak ve Dosyaları Atmak 14 Veritabanı Oluşturulması ve Bağlanıp Kurulumun Tamamlanması 15

Lotus Türkiye Kullanıcı Grubu, Quickr ile Sanal Ortamda! Serdar Başeğmez Projeler Koordinatörü Developi Bilgi Sistemleri

Chapter 6 Mimari Tasarım. Lecture 1. Chapter 6 Architectural design

AMACSEO TEMASI KULLANIM KILAVUZU. AmacSeo temasının Amacdizayn.com tarafından hazırlanmış kullanım kılavuzudur. 1

Java ve Linux. Bora Güngören Portakal Teknoloji Akademik Bilişim

Kurumsal Kimlik Yönetimi ve Güçlü Kimlik Doğrulama. Yılmaz Çankaya

Python Web 2.0 Python ve Web 2.0 Son. Python ve Web 2.0. Gökmen GÖKSEL, 3 Mayıs 2007

İÇİNDEKİLER. YAZARLAR HAKKINDA... v. RESİMLER LİSTESİ...xv. 1.1.Bulut Bilişim Kavramının Analizi...1 BÖLÜM 1: TEMELLER...1

Açık Kaynak Kodlu Yazılım

PHP 1. Hafta 1. Sunum

Büyük Veri de Türkiye den Uygulama Örnekleri Dr. Güven Fidan

ODTÜ BLOG SERVĐSĐ ve BLOG HAZIRLAMA

Bilgi Güvenliği Denetim Sürecinde Özgür Yazılımlar. Fatih Özavcı Bilgi Güvenliği Danışmanı

Mobil Uygulama Geliştirme Yaklaşımları, Web Tabanlı Mobil Uygulama Çatıları. Burak USGURLU

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Sade ve tam ekran masaüstü kullanımının temel çıkış noktası, aranılan özelliğe çabuk erişimi sağlayan yenilikçi kullanıcı deneyimidir.

Konuşmacı. Cüneyt Manavoğlu

Veri Tabanı Yönetim Sistemleri Bölüm - 3

DRUPAL İLE ÜNİVERSİTENİN İNTRANET VE İNTERNET SİTELERİNİN GELİŞTİRİLMESİ

DITA ile Uygulama Belgeleri Hazırlamak

Programlama Dilleri II. Bilgisayar ve Öğretim Teknolojileri Öğretmenliği

LDAP VE WORDPRESS İLE

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ

Pardus Yol Haritası. Abdullah EROL Pardus Proje Yürütücüsü

Java. Hakkımızda. Java Eğitimi


İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

Selahattin Esim CEO

GittiGidiyor ve Açık Kaynak Kodlu Yazılımlar

WEB 2.0 ARAÇLARINI TANIMAK

HTML isteklerini anlayarak HTML sonucu üreten ve yaygın olarak kullanılan temel Servlet sınıfı HttpServlet tir.

Ç NDEK LER G R fi 1 Bafllamadan Önce 1 Kitab Kimler Okumal? 1 Kitap çerisindeki Örnekler 2 Örneklerin Kullan m 3 Çekinmeden Yaz n 7

ile Uygulama Geliştirme Teknikleri

TS EN ISO KONTROL LİSTESİ ŞABLONU

ClientAceDA Bağlantısı. ClientAce DA bağlantısı, Visual Basic.NET veya C# programcılarının rahatlıkla. serverlarla bağlantı kurabilen

Pardus Projesi ve Topluluk süreçleri. Ali Işıngör Akın Ömeroğlu

Bilgi Servisleri (IS)

DigiPara Liftdesigner Hidrolik Üniteleri Geliştirici Eğitimine Hoş Geldiniz

Öğr. Gör. Serkan AKSU 1

COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ

1.PROGRAMLAMAYA GİRİŞ

Transkript:

Web Uygulama Anaçatıları Tahir Emre KALAYCI May 5, 2009

Gündem 1 Web Uygulama Anaçatıları Nedir? Spring, Ruby On Rails, ZK, CakePHP, Flex, GWT, Dojo 2 İçerik Yönetim Sistemleri Nedir? Drupal, Joomla!, Plone, Moodle, WordPress 3

Web Uygulama Anaçatıları Nedir? Web Uygulama Anaçatısı Nedir? Web uygulamaları geliştirmek için kullanılan yazılım çerçevesidir Dinamik web siteleri, web servisleri ve web uygulamaları geliştirmek için kullanılır Web uygulaması geliştirme sürecini kolaylaştırmak ve geliştiricilere araçlar sunmak amacına sahiptir Örneğin çoğu veritabanı erişimini, şablonlama desteği ve oturum yönetim desteği sunarlar. Temel olarak kodun tekrar kullanımı ( code reuse ) pratiğini desteklerler

Web Uygulama Anaçatıları Nedir? Anaçatı Mimarileri Model View Controller (MVC) tasarım deseni Push-based: Çoğu MVC çerçevesi push-based yöntemi kullanır. Bunlar işlem yapmak için eylemleri kullanır, daha sonra veriyi görünüm katmanına iterler. (Struts,, Ruby On Rails, Spring MVC) Pull-based: Bileşen temelli adı da alırlar. Bu çerçeveler görünüm katmanıyla başlarlar, bu katman verileri gerektikçe bir çok denetleyiciden çekerler. Bu tip mimaride bir görünümün birden fazla denetleyicisi olabilir. (Struts2, Tapestry, JBoss Seam, Wicket) İçerik Yönetim Sistemleri: Sunumun ilerisinde anlatacağım içerik yönetim sistemleri modüler yapıyı desteklemeleri ve genişletilebilmeleri nedeniyle farklı bir mimaride de olsa web uygulama çerçevesi haline gelmişlerdir.

Web Uygulama Anaçatıları Nedir? Özellikler Güvenlik: Bazı çerçeveler kimlik denetleme, doğrulama ve yetkilendirme için destek sunarlar. Sayfalara erişimi rol temelli bir şekilde kısıtlarlar. Veritabanı erişimi ve eşleme: Çoğu çerçeve veritabanına erişmek için veritabanı bağımsız uygulama geliştirme arayüzü (API) sunar. Geliştiricilerin veritabanı değiştirdiğinde kod değiştirmeden, daha yüksek soyutlama ile çalışmasına olanak sağlarlar. URL eşleme: Kullanıcı dostu URL adresi desteği sunarlar. Web şablon sistemi: Dinamik web sayfaları genellikle bir kısmı statik web sayfalarından oluşan yapılar içerir (sol tarafta değişmeyen menüler gibi), şablonlama sistemi yardımıyla bu şekilde tüm sayfalarda ortak olan alanların tanımlanması sağlanır.

Web Uygulama Anaçatıları Nedir? Özellikler Önbellekleme: Bant genişliğini daha verimli kullanmak için web belgelerinin önbelleklenmesi desteği sunarlar. Ajax desteği: AJAX mimarisini desteklerler Otomatik yapılandırma: Bazı çerçeveler uygulama yapılandırması işlemini otomatikleştirerek yapılması gereken işi azaltır. Web servisleri desteği Açık standart mimarisi: Genel kabul görmüş açık standart ve teknolojileri desteklerler

Web Uygulama Anaçatıları Spring, Ruby On Rails, ZK, CakePHP, Flex, GWT, Dojo Bugüne kadar gördüklerimiz : Struts, JavaServer Faces Spring: Açık kaynak uygulama çerçevesi, Java ve.net platformlarını destekliyor. ZK Framework: Javascript bilgisi gerektirmeyen AJAX anaçatısı, RIA, Açık kaynak, Standartlara dayanıyor, Genişletilebilir CakePHP: Açık kaynak hızlı uygulama geliştirme PHP anaçatısı. MVC ye dayanıyor. Flex: Adobe tarafından geliştirilen ve Actionscript ve Flash tabanlı bir RIA anaçatısı. GWT: Google tarafından geliştirilen AJAX web uygulama geliştirme araç kutusu Dojo: Javascript tabanlı, AJAX ve DHTML araç kutusu

İçerik Yönetim Sistemleri Nedir? İçerik Yönetim Sistemi Nedir? İçerik yönetim sistemi adından anlaşılacağı gibi içerik yaratma ve düzenlemeyi kolaylaştıran sistemlerdir. İçerik? (haber makaleleri, günlük yazıları, kullanım klavuzları, rehberler, teknik belgeler, satış rehberleri, pazarlama broşürleri,. bilgisayar dosyaları, görüntü, ses dosyaları, elektronik belgeler,...) Tamamen içeriklere dayalı web sitelerinin (haber siteleri, günlük siteleri,...) oluşturulmasında kullanılır. Katılımcılığı destekler, kullanıcılar ve rolleri tanımlanabilir, işbirliğine dayanan üretimleri ve ilgili iş akışını destekler Otomatik şablonlar, kolay düzenlenebilen içerik, ölçeklenebilir özellik kümeleri, web standartları güncelleme desteği, iş akışı yönetimi, kullanıcı ve rol yönetimi, belge yönetimi, içerik sanallaştırma

İçerik Yönetim Sistemleri Drupal, Joomla!, Plone, Moodle, WordPress Drupal, Joomla!, Plone, Moodle, WordPress Bizi şu an ilgilendiren Web içerik yönetim sistemleri: Geniş, dinamik web materyalini yönetmek ve kontrol etmek için kullanılır. Drupal: PHP, Açık kaynak, modüler yapı, özelleştirilebilir, tüm içeriği arama, tema sistemi, rol tabanlı izin sistemi, kayıt ve raporlama, önbellekleme, optimizasyon Joomla!: PHP, Açık kaynak, eklentiler, bileşenler, Plone: Zope web sunucusu üstünde çalışır (Python), GPL lisansı, Moodle: PHP, Açık kaynak uzaktan eğitim sistemi, WordPress: PHP, Açık kaynak yayım (publishing) sistemi (günlük, kitap,...)

Python programlama diliyle hazırlanmıştır Yeniden kullanılabilirlik, modülerlik, hızlı uygulama geliştirme, Kendini Tekrar Etme ( Don t Repeat Yourself ) kavramlarını sonuna kadar kullanır Ek olarak yönetim ekranı sunar (CRUD özelliği olan) Veritabanı güdümlü web sitelerinin yaratılmasında kullanılır MVC tasarım desenine yakın bir yöntemi kullanır (Model-Template-View)

Özellikler Geliştirme ve sınama için hafif web sunucusu HTML form verileri ve veritabanı verilerine dönüşüm için form serileştirme ve doğrulama Önbellekleme Uluslararasılaştırma XML, JSON desteği Şablon sistemi Slogan: The Web Framework for perfectionists with deadlines

İçerdiği Uygulamalar Genişletilebilir kimlik denetleme Dinamik yönetim arayüzü RSS ve Atom besleme araçları Esnek yorum sistemi Tek kurulumunda birden fazla site barındırma desteği Google Sitemaps üretim araçları Şablon kütüphaneleri CBS (GIS) uygulamaları yaratmak için destek

MVT? Model: Veritabanı soyutlaması için kullanılan veri sınıflarını barındıran katman ( ORM) Görünüm (View): MVC deki denetleyicinin görevlerini yapan kısım, kullanıcının ne göreceğini ayarlar. Fonksiyonlar. Şablon (Template): Kullanıcıların görmesi gerekeni ayarlar ( Template Engine)

Python? Nesne yönelimli Yüksek seviyeli dinamik veri tipleri Modüler ve etkileşimli Girintilere dayalı, sade sözdizimi Yorumlayıcı (Interpreter) kullanıyor İstisna işleme, betik olarak kullanılabilme, çok sayıda kütüphane, öğrenim kolaylığı, özgür yazılım, yoğun kullanım (, Zope, GIMP, Inkscape, Scribus, Paint Shop Pro, Ubuntu, Debian, Pardus, Google, NASA, CERN, YouTube, Industrial Light & Magic,...)

Terimler Proje: nun bir örneği, genellikle tek bir web sitesiyle ilişkilendirilebilir (blog sitesi) Uygulama: içerisinde yazılmış ve web sitesinin bir işlevselliğini gerçekleştirilmiş kod kümesi (Bir blog sitesinde blog ve yorumlar iki ayrı uygulama olarak ele alınabilir) Uygulamalar tekrar kullanılabilir.

Model örneği

Görünüm (View) örneği

Şablon örneği

Sonuç yerine: Web Uygulama Anaçatılarının Avantajları, Dezavantajları Avantajlar Tekrarları önler: Programcı zamanı olarak daha verimlidir Otomatik olarak üretilmiş kod daha güvenilir ve yapısal olarak daha tekbiçimli DRY yaklaşımı destekleniyor Dezavantajlar Otomatik üretilmiş kodun anlaşılması zor olabilir, değiştirmesi zor olabilir Sistemler genellikle büyük ve yavaş olabilir. Bkz: Why I hate frameworks? (http://discuss.joelonsoftware.com/default.asp?joel.3.219431.121)

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ığı Wikipedia Comparison of web application frameworks başlığı Wikipedia Web content management system başlığı 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/

Kaynaklar http://plone.org/ http://moodle.org/ http://wordpress.org/ http://www.djangoproject.com/ http://e-bergi.com/2008/ocak/ Wikipedia Python (programlama dili) başlığı http://www.belgeler.org/uygulamalar/python-tutorial.html http://docs.djangoproject.com/en/dev/