1. Seminar ASP.NET MVC Gabriel Enea (developer la maxcode.ro, co-fondator al serviciului joobs.ro) Codecamp de toamnă la Iași // Codecamp.ro 19-21 nov 2009
2. Agenda Zilei Introducere în ASP.NET MVC prin exemple Rute, de la Iași la București cu ASP.NET MVC Model-View-Controller și ASP.NET MVC. AJAX e minunat în combinație cu ASP.NET MVC Magia testelor automate cu ASP.NET MVC
3. Gabriel Enea (developer la maxcode.ro, co-fondator al serviciului joobs.ro) Model-View-Controller și ASP.NET MVC. AJAX e minunatîncombinație cu ASP.NET MVC
6. IController Stă la baza implementării conceptului de Controller din ASP.NET MVC Definție: public interface IController { void Execute(RequestContextrequestContext); } Similar cu interfața IHttpHandler IHttpHandler.ProcessRequest(HttpContext context).
7. Laborator 1 Exercițiu: Adaugare zonă “Jobs” Vezi exercițiul: 03 - AddJobsArea.txt Scop: Adăugarea de Areas & Controllers.
8. Clasa ControllerBase Clasă abstractă care implementează IController Suport pentru transferul datelor catreView TempData ViewData obiectul ControllerContext, context specific MVC pentru cereri similar cu obiectul HttpContext pentru ASP.NET
9. Clasa Controller Stă la baza tuturor controller-elor din ASP.NET MVC Toate metodele publice dintr-o clasă care moștenesc clasa Controller devin metode acțiuni. Implementează abilitatea de a converti acțiunile în apeluri de metode.
10. ActionResult Definiție: public abstract classActionResult { public abstract void ExecuteResult( ControllerContext context); } Implementează “Command Pattern”. Încapsulează rezultatul invocării unei acțiuni dintr-un controller.
12. Invocarea acțiunilor Rutele nu mapează nimic către acțiunile dintr-un controller. Rutele populează o instanță RouteData pe care o trimit Controller-ului. clasa Controller este responsabilă cu invocarea acțiunilor, mai direct clasa ControllerActionInvoker.
13. Invocarea acțiunilor ControllerActionInvoker Localizează metoda acțiune pentru apel. Mapează datele din RouteData și datele cererii HTTP (Request.Form, Request.QueryString) după nume către parametrii acțiunii. Invocă acțiunile și filtrele sale. Apelează metoda ExecuteRequest pentru obiectul ActionResult returnat de metoda acțiune.
14. Views Responsabile cu construirea interfeței utilizator către aplicație. Trimiterea datelor din Controller către View se face prin proprietatea ViewData (typeof(ViewDataDictionary)). classWebFormViewEngine .. – reprezintă motorul de View-uri implicit în ASP.NET MVC Moștenesc clasa ViewPage sau ViewPage<T>.
15. HTML Helpers clasaViewPage are o propritate Html de tipulHtmlHelper HtmlHelperactionează ca un punct de conexiune către metodele extensii.
16. HTML Helpers Exemple: Html.ActionLink, Html.RouteLink, Html.BeginForm, Html.Encode, Html.Hidden, Html.DropDownList, Html.ListBox, …, Html.TextBox, Html.RenderPartial, Html.ValidationMessage, Html.ValidationSummary Html.RenderAction (apărut în ASP.NET MVC 2)
18. Laborator 2 Exerciții: 04 - Homepage.txt05 - Job Details.txt 06 - List jobs by category.txt Scop: Să vedem cum o acțiune determină selecția unui view, cum se afișează datele în view, cum se trimite modelul de date la view.
19. AJAX Site-ul tău e COOL? Are funcționalități AJAX? E Web 2.0? Microsoft ASP.NET AJAX jQuery
20. De ce AJAX? Reduce încărcarea pe server Randează parțial conținut HTML Experiența utilizatorului e îmbunătățită Este asincron! Dar, există și motive contrare AJAX…
22. Model Binders Permite maparea automată a datelor de la tipuri simple la tipuri complexe. UpdateModel<T> , extensiepentrumapare date. Exemplu: [AcceptVerbs(HttpVerbs.Post)] publicActionResult Edit(Job job) {// … }
23. Laborator 4 Exercițiu: Implementareaformularului de publicareanunț cu afisare anunțuri. 08 - PublishJobs.txt Scop: întelegerea conceptului de View - colectare date.
24. Despre ce n-am vorbit! Validation Templates Security (Authentication & Authorization) ActionFilters HandlingExceptions P.s. mă întreb dacă va fi timp, dacă nu, vă rămâne temă pentru acasă
26. Gabriel Enea (developer la maxcode.ro, co-fondator al serviciului joobs.ro) Model-View-Controller și ASP.NET MVC. AJAX e minunatîncombinație cu ASP.NET MVC
28. Resurse ASP.NET MVC codeplex.com/aspnet (Surse publice) www.asp.net/mvc (Tutoriale video, Quickstarts) weblogs.asp.net/scottgu/archive/tags/MVC/ (Articole, noutati ASP.NET MVC + exempleutilizare, byScottGu) Directorul /Docs pus la dispoziție în cadrul training-ului. Book: Professional ASP.NET MVC 1.0(Rob Conery, Scott Hanselman, PhilHaack, ScottGuthrie) ASP.NET MVC Training Kit (http://tinyurl.com/yh7muf) Notă: acestemateriale au stat la bazainformaţiilor din sesiunile seminarului ASP.NET MVC.
29. Seminar ASP.NET MVC Gabriel Enea (developer la maxcode.ro, co-fondator al serviciului joobs.ro)Blog: http://gabrielenea.blogspot.com Microblog: http://www.twitter.com/dotnet18 Email: gabriel.enea@joobs.ro Codecamp de toamnă la Iași // Codecamp.ro 19-21 nov 2009