- 1. Naprednetehnike razvoja web aplikacija, Zend Framework Saa
Stamenkovi Senior Software Developer Troxo
2. ta je to MVC?
- ModelViewController( MVC ) je arhitekturni obrazac koji se
koristi u softverskom ininjerstvu. Ovaj obrazac razdvaja podatke
(model), korisniki interfejs (view), i obradu (controll),
dozvoljavajui tako nezavisni razvoj, testiranje i odravanje ovih
komponenti.
3. ta je to MVC? 4. ta je to MVC? 5. Model
- Je nain predstavljanja podataka koje data aplikacija koristi.
Sama logika aplikacije daje neko znaenje sirovim podatcima, npr.
izraunavajui da li je danas korisnikov rodjendan.
6. View
- Predstavlja model u odredjenoj formi, najee kroz korisniki
interfejs. Mogue je postojanje vie pogleda za jedan isti
model.
7. Controller
- Prihvata informacije sa ulaza, poziva modele objekata i vraa
rezultat.
- MVC aplikacija moe imati vie model/view/controller trija, gde e
svaki biti zaduen za odredjeni U/I.
8. 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 ModelViewController
- Iako postoje vie varijacija naziva, kao na primer Model View
Presenter kod .NET Framework-a, svi oni imaju isti redosled
operacija.
9. Koji se problemi javljaju u web aplikacijama?
- Meanje biznis i prezentacione logike
- Nepostojanje strogih konvencija
10. Neke web aplikacije izgledaju ovako 11. A njihovo odravanje
ovako 12. Meanje biznis i prezentacione logike 13. Meanje biznis i
prezentacione logike
- Eventualne greke nisuhendlovane
- Konfiguracija nije centralizovana
- Odravanje ovakvog koda je oteano
14. Nestandardno rutiranje 15. Nestandardno rutiranje
- Svaki programer ga reava na svoj nain
- Svaka nova aplikacija zahteva ponovni prolazak kroz fazu
reavanja ovog problema
- Poveano vreme razvoja aplikacije
- Oteano odravanje i razumevanje koda od strane lanova razvojnog
tima
16. Sigurnost (security) web aplikacija
- Cross-site scripting (XSS)
- Cross-site request forgery (CSRF)
17. Aplikacije su kao luk imaju slojeve 18. MVC 19. To nije
sve
- Autentifikacija I autorizacija
20. To nije sve
- Sigurnost (XSS, CSRF , SQL Injection..)
21. Neki od MVC frameworaka
22. Zend framework
- Open sourceframeworkza PHP.
- Use-at-will framework (veoma fleksibilan).
- Podrava vie 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 sourceframeworkza jezik Ruby.
- Moan scaffolding, mehanizam za automatsko kreiranje modela,
pogleda, testova, baze...
- Moe da se izvrava na raznim serverima, pr. Mongrel,
Lighttpd,Abyss, Apache, Passenger.
- ImplementiraConvention over Configuration, iDon't repeat
yourself.
24. Play!
- Znaajno olakava razvoj web aplikacija u Javi. Dostupne sve
standardne Java metode
- Direktno kompajlira kod i uitava ga na JVM, bez potrebe za
restartovanjem servera.
- Omoguava pun i jednostavan pristup HTTP metodama.
- Pri pojavi greke u kodu, brzo pronalazi tanu liniju, ak i u
templejtima.
- http://www.playframework.org/
25. Django
- Nastao 2005. Nazvan po jazz gitaristi Django Reinhardt
- Primarni cilj je olakano kreiranje kompleksih web aplikacija,
principom ponovne upotrebe komponenti.
- Framework sadri i server za razvoj i testiranje.
- Sadriframeworkza razvoj GIS aplikacija
- http://www.djangoproject.com/
26. ASP. netMVC
- Microsoft -ovframeworkza ASP.net, prva puna verzija izala
poetkom 2009.
- Omoguava testiranje pojedinanih komponenti.
- Podrava sve metode standardnog ASP.net-a, ali sadri mnogo manje
apstrakcija u odnosu na klasino web form okruenje.
- Jednostavna zamena componentiframeworka .
27. Pregled 28. Pregled 29. Zend Framework 30. ta je unutra? 31.
Zend MVC
- Model model podataka koje koristimo u aplikaciji (sloj
podataka)
- View ono to prikazujemo korisniku (prezentacioni sloj)
- Controller upravlja zahtevima I odluuje o tome ta se deava
(sloj logike)
32. Zend MVC - interakcija
-
- Viewmoe da zatrai podatke od modela, ali ne i da upisuje
podatke.
33. Zend MVC 34. Zend MVC 35. Zend MVC Front Controller
- Dlegira ih ka Action Controller-ima
36. Zend MVC Zend_Controller
- Request sadri sve informacija o zahtevu
- Router parsira zahtev na tokene koji predstavljaju modul,
controler, akciju, parametre...
- Dispatcher mapira tokene sa odgovarajuim klasama i metodama i
inicira njihovo izvrenje
- Response sadri odgovor i mogunostnjegovog slanja klijentu
37. Zend MVC dijagram 38. Zend MVC rutiranje
-
- /controller/action/key1/value1/key2/value2
-
- /module/controller/action
-
- /module/controller/action/key1/value1/...
39. Zend MVC Zend_Controller_Action
- Klase koje nasleuju Zend_Controller_Action
- Definiu javne metode za svaku akciju
- Mogu implementirati neke od event-a: init(), preDispatch(),
postDispatch()...
- Mogu koristiti korisne nasleene metode: _forward(),
_redirect(), __call()..
- Mogue je implementirati plaginove I helpere za njih
40. Zend MVC Zend_View
- Implementacija Zend_View_Interface omoguava kreiranje
sopstevnogtemplate engine -a
- Defaultnaimplementacija (Zend_View) koristi PHP kaotemplate
engine
- Dodeljuje i uzima vrednosti promenljivih kao atribute
objekata
-
- $view->var = 'some value'
- Mogue je korienje postojeih i implementacija novih filtera i
helpera
41. Zend MVC Zend_Model
42. Zend MVC Zend_Model
- Jo uvek ne postoji generalna komponenta pod ovim nazivom, ali
je podrana sledeim:
43. Prednosti MVC-a
- Razdvaja kod u celine prema njihovoj odgovornosti
- Predvidiva lokacija koda na serveru
- Obino koristi OOP olakano testiranje I odravanje na due
staze
44. Zend MVC Sve zajedno 45. Demonstracija
- Kreirati hello world aplikaciju korienjem Zend Tool-a.
- Zatim kreirati novu akciju i novi kontroler.
- Dodatilayout(two-step view pattern).
- Povezati se na MySQL bazu.
- Proitati podatke iz baze.
- Dodati formu, pokazati validatore I filtere.
- Validirati podatke i upisati ih u bazu.
46. Linkovi
-
http://www.slideshare.net/umpirsky/napredne-tehnike-razvoja-web-aplikacija-zend-framework
- http://code.google.com/p/librarydemo/
- http://twitter.com/umpirsky
Kontakt 47. Pitanja i odgovori 48. Hvala na panji