Professional Documents
Culture Documents
Kada je dobro koristiti MVC arhitekturu? Kada aplikaciju razvija vei tim
developer-a i kada dizajneri trebaju vei stupanj kontrole nad ponaanjem
aplikacije.
Nasuprot tome, ako se ne eli koristiti MVC, web aplikacije se mogu razviti
i kao Web form aplikacije. One su pogodne za manje sloene aplikacije koje
razvija manji tim developer-a.
Klase
Modela
Movie
Opis
Svojstva
Tipovi podataka
Klasa za
filmove
ID (ifra filma)
Title (naslov filma)
ReleaseDate (datum
izdavanja)
Genre (anr filma)
Price (cijena).
Kontroler
MovieControll
er
Radnja(eng.
Action)
SearchIndex
(GET)
Opis
CreateMovie
(GET)
DeleteMovie
(GET)
EditMovie (GET)
DetailsMovie
(GET)
Kontroler
MovieControll
er
Pogled
Index
Opis
Prikazat e sve filmove u bazi u obliku tablice
tako da je na vrhu upisano zaglavlje tablice, a
4
Details
Create
Edit
Slika 4.7. Poetni izvorni kod datoteke Movie.cs u kojoj se kreiraju klase modela
Unutar klase Movie potrebno je upisati svojstva i metode klase koja smo definirali
u razvojnom planu programa. Nakon upisa klasa izgleda kao na donjoj slici:
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
Tako e biti omogueno da svako svojstvo klase Movie koje je definirano u klasi
bude automatski predstavljeno jednim poljem (odnosno stupcem) u tablici baze
podataka, a svaki novi film koji se unese e biti u bazi pohranjen u jednom retku
(slogu) tablice.
Povezivanje aplikacije s bazom podataka (ConnectionString)
Da bi se aplikacija povezala s odgovarajuom bazom podataka, potrebno je u
aplikaciji upisati naredbu ConnectionString koja definira naziv baze podataka i
stazu do baze (path). Ta se naredba nalazi u datoteci Web.config u prozoru
Solution Explorer.
10
11
12
{
private MovieDBContext db = new MovieDBContext();
//
// GET: /Movies/
Slika 4.17.
Ovdje se metodi Details() u zagradi prosljeuje varijabla id koja je tipa int
(cijeli broj), koji omoguava da se pronae film koji ima taj id. Ako je takav film
pronaen, u pogled se prosljeuje instanca klase Movie pod nazivom movie
(uoite da se instance uvijek piu malim poetnim slovom, a klase velikim
poetnim slovom).
13
Ako se u datoteku na gornjoj slici na vrhu doda naredba koja poinje s kljunom
rijei @model, tada se moe specificirati tip objekta koji neki Pogled moe
oekivati. Npr. ako se na vrh datoteke Details.cshtml umetne ova naredba:
@model MvcMovie.Models.Movie
Slika 4.18. Metoda Index() u kojoj se instanca klase Movie dodaje u listu i
prikazuje u Pogledu
Da bi se kreirala lista objekata tipa Movies, alat je automatski dodao naredbu koja
sadri kljunu rije @model na vrh Index.cshtml datoteke, a naredba je ova:
@model IEnumerable<MvcMovie.Models.Movie>
Na taj nain, Kontroler e proslijediti Pogledu neki Model objekt koji je strogo
tipiziran. Na primjer, s pomou foreach petlje, ti se objekti mogu dohvatiti na
sljedei nain u Index.cshtml datoteci:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReleaseDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Genre)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
<th>
@Html.DisplayFor(modelItem => item.Rating)
</th>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", { id=item.ID }) |
14
Slika 4.19.
Na slici 4.19, modelItem predstavlja svaki objekt u listi Movies. Budui da je na
vrhu datoteke specificirano da je @model tipa liste u kojoj su objekti tipa Movie,
tada je svaki item objekt u petlji foreach tipiziran kao Movie (jer se tada
poetak petlje: @foreach (var item in Model)
Tumai kao @foreach (movie in Model).
Ako se filmovi ele ispisati u obliku tablice, tako da je na vrhu redak zaglavlja koji
opisuje to se nalazi u svakom stupcu tablice, a zatim se u petlji foreach prikazuju
redom podaci za svaki slog tj. svaki film u bazi, tada bi cijela Index.cshtml
datoteka izgledala ovako:
15
Pogled (View) kod web aplikacije je zapravo izgled same web stranice na
kojoj e biti prikazan output korisniku ili ulazna maska za unos podataka.
Pogled se izrauje s pomou skriptnih jezika HTML, CSS, JavaScript i dr., a
u datoteci se mogu nalaziti i naredbe objektnog programskog jezika koje
definiraju tip objekta koji e se pojavljivati u pogledu, npr.
@model IEnumerable<MvcMovie.Models.Movie>
17
18
19
20
Literatura:
1. Microsoft, ASP.NET MVC Overview, http://www.asp.net/mvc/tutorials/olderversions/overview/asp-net-mvc-overview, , [09.10.2013]
2. Codeproject, Creating a simple application using MVC 4.0,
http://www.codeproject.com/Articles/486161/Creating-a-simple-applicationusing-MVC-4-0, [20.10.2013.]
3.
4. Pluralsight, Building Applications with ASP.NET MVC 4, http://pluralsight.com/training/Player?
author=scott-allen&name=mvc4-building-m1-intro&mode=live&clip=0&course=mvc4-building,
2012.
5. Quillin, M.J., Object Oriented Analysis and Design:What is it? How Does
it Work? Why is it used?,
http://www.umsl.edu/~sauterv/analysis/488_f01_papers/quillin.htm,
2001, [05.10.2013]
6. Feifan Zhou, Design Patterns: Model-View-Controller,
21