Što je ASP.NET MVC?

thumb image

Ako ste u dodiru s „Dev“ svijetom, barem malo, ili ako to želite učiniti u bliskoj budućnosti, a znate da je raditi web stranice i/ili aplikacije nešto super, onda ste morali čuti za ASP.NET MVC.

Što je to ASP.NET MVC?

Ne to nije nova verzija ASP.NET-a. ASP.NET je Microsoftov Web framework (ili radni okvir) koji se koristi za izradu web stranica, aplikacija i servisa. Web Forms, MVC i Web Pages su napravljeni na ASP.NET-u.  Znači sjednice (sessions), članstva (memberships), konfiguracijske datoteke (web.config), cache i ostale stvari s kojima se upoznate radeći na ASP.NET-u nije dio MVC-a. ASP.NET Web Forms, Web Pages i MVC su samo drugačiji način za strukturiranje web aplikacije. U konačnici će se napraviti HTML te će se koristiti drugačiji način za stvaranje istog. Sam ASP.NET MVC framework je definiran u assemblyu System.Web.Mvc 

 

ASP.NET

Model-View-Controller (MWC)

Vjerojatno je većina vas čula za MVC (punog naziva Model-View-Controller) „dodatak“ koji privlači toliko pažnje i često ste pričali kako morate napraviti aplikaciju u MVC-u jer je tako odmah bolja (ovisno o tome što radite, kako radite te kako ste raslojili projekt).

MVC

Ljude koji se prvi put susreću s MVC-om često zbunjuju razna objašnjena jer izgleda jednostavno kad se pročita definicija i pogleda par crteža, ali kad se primjenjuje u praksi malo je kompliciranije.

Nekakva „štura“ definicija MVC-a bila bi da je to oblikovni obrazac koji dijeli aplikaciju na tri glavne komponente: model, view (pogled) i controller (kontroler). Modeli su objekti koji implementiraju logiku domene podataka projekta na kojem radite. Views je skup komponenti koji predstavlja korisničko sučelje, dok kontroleri koordiniraju korisničke interakcije, po potrebi komuniciraju s modelima i u konačnici izabiru view koji će prikazati korisničko sučelje.

Čitajući ovu definiciju i njoj slične izgleda sve logično (meni se tako čini), čak pomislite kako su pametni ljudi ovo smislili (daleke 1979.godine za Smalltalk) i onda upalite vaš Visual Studio stvorite novi ASP.NET MVC projekt, pogledate koji tutorial na brzinu i više vam nije jasno kako točno radi MVC.

Controller-first princip

U nastavku ću ukratko objasniti na kojem principu radi ASP.NET MVC. 

Prvo napravimo novi ASP.NET MVC projekt (koji nije „Empty application“ čisto radi primjera, inače je preporuka), i ugledamo nama 3 najzanimljivija direktorija u projektu: Controllers, Models i Views. Odmah „udarimo“ F5 tipku i pokrene se aplikacija u nama najdražem pregledniku (dok sam pisao ovo meni se otvorilo u IE9, valjda mi zvijezde nešto žele reći) gdje vidimo kako izgleda predložak aplikacija s nekoliko jednostavnih funkcionalnosti.

Nakon što se nagledate aplikacije izađite iz preglednika i vratite se u Visual Studio te otvorite HomeController.cs klasu (unutar Controllers direktorija). Tu se mogu odmah primjetiti dvije metode: Index i About. Stavite breakpoint unutar Index metode na jednu od 2 linije koda i udarite onaj F5 još jače (ali istovremeno bude nježni prema vašem računalu jer ipak će vam on jednog dana, ili već je, donositi kruh na stol).

Code screen

 

Vaš preglednik će se otvoriti ali se u njemu neće ništa prikazati, već će se „beskonačno“ vrtjeti znak očitavanja web stranice.

Controller-first principle

 

To se događa jer upisom neke URL putanje, u ovom slučaju (početak)/Home/Index koji je ovdje i početna stranica ove web aplikacije, šalje zahtjev direktno kontroleru koji zatim obavi sve instrukcije za primljeni zahtjev (to može biti dohvaćanje modela, spremanje nečega u bazu…) i proslijedi odgovarajuće rezultate pogledu kojem želi. Taj pogled (view) zatim vizualno prikaže „želje“ kontrolera (to može biti neki od modela, nekakva poruka, nešto složenije,…) koristeći odgovarajući View engine (zavisno koji ste odabrali kreirajući ovaj projekt). 

View engine

ASP.NET MVC ima na raspolaganju 2 View engine-a, Web Forms i Razor (koji se pojavio od verzije 3). Unutar pogleda (view) se nalazi kombinacija markup jezika (HTML) i C# koda, pisanog sintaksom za jedan od ova 2 engine-a. Pri prevođenju aplikacije, iz ove kombinacije koda generira se čisti HTML kod koji se prikazuje u vašem pregledniku, a to se događa zahvaljujući korištenju jednog od ovih engine-a.

Koji engine onda koristiti?

Ako nemate ASP.NET MVC verzije 3 ili 4 definitivno koristite Web Forms View engine jer Razor tad nije postojao, a inače koristite Razor.

Zašto?

Zato jer je pojednostavljen, ima manje linija koda i jako je intuitivan.

Za kraj…

ASP.NET MVC je definitivno veliki napredak na području tehnologija (još je i open source) za razvoj web aplikacija, te je dodatno popularizirao ovo područje. Bitno je znati da nije jedino Microsoftovo rješenje za izradu web aplikacija, jer ako vam treba neka jednostavna stranica brzo i jednostavno napravit ćete ju za 5 minuta u ASP.NET Web Pages, dok ako radite na nekom projektu gdje vam treba jako puno već gotovih kontrola (poput gridova) za vas je idealan ASP.NET Web Forms.

Za sve ostalo tu je ASP.NET MVC.

Pin It