asp.net mvc (1.0)

Post on 02-Jan-2016

52 Views

Category:

Documents

7 Downloads

Preview:

Click to see full reader

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

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„Ș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.

MVC în imagini

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.

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.

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.

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

ASP.NET MVC: hands-on lab

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

Partners

MVC: Implementări alternativeMonoRailMaverick.NETPureMVCSpring Framework .NET

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

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, unibucradu-mihail.obada@student-partners.com

(eu)

FinMulțumesc!

top related