Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introducere în dezvoltarea aplicațiilor web

Similar presentations


Presentation on theme: "Introducere în dezvoltarea aplicațiilor web"— Presentation transcript:

1 Introducere în dezvoltarea aplicațiilor web
ASP.NET MVC (1.0) Introducere în dezvoltarea aplicațiilor web Radu-Mihail Obadă

2 Aplicație web? „O aplicație care este accesată prin intermediul unui navigator web peste o rețea precum Internet sau intranet.” [Wikipedia]

3 Model View Controller „Șablon arhitectural folosit în ingineria software. Izolează logica aplicației (business logic) de prezentare și input.” [Wikipedia] 1979, Smalltalk la Xerox PARC Mai multe arome: Model View Presenter (.NET Framework), „model-view-controller-connector” (XForms) etc.

4 MVC în imagini

5 MVC—pe web Foarte 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.

6 MVC: Model Reprezentarea 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.

7 MVC: View Prezintă, î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.

8 MVC: Controller Liantul MVC.
Primește și gestionează interacțiunea cu utilizatorul (input). Apelează modelul. Inițiază un răspuns.

9 Exemplu arhitectural Model: 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.

10 Microsoft: evoluția platformei web
Programe 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

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

12 ASP.NET MVC: de ce? (2) Control integral asupra codului HTML.
Motoare multiple pentru prezentare (view engines). URL-uri curate. Ușurință REST.

13 ASP.NET MVC versus Web Forms
ASP.NET Web Forms Model, View, Controller Test-Driven Design Control total al HTML-ului generat Interfețe REST pentru ULR-uri Se integrează excelent cu jQuery sau ExtJS Permite o abordare agilă Model bazat pe evenimente Mediu RAD Controale server-side puternice Ascunde problema păstrării stării Ecosistem foarte bogat, în special pentru controale Foarte ușor de abordat de dezvoltatorii desktop

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

15 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

16 ASP.NET MVC: Routing Mapează un URL pe o acțiune a unui controller
Web.config (nu) sau Global.asax RouteTable, se parcurge de sus în jos Parametrizate Pot adăuga constrângeri

17 ASP.NET MVC: Controllers
O simplă clasă Pot deriva din System.Web.Mvc.Controller Metodele sunt acțiuni Acțiunile întorc un rezultat: view nimic conținut Orice altceva este convertit în text

18 ASP.NET MVC: Views Motorul 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 des Pot avea views parțiale Pot schimba motorul de views

19 ASP.NET MVC: Model Business objects POCO: Plain Old C# Objects
Entity Framework LINQ to SQL

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

21 MVC: Implementări alternative
MonoRail Maverick.NET PureMVC Spring Framework .NET

22 Resurse http://asp.net/mvc/—situl oficial
Guthrie

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

24 Fin Mulțumesc!


Download ppt "Introducere în dezvoltarea aplicațiilor web"

Similar presentations


Ads by Google