Sunteți pe pagina 1din 24

ASP.NET MVC (1.

0)
Introducere n dezvoltarea aplicaiilor web

Radu-Mihail Obad radu-mihail.obada@student-partners.co

Aplicaie web?
O aplicaie care este accesat prin

intermediul unui navigator web peste o reea


precum Internet sau intranet. [Wikipedia]

Model View Controller


ablon arhitectural folosit n ingineria

software. Izoleaz logica aplicaiei (business


logic) de prezentare i input. [Wikipedia]
1979, Smalltalk la Xerox PARC
Mai multe arome: Model View Presenter (.NET
Framework), model-view-controllerconnector (XForms) etc.

MVC n imagini

MVCpe web
Foarte popular pentru dezvoltarea aplicaiilor

web.
n special n frameworks agile (Spring Web
MVC, Ruby on Rails etc.)
Permite o separare excelent a
responsabilitilor (concerns) pentru aplicaii
distribuite n-tier, i. e. cele mai multe aplicaii
web.

MVC: Model
Reprezentarea datelor specifice domeniului.
Domain logic structureaz datele, dndu-le

neles.
Modelul nu este data access layer, dar DAL se
subnelege c e ncapsulat de model.

MVC: View
Prezint, ntr-un mod sau altul, modelul.
Pot exista mai multe views pentru acelai

model.
De cele mai multe ori, reprezint interfaa cu
utilizatorul.

MVC: Controller
Liantul MVC.
Primete i gestioneaz interaciunea cu

utilizatorul (input).
Apeleaz modelul.
Iniiaz un rspuns.

Exemplu arhitectural
Model: business objects care implementeaz

business rules, i. e. Persoan, Contact etc.


View: (X)HTML, generat de aplicaie plecnd
de la datele din model.
Controller: trateaz cererile HTTP GET i HTTP
POST, le direcioneaz ctre business objects
i prezint views.

Microsoft: evoluia platformei web


Programe CGI i filtre ISAPI (anii 90) pentru

IIS.
Active Server Pages (sfritul anilor 90):
sistem de abloane (templating), cod i markup n acelai loc, dynamic scripting
ASP.NET (2002): model de programare bazat
pe evenimente; postbacks i viewstate

ASP.NET MVC: de ce? (1)


MVC
Decuplarea straturilor.
Separarea responsabilitilor (concerns).
Test-Driven Design.

ASP.NET MVC: de ce? (2)


Control integral asupra codului HTML.
Motoare multiple pentru prezentare (view

engines).
URL-uri curate.
Uurin REST.

ASP.NET MVC versus Web Forms


ASP.NET MVC

ASP.NET Web Forms


Model bazat pe

evenimente
Model, View, Controller
Mediu RAD
Test-Driven Design
Controale server-side
Control total al HTML-ului
puternice
generat
Ascunde problema
Interfee REST pentru ULRpstrrii strii
uri
Ecosistem foarte bogat, n
Se integreaz excelent cu
special pentru controale
jQuery sau ExtJS
Foarte uor de abordat de
Permite o abordare agil
dezvoltatorii desktop

Cum se ntmpl? (1)


1)
2)
3)
4)

UrlRoutingModule->Route.
Route->IRouteHandler.
IRouteHandler->MvcHandler.
MvcHandler->Controller.

Cum se ntmpl? (2)


Stadiu

Detalii

Primete prima cerere pentru


aplicaie

Global.asax, Route sunt


adugate la RouteTable

Routing

UrlRoutingModule->()>Controller

MVC Request Handler

MvcRouteHandler->MvcHandler

Se creeaz Controller

MvcHandler>IControllerFactory

Se execut Controller

Controller->Execute()

Se invoc o aciune

Controller->Action()

Se execut rezultatul

View

ASP.NET MVC: Routing


Mapeaz un URL pe o aciune a unui

controller
Web.config (nu) sau Global.asax
RouteTable, se parcurge de sus n jos
Parametrizate
Pot aduga constrngeri

ASP.NET MVC: Controllers


O simpl clas
Pot deriva din System.Web.Mvc.Controller
Metodele sunt aciuni
Aciunile ntorc un rezultat:
view
nimic
coninut

Orice altceva este convertit n text

ASP.NET MVC: Views


Motorul implicit pentru views este

WebForms!
Nu mai am controale server (<asp: />)
Script blocks: <% %>
HTML Helpers: funcionaliti de-a gata pentru
bucile de HTML utilizate des
Pot avea views pariale
Pot schimba motorul de views

ASP.NET MVC: Model


Business objects
POCO: Plain Old C# Objects
Entity Framework
LINQ to SQL

ASP.NET MVC:
hands-on lab
Un laborator intensiv despre ASP.NET MVC
organizat de echipa Microsoft Student Partners

MVC: Implementri
alternative
MonoRail
Maverick.NET
PureMVC
Spring Framework .NET

Resurse
http://asp.net/mvc/situl oficial
http://

msdn.microsoft.com/en-us/aa336522.aspx
MSDN
http://weblogs.asp.net/Scottgu/Scott
Guthrie

Resurse (2)
http://fmi.unibuc.ro/msp/Echipa MSP @ fmi,

unibuc
radu-mihail.obada@student-partners.com (eu)

Fin
Mulumesc!

S-ar putea să vă placă și