You are on page 1of 19

Uvod u MVC

(Model, View, Controller)


Model, View, Controller
Design pattern
Definira arhitekturu softvera
Nije novost
Odvaja reprezentaciju podataka od interakcije
Vrlo rasprostranjeno meu web aplikacijama
Implementacije u brojnim programskim
jezicima
Browser

Routing

Controller

View Model

ViewModel?

DB
Routing
Usmjerava zahtjeve prema kontrolerima
Omoguuje koritenje pretty linkova
Konvencija prije konfiguracije
www.domena.com/kategorije?kategorija=1&podkategorija=2
www.domena.com/kategorije/kategorija/1/podkategorija/2

www.domena.com/kategorije?kategorija=stripovi&podkategorija=akcijski
www.domena.com/kategorije/kategorija/stripovi/podkategorija/akcijski
www.domena.com/kategorije/stripovi/akcijski
Model
Enkapsulacija i obrada* podataka za view
Tzv. business logic
Validacija podataka
Interakcija s bazom
Koritenje ORM-a
EntityFramework (ASP.NET), ActiveRecord (RoR)
ORM
Programerska tehnika za konverziju podataka
izmeu nekompatibilnih tipova sustava u OO
programskim jezicima
virtual object database

VS

p = Person.find(10)
name = p.name
Controller
Rukovanje korisnikovim upitima (interakcijom)
Tzv. input logic
Rad s modelom
Odabir tipa odgovora:
view, json, xml, redirect
View
Prikazivanje informacije kroz UI
Tzv. UI logic
ViewModel
HTML elementi, UI efekti, DOM manipulacija
Markup view engine, helper metode
MVC web frameworks
Ruby Ruby on Rails, Sinatra
Python Django, Pyramid, web2py
MS ASP.NET MVC
PHP Yii, CodeIgniter, CakePHP, Zend
Java Spring, JSF
JavaScript AngularJS, Backbone.js, Ember.js,
KnockoutJS
Hvala!

You might also like