Napredne  tehnike razvoja web aplikacija,   Zend Framework Saša Stamenković Senior Software Developer Troxo   Open IT Elektronski fakultet Niš
Koji se problemi javljaju u web aplikacijama? Mešanje biznis i prezentacione logike Copy-paste kod Nepostojanje strogih konvencija Nestandardno rutiranje Loše rukovanje greškama Sigurnosni propusti ...
Neke web aplikacije izgledaju ovako
A njihovo održavanje ovako
Mešanje biznis i prezentacione logike
Mešanje biznis i prezentacione logike Sigurnosni propusti Kod nije  reusabilan Eventualne greške nisu  hendlovane Konfiguracija nije centralizovana Održavanje ovakvog koda je otežano
Nestandardno rutiranje
Nestandardno rutiranje Svaki programer ga rešava na svoj način Svaka nova aplikacija zahteva ponovni prolazak kroz fazu rešavanja ovog problema Povećano vreme razvoja aplikacije Otežano održavanje i razumevanje koda od strane članova razvojnog tima
Sigurnost (security) web aplikacija SQL injection Cross-site scripting (XSS) Cross-site request forgery (CSRF)
Aplikacije su kao luk – imaju slojeve
Šta je to MVC? Model–View–Controller  ( MVC ) je arhitekturni obrazac koji se koristi u softverskom inžinjerstvu. Ovaj obrazac razdvaja podatke (model), korisnički interfejs (view), i obradu (controll), dozvoljavajući tako nezavisni razvoj, testiranje i održavanje ovih komponenti.
Šta je to MVC?
Šta je to MVC?
Model Je način predstavljanja podataka koje data aplikacija koristi. Sama logika aplikacije daje neko značenje sirovim podatcima, npr. izračunavajući da li je danas korisnikov rodjendan.
View Predstavlja model u odredjenoj formi, najčešće kroz korisnički interfejs. Moguće je postojanje više pogleda za jedan isti model.
Controller Prihvata informacije sa ulaza, poziva modele objekata i vraća rezultat. MVC aplikacija može imati više model/view/controller trija, gde će svaki biti zadužen za odredjeni U/I.
MVC
Malo istorije MVC je 1979 godine prvi put opisao Trygve Reenskaug, koji je u tom momentu radio na Smalltalk-u. Prvobitna implementacija je detaljno opisana u radu : " Applications Programming in Smalltalk-80: How to use Model–View–Controller “ Iako postoje više varijacija naziva, kao na primer Model View Presenter kod .NET Framework-a, svi oni imaju isti redosled operacija.
To nije sve Navigacija Two step view Autentifikacija i autorizacija Validatori i filteri Web servisi ORM Ajax i DOM Internacionalizacija Scaffold
To nije sve Unit testovi Sigurnost (XSS, CSRF , SQL Injection..) Keširanje SEO ...
Neki od MVC frameworaka Zend Framework Ruby on Rails Play!  Django  ASP. net  MVC Framework
Zend Framework Open source  framework  za PHP. Nastao oktobra 2005. Use-at-will framework (veoma fleksibilan). Podržava više DBMS-a : MySQL, Oracl, SQL Server, IBM DB2, SQL Lite.. Sve komponente su u potpunosti objektno-orientisani PHP 5. http://framework.zend.com/
Ruby on Rails Open source  framework  za jezik Ruby. Nastao Jula 2004. Moćan scaffolding mehanizam (rake) za automatsko kreiranje modela, pogleda, testova, baze... Može da se izvršava na raznim serverima, pr. Mongrel, Lighttpd,  Abyss, Apache, Passenger. Implementira  Convention over Configuration, i  Don't repeat yourself. http://rubyonrails.org/
Play! Značajno olakšava razvoj web aplikacija u Javi. Dostupne sve standardne Java biblioteke (integracija sa Hibernate, OpenID, Memcached...). Direktno kompajlira kod i učitava ga na JVM, bez potrebe za restartovanjem servera. Koristi Groovy template engine (nasleđivanje,  include , tagovi...). Pri pojavi greške u kodu, brzo pronalazi tačnu liniju, čak i u templejtima. http://www.playframework.org/
Django Nastao 2005. Nazvan po jazz gitaristi Django Reinhardt. Primarni cilj je olakšano kreiranje kompleksih web aplikacija, principom ponovne upotrebe komponenti. Framework  sadrži i server za razvoj i testiranje. ORM, admin interfejs, django templejti, keširanje, internacionalizacija... http://www.djangoproject.com/
ASP. net  MVC Microsoft -ov  framework  za ASP.net, prva puna verzija izašla početkom 2009. Omogućava testiranje pojedinačnih komponenti – testabilan kod. Podržava sve metode standardnog ASP.net-a, ali sadrži mnogo manje apstrakcija u odnosu na klasično web form okruženje. Intuitivni URL-ovi, MVC, validacija, rutiranje, navigacija, keširanje... www. asp . net / mvc /
Pregled
Pregled
Zend Framework
Šta je unutra?
Zend MVC Model – model podataka koje koristimo u aplikaciji (sloj podataka) Baza Web servisi Feed -ovi ... View – ono što prikazujemo korisniku (prezentacioni sloj) Controller – upravlja zahtevima I odlučuje o tome šta se dešava (sloj logike)
Zend MVC - interakcija Controller ↔ view Controller ↔ model View ← model  View  može da zatraži podatke od modela, ali ne i da upisuje podatke.
Zend MVC
Zend MVC
Zend MVC – Front Controller Rukuje svim zahtevima Dlegira ih ka Action Controller-ima Vraća  Response
Zend MVC – Zend_Controller Request – sadrži sve informacija o zahtevu Router – parsira zahtev na tokene koji predstavljaju modul, controler, akciju, parametre... Dispatcher – mapira tokene sa odgovarajućim klasama i metodama i inicira njihovo izvršenje Response – sadrži odgovor i mogućnost  njegovog slanja klijentu
Zend MVC dijagram
Zend MVC – rutiranje Podrazumevano  rutiranje /controller/action /controller/action/key1/value1/key2/value2 /module/controller/action /module/controller/action/key1/value1/...
Zend MVC – Zend_Controller_Action Klase koje nasleđuju Zend_Controller_Action Definišu javne metode za svaku akciju Mogu implementirati neke od event-a: init(), preDispatch(), postDispatch()... Mogu koristiti korisne nasleđene metode: _forward(), _redirect(), __call().. Moguće je implementirati plaginove I helpere za njih
Zend MVC – Zend_View Implementacija Zend_View_Interface omogućava kreiranje sopstevnog  template engine -a Defaultna  implementacija (Zend_View) koristi PHP kao  template engine Dodeljuje i uzima vrednosti promenljivih kao atribute objekata $view->var = 'some value' Moguće je korišćenje postojećih i implementacija novih filtera i helpera
Zend MVC – Zend_Model Šta je model? Baza podataka Web servis Feed Konfiguracioni fajl Fajl sistem Slike ...
Zend MVC – Zend_Model Još uvek ne postoji generalna komponenta pod ovim nazivom, ali je podržana sledećim: Zend_Db_Table Zend_Service Zend_Soap Zend_XmlRpc Zend_Feed Zend_Config ...
Zend_Form Objektna reprezentacije web (HTML) formi. Omogućava kreiranje standardnih kontrola korišćenjem elemenata (Zend_Form_Element). Podrška za validaciju i filtriranje ulaznih podataka. Prilagođavanje dizajna korišćenjem dekoratora (Zend_Form_Decorator), grupa (Zend_Form_DisplayGroup) i subformi (Zend_Form_SubForm).
Prednosti MVC-a Razdvaja kod u celine prema njihovoj odgovornosti Biznis logika Prezentaciona logika Rutiranje Predvidiva lokacija koda na serveru Obično koristi OOP – olakšano testiranje I održavanje na duže staze
Zend MVC – Sve zajedno
Šta smo naučili? Uočili smo probleme koji se javljaju u razvoju web aplikacija. Upoznali smo se sa MVC-om I naveli neke konkretne implementacije. Naučili smo šta još korisno nude web  freamework  implementacije. Detaljnije smo se upoznali sa Zend Framework-om i njegovom MVC implementacijom.
Demonstracija Kreirati hello world aplikaciju korišćenjem Zend Tool-a. Zatim kreirati novu akciju i novi kontroler. Dodati  layout  (two-step view pattern). Dodati model. Povezati se na MySQL bazu. Pročitati podatke iz baze. Dodati formu, pokazati validatore I filtere. Validirati podatke i upisati ih u bazu.
Linkovi http://www.slideshare.net/umpirsky/napredne-tehnike-razvoja-web-aplikacija-zend-framework http://code.google.com/p/librarydemo/ [email_address] http://twitter.com/umpirsky Kontakt
Pitanja i odgovori
Hvala na pažnji

More Related Content

PPT
Projektovanje web aplikacija
PDF
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
PPSX
Decouple Goals
PDF
2019 StartIT - Symfony i 12 factor arhitektura
PPTX
Primjena veb tehnologija u geografskim informacionim sistemima
PPT
Ljubav Flexa I PHP-a
PPTX
PPTX
Getting bigger with flask
Projektovanje web aplikacija
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
Decouple Goals
2019 StartIT - Symfony i 12 factor arhitektura
Primjena veb tehnologija u geografskim informacionim sistemima
Ljubav Flexa I PHP-a
Getting bigger with flask

Similar to Napredne tehnike razvoja web aplikacija - Zend Framework (20)

PPT
Silverlight
PPTX
Front-end development iz ugla .NET programera
PPT
Web Servisi
PDF
Automatizacija u Front-end razvojnom procesu
DOCX
Studija slučaja - phishing
PPTX
.NET Core - Sve što trebate znati
PPTX
IT6-L3.pptx
PDF
Admnistriranje mreza nova_predavanja_1
PPT
.Net framework
PPTX
Vuk Nikolić - Web frontend - startap akademija, prva tech radionica
PPTX
Intro to 2D Game Development
PPTX
ICK7-L2.pptx
PDF
P2_Modeli_Procesa.pdf
PPT
Migration to 9i
PPTX
Дефинисање-типског-захвата-обраде-грубог-и-завршног-стругања-у-модулу-CManufa...
PDF
Tarabica16 Arhitektura i implementacija CQRS šablona sa Microsoft.Net-om
PPTX
Anatomija napada – duhovi u mašini
PDF
catalog Software
PDF
iOS Zagreb Meetup #02 - Clean architecture in iOS apps (Leonard Beus @ Five)
PDF
Projektovanje i implementacija SPPR
Silverlight
Front-end development iz ugla .NET programera
Web Servisi
Automatizacija u Front-end razvojnom procesu
Studija slučaja - phishing
.NET Core - Sve što trebate znati
IT6-L3.pptx
Admnistriranje mreza nova_predavanja_1
.Net framework
Vuk Nikolić - Web frontend - startap akademija, prva tech radionica
Intro to 2D Game Development
ICK7-L2.pptx
P2_Modeli_Procesa.pdf
Migration to 9i
Дефинисање-типског-захвата-обраде-грубог-и-завршног-стругања-у-модулу-CManufa...
Tarabica16 Arhitektura i implementacija CQRS šablona sa Microsoft.Net-om
Anatomija napada – duhovi u mašini
catalog Software
iOS Zagreb Meetup #02 - Clean architecture in iOS apps (Leonard Beus @ Five)
Projektovanje i implementacija SPPR
Ad

Napredne tehnike razvoja web aplikacija - Zend Framework

  • 1. Napredne tehnike razvoja web aplikacija, Zend Framework Saša Stamenković Senior Software Developer Troxo Open IT Elektronski fakultet Niš
  • 2. Koji se problemi javljaju u web aplikacijama? Mešanje biznis i prezentacione logike Copy-paste kod Nepostojanje strogih konvencija Nestandardno rutiranje Loše rukovanje greškama Sigurnosni propusti ...
  • 3. Neke web aplikacije izgledaju ovako
  • 5. Mešanje biznis i prezentacione logike
  • 6. Mešanje biznis i prezentacione logike Sigurnosni propusti Kod nije reusabilan Eventualne greške nisu hendlovane Konfiguracija nije centralizovana Održavanje ovakvog koda je otežano
  • 8. Nestandardno rutiranje Svaki programer ga rešava na svoj način Svaka nova aplikacija zahteva ponovni prolazak kroz fazu rešavanja ovog problema Povećano vreme razvoja aplikacije Otežano održavanje i razumevanje koda od strane članova razvojnog tima
  • 9. Sigurnost (security) web aplikacija SQL injection Cross-site scripting (XSS) Cross-site request forgery (CSRF)
  • 10. Aplikacije su kao luk – imaju slojeve
  • 11. Šta je to MVC? Model–View–Controller ( MVC ) je arhitekturni obrazac koji se koristi u softverskom inžinjerstvu. Ovaj obrazac razdvaja podatke (model), korisnički interfejs (view), i obradu (controll), dozvoljavajući tako nezavisni razvoj, testiranje i održavanje ovih komponenti.
  • 12. Šta je to MVC?
  • 13. Šta je to MVC?
  • 14. Model Je način predstavljanja podataka koje data aplikacija koristi. Sama logika aplikacije daje neko značenje sirovim podatcima, npr. izračunavajući da li je danas korisnikov rodjendan.
  • 15. View Predstavlja model u odredjenoj formi, najčešće kroz korisnički interfejs. Moguće je postojanje više pogleda za jedan isti model.
  • 16. Controller Prihvata informacije sa ulaza, poziva modele objekata i vraća rezultat. MVC aplikacija može imati više model/view/controller trija, gde će svaki biti zadužen za odredjeni U/I.
  • 17. MVC
  • 18. Malo istorije MVC je 1979 godine prvi put opisao Trygve Reenskaug, koji je u tom momentu radio na Smalltalk-u. Prvobitna implementacija je detaljno opisana u radu : " Applications Programming in Smalltalk-80: How to use Model–View–Controller “ Iako postoje više varijacija naziva, kao na primer Model View Presenter kod .NET Framework-a, svi oni imaju isti redosled operacija.
  • 19. To nije sve Navigacija Two step view Autentifikacija i autorizacija Validatori i filteri Web servisi ORM Ajax i DOM Internacionalizacija Scaffold
  • 20. To nije sve Unit testovi Sigurnost (XSS, CSRF , SQL Injection..) Keširanje SEO ...
  • 21. Neki od MVC frameworaka Zend Framework Ruby on Rails Play! Django ASP. net MVC Framework
  • 22. Zend Framework Open source framework za PHP. Nastao oktobra 2005. Use-at-will framework (veoma fleksibilan). Podržava više DBMS-a : MySQL, Oracl, SQL Server, IBM DB2, SQL Lite.. Sve komponente su u potpunosti objektno-orientisani PHP 5. http://framework.zend.com/
  • 23. Ruby on Rails Open source framework za jezik Ruby. Nastao Jula 2004. Moćan scaffolding mehanizam (rake) za automatsko kreiranje modela, pogleda, testova, baze... Može da se izvršava na raznim serverima, pr. Mongrel, Lighttpd, Abyss, Apache, Passenger. Implementira Convention over Configuration, i Don't repeat yourself. http://rubyonrails.org/
  • 24. Play! Značajno olakšava razvoj web aplikacija u Javi. Dostupne sve standardne Java biblioteke (integracija sa Hibernate, OpenID, Memcached...). Direktno kompajlira kod i učitava ga na JVM, bez potrebe za restartovanjem servera. Koristi Groovy template engine (nasleđivanje, include , tagovi...). Pri pojavi greške u kodu, brzo pronalazi tačnu liniju, čak i u templejtima. http://www.playframework.org/
  • 25. Django Nastao 2005. Nazvan po jazz gitaristi Django Reinhardt. Primarni cilj je olakšano kreiranje kompleksih web aplikacija, principom ponovne upotrebe komponenti. Framework sadrži i server za razvoj i testiranje. ORM, admin interfejs, django templejti, keširanje, internacionalizacija... http://www.djangoproject.com/
  • 26. ASP. net MVC Microsoft -ov framework za ASP.net, prva puna verzija izašla početkom 2009. Omogućava testiranje pojedinačnih komponenti – testabilan kod. Podržava sve metode standardnog ASP.net-a, ali sadrži mnogo manje apstrakcija u odnosu na klasično web form okruženje. Intuitivni URL-ovi, MVC, validacija, rutiranje, navigacija, keširanje... www. asp . net / mvc /
  • 31. Zend MVC Model – model podataka koje koristimo u aplikaciji (sloj podataka) Baza Web servisi Feed -ovi ... View – ono što prikazujemo korisniku (prezentacioni sloj) Controller – upravlja zahtevima I odlučuje o tome šta se dešava (sloj logike)
  • 32. Zend MVC - interakcija Controller ↔ view Controller ↔ model View ← model View može da zatraži podatke od modela, ali ne i da upisuje podatke.
  • 35. Zend MVC – Front Controller Rukuje svim zahtevima Dlegira ih ka Action Controller-ima Vraća Response
  • 36. Zend MVC – Zend_Controller Request – sadrži sve informacija o zahtevu Router – parsira zahtev na tokene koji predstavljaju modul, controler, akciju, parametre... Dispatcher – mapira tokene sa odgovarajućim klasama i metodama i inicira njihovo izvršenje Response – sadrži odgovor i mogućnost njegovog slanja klijentu
  • 38. Zend MVC – rutiranje Podrazumevano rutiranje /controller/action /controller/action/key1/value1/key2/value2 /module/controller/action /module/controller/action/key1/value1/...
  • 39. Zend MVC – Zend_Controller_Action Klase koje nasleđuju Zend_Controller_Action Definišu javne metode za svaku akciju Mogu implementirati neke od event-a: init(), preDispatch(), postDispatch()... Mogu koristiti korisne nasleđene metode: _forward(), _redirect(), __call().. Moguće je implementirati plaginove I helpere za njih
  • 40. Zend MVC – Zend_View Implementacija Zend_View_Interface omogućava kreiranje sopstevnog template engine -a Defaultna implementacija (Zend_View) koristi PHP kao template engine Dodeljuje i uzima vrednosti promenljivih kao atribute objekata $view->var = 'some value' Moguće je korišćenje postojećih i implementacija novih filtera i helpera
  • 41. Zend MVC – Zend_Model Šta je model? Baza podataka Web servis Feed Konfiguracioni fajl Fajl sistem Slike ...
  • 42. Zend MVC – Zend_Model Još uvek ne postoji generalna komponenta pod ovim nazivom, ali je podržana sledećim: Zend_Db_Table Zend_Service Zend_Soap Zend_XmlRpc Zend_Feed Zend_Config ...
  • 43. Zend_Form Objektna reprezentacije web (HTML) formi. Omogućava kreiranje standardnih kontrola korišćenjem elemenata (Zend_Form_Element). Podrška za validaciju i filtriranje ulaznih podataka. Prilagođavanje dizajna korišćenjem dekoratora (Zend_Form_Decorator), grupa (Zend_Form_DisplayGroup) i subformi (Zend_Form_SubForm).
  • 44. Prednosti MVC-a Razdvaja kod u celine prema njihovoj odgovornosti Biznis logika Prezentaciona logika Rutiranje Predvidiva lokacija koda na serveru Obično koristi OOP – olakšano testiranje I održavanje na duže staze
  • 45. Zend MVC – Sve zajedno
  • 46. Šta smo naučili? Uočili smo probleme koji se javljaju u razvoju web aplikacija. Upoznali smo se sa MVC-om I naveli neke konkretne implementacije. Naučili smo šta još korisno nude web freamework implementacije. Detaljnije smo se upoznali sa Zend Framework-om i njegovom MVC implementacijom.
  • 47. Demonstracija Kreirati hello world aplikaciju korišćenjem Zend Tool-a. Zatim kreirati novu akciju i novi kontroler. Dodati layout (two-step view pattern). Dodati model. Povezati se na MySQL bazu. Pročitati podatke iz baze. Dodati formu, pokazati validatore I filtere. Validirati podatke i upisati ih u bazu.