asp.net mvc (1.0)

24
ASP.NET MVC (1.0) Introducere în dezvoltarea aplicațiilor web Radu-Mihail Obadă radu-mihail.obada @ student-partners

Upload: maxwell-jordan

Post on 02-Jan-2016

52 views

Category:

Documents


7 download

DESCRIPTION

ASP.NET MVC (1.0). Introducere în dezvoltarea aplicațiilor web. Radu-Mihail Obadă radu-mihail.obada @ student-partners.com. Aplicație web?. „O aplicație care este accesată prin intermediul unui navigator web peste o rețea precum Internet sau intranet.” [ Wikipedia ]. Model View Controller. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ASP.NET MVC (1.0)

ASP.NET MVC (1.0)Introducere în dezvoltarea aplicațiilor web

Radu-Mihail Obadă [email protected]

Page 2: ASP.NET MVC (1.0)

Aplicație web?„O aplicație care este accesată prin

intermediul unui navigator web peste o rețea precum Internet sau intranet.” [Wikipedia]

Page 3: ASP.NET MVC (1.0)

Model View Controller„Șablon arhitectural folosit în ingineria

software. Izolează logica aplicației (business logic) de prezentare și input.” [Wikipedia]

1979, Smalltalk la Xerox PARCMai multe arome: Model View Presenter

(.NET Framework), „model-view-controller-connector” (XForms) etc.

Page 4: ASP.NET MVC (1.0)

MVC în imagini

Page 5: ASP.NET MVC (1.0)

MVC—pe webFoarte popular pentru dezvoltarea aplicațiilor

web.În special în frameworks agile (Spring Web

MVC, Ruby on Rails etc.)Permite o separare excelentă a

responsabilităților (concerns) pentru aplicații distribuite n-tier, i. e. cele mai multe aplicații web.

Page 6: ASP.NET MVC (1.0)

MVC: ModelReprezentarea datelor specifice domeniului.Domain logic structurează datele, dându-le

înțeles.Modelul nu este data access layer, dar DAL

se subînțelege că e încapsulat de model.

Page 7: ASP.NET MVC (1.0)

MVC: ViewPrezintă, într-un mod sau altul, modelul.Pot exista mai multe views pentru același

model.De cele mai multe ori, reprezintă interfața cu

utilizatorul.

Page 8: ASP.NET MVC (1.0)

MVC: ControllerLiantul MVC.Primește și gestionează interacțiunea cu

utilizatorul (input).Apelează modelul.Inițiază un răspuns.

Page 9: ASP.NET MVC (1.0)

Exemplu arhitecturalModel: business objects care implementează

business rules, i. e. Persoană, Contact etc.View: (X)HTML, generat de aplicație plecând

de la datele din model.Controller: tratează cererile HTTP GET și

HTTP POST, le direcționează către business objects și prezintă views.

Page 10: ASP.NET MVC (1.0)

Microsoft: evoluția platformei webPrograme CGI și filtre ISAPI (anii ‘90) pentru

IIS.Active Server Pages (sfârșitul anilor ‘90):

sistem de șabloane (templating), cod și mark-up în același loc, dynamic scripting

ASP.NET (2002): model de programare bazat pe evenimente; postbacks și viewstate

Page 11: ASP.NET MVC (1.0)

ASP.NET MVC: de ce? (1)MVCDecuplarea straturilor.Separarea responsabilităților (concerns).Test-Driven Design.

Page 12: ASP.NET MVC (1.0)

ASP.NET MVC: de ce? (2)Control integral asupra codului HTML.Motoare multiple pentru prezentare (view

engines).URL-uri curate.Ușurință REST.

Page 13: ASP.NET MVC (1.0)

ASP.NET MVC versus Web FormsASP.NET MVC ASP.NET Web FormsModel, View, ControllerTest-Driven DesignControl total al HTML-

ului generatInterfețe REST pentru

ULR-uriSe integrează excelent

cu jQuery sau ExtJSPermite o abordare agilă

Model bazat pe evenimente

Mediu RADControale server-side

puterniceAscunde problema

păstrării stăriiEcosistem foarte bogat,

în special pentru controale

Foarte ușor de abordat de dezvoltatorii desktop

Page 14: ASP.NET MVC (1.0)

Cum se întâmplă? (1)1) UrlRoutingModule->Route.2) Route->IRouteHandler.3) IRouteHandler->MvcHandler.4) MvcHandler->Controller.

Page 15: ASP.NET MVC (1.0)

Cum se întâmplă? (2)Stadiu Detalii

Primește prima cerere pentru aplicație

Global.asax, Route sunt adăugate la RouteTable

Routing UrlRoutingModule->(…)->Controller

MVC Request Handler MvcRouteHandler->MvcHandler

Se creează Controller MvcHandler->IControllerFactory

Se execută Controller Controller->Execute()

Se invocă o acțiune Controller->Action()

Se execută rezultatul View

Page 16: ASP.NET MVC (1.0)

ASP.NET MVC: RoutingMapează un URL pe o acțiune a unui

controllerWeb.config (nu) sau Global.asaxRouteTable, se parcurge de sus în josParametrizatePot adăuga constrângeri

Page 17: ASP.NET MVC (1.0)

ASP.NET MVC: ControllersO simplă clasăPot deriva din System.Web.Mvc.ControllerMetodele sunt acțiuniAcțiunile întorc un rezultat:

viewnimicconținut…

Orice altceva este convertit în text

Page 18: ASP.NET MVC (1.0)

ASP.NET MVC: ViewsMotorul implicit pentru views este…

WebForms!Nu mai am controale server (<asp:… />)Script blocks: <% %>HTML Helpers: funcționalități de-a gata

pentru bucățile de HTML utilizate desPot avea views parțialePot schimba motorul de views

Page 19: ASP.NET MVC (1.0)

ASP.NET MVC: ModelBusiness objectsPOCO: Plain Old C# ObjectsEntity FrameworkLINQ to SQL…

Page 20: ASP.NET MVC (1.0)

ASP.NET MVC: hands-on lab

Un laborator intensiv despre ASP.NET MVC organizat de echipa Microsoft Student

Partners

Page 21: ASP.NET MVC (1.0)

MVC: Implementări alternativeMonoRailMaverick.NETPureMVCSpring Framework .NET

Page 22: ASP.NET MVC (1.0)

Resursehttp://asp.net/mvc/—situl oficialhttp://

msdn.microsoft.com/en-us/aa336522.aspx—MSDN

http://weblogs.asp.net/Scottgu/—Scott Guthrie

Page 23: ASP.NET MVC (1.0)

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

fmi, [email protected]

(eu)

Page 24: ASP.NET MVC (1.0)

FinMulțumesc!