La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

ASP.NET MVC Framework SO WHAT? Simone Chiaretta Solution Developer, Avanade 3 Aprile 2009.

Presentazioni simili


Presentazione sul tema: "ASP.NET MVC Framework SO WHAT? Simone Chiaretta Solution Developer, Avanade 3 Aprile 2009."— Transcript della presentazione:

1 ASP.NET MVC Framework SO WHAT? Simone Chiaretta Solution Developer, Avanade 3 Aprile 2009

2 Thanks to the Sponsors

3 Who the hell am I? Simone Chiaretta Lavoro per Avanade Italy Microsoft MVP ASP.NET Blogger – Fondatore di UGIALT.NET OpenSource developer Climber All Around Nice Guy

4 Agenda ASP.NET MVC vc ASP.NET WebForms Testing Using DI/IoC Validazione Componentizzazione Ajax - jQuery DataGrid MVC version PRG Pattern ASP.NET Futures T4 3

5 ASP.NET MVC vs ASP.NET WebForms

6 Facile! Usa solo ASP.NET MVC!

7 Testing

8 Dai Seriamente!

9 ASP.NET MVC vs ASP.NET WebForms This time for real

10 WebForms –Sviluppo RAD –Paradigma più simile allo sviluppo tradizionale client-side –Ottimo per prototipare –Controlli –Gestione automatica dello stato –Ecosistema di controlli di 3° parti Ma… –Può diventare inmantenibile –Codice HTML poco controllato –Più difficile separare le responsabilità 9

11 ASP.NET MVC –Miglior architettura dellapplicazione –Viste leggere (no codebehind) –Maggior controllo su HTML –Abilita uso di metodologie Agile (TDD) –ViewEngine alternativi Ma… –Maggior sforzo realizzativo 10

12 Elementi condivisi Routing Caching Ajax e jQuery Membership/Profile provider Form Authentication 11

13 Elementi per scegliere Il proprio gusto personale Intranet vs Internet Serve il controllo sul markup? Usiamo TDD o anche solo i Test? Abbiamo familiarità coi pattern? Abbiamo investito molto in controlli? 12

14 Decision Chart T4 e librerie accessorie possono aiutare Dynamic Data for MVC... sta arrivando

15 Testing

16 Altri esempi di test Testare strongly-typed view data –Assert.AreEqual(expected, ((BlogData) result.ViewData.Model).Titolo,…); Testare Redirect –var result = controller.Show(…) as RedirectResult; 15

17 [DEMO] Testing

18 Mocking HttpContext

19 [DEMO] Mocking HttpContext

20 Using DI/IoC

21 Cosè Dependency Injection 20

22 Cosè Dependency Injection BAD

23 Cosè Dependency Injection BETTER

24 Cosè Dependency Injection BUT

25 Inversion of Control With IoC

26 IoC inside ASP.NET MVC Estendi ControllerFactory Molti ControllerFactory già disponibili –Ninject –StructureMap –Spring –Unity –Windsor

27 IoC inside ASP.NET MVC with Ninject Global.asax eredita da NinjectHttpApplication Helper per configurare tutti i controller: –RegisterAllControllersIn(assemblyName);

28 [DEMO] NinjectControllerFactory

29 Validazione

30 Validazione in ASP.NET MVC Validazione Server-Side: out-of-the-box –ModelBinder –Data Annotations Validazione Client-Side: librerie esterne

31 [DEMO] server-side validation

32 Validazione in ASP.NET MVC Client side xVal Validation Toolkit Fluent Validation

33 xVal

34 [DEMO] Client-side validation

35 Componentizzazione

36 RenderPartial –Il controller deve sempre creare i dati di tutti i componenti RenderAction (futures) –Smells (la view chiama un controller) –Difficile da testare Custom HtmlHelpers –Ok per pezzi di HTML, ma non deve avere logica

37 Action Filtes Definiti come Attributi Permettono di eseguire codice –Durante la fase di Autenticazione –In caso di eccezione –Prima di una Action –Dopo una Action –Prima del rendering della view –Dopo il rendering della view Filtri core –Authorize –OutputCache

38 Action Filter + Render Partial Controller: –Esegue il codice per il suo main concern e genera il dato principale View: –Mostra loutput principale –Chiama le varie PartialViews Action Filters: –Caricano i dati per le partial views Partial views –Mostrano i dati caricati dagli Action Filters

39 [DEMO] Action Filter + Render Partial

40 Ajax - jQuery

41 ASP.NET MVC Ajax Ajax Helper JSONResult 40

42 Walkthrough Referenzia i file js Usa AjaxHelper –Ajax.BeginForm –Ajax.ActionLink Imposta le AjaxOptions –Confirm –LoadingElement –UpdateTargetId –OnBegin/OnComplete/OnSuccess/OnFailure 41

43 [DEMO] Ajax con ASP.NET MVC

44 ASP.NET MVC + jQuery jQuery è ufficialmente parte del framework –È supportato dal supporto tecnico –Intellisense 43

45 [DEMO] ASP.NET MVC + jQuery

46 DataGrid MVC version

47 jQuery powered –jqGrid

48 Post-Redirect-Get Pattern

49 PRG Pattern Cosa succede quando si fa refresh (back) dopo un submit? 48

50 PRG Pattern View invia i dati in POST Controller valida –Invia View con errori (POST) –Redirect in GET Pagina in GET mostra i risultati

51 PRG Pattern Mantra Never show pages in response to POST Always load pages using GET Navigate from POST to GET using REDIRECT

52 [DEMO] Post-Redirect-Get

53 ASP.NET MVC Futures

54 Futures Donut caching –Html.Substitute Render Action –Html.RenderAction Declarative Controls – Action Link with Lambdas – (c => c.About(), About")%> Strongly-typed helpers –Html.TextBoxFor(m => m.Title); Asynchronous controllers

55 Text Template Transformation Toolkit (aka T4)

56 T4 Text Template Transformation Toolkit Già gratis con VisualStudio Generano View e Controllers Globali: –C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC\CodeTem plates Per Progetto –\CodeTemplates

57 [DEMO] T4 + MVC Futures

58 Risorse su T4 erview-of-mvc-tools-features.aspx erview-of-mvc-tools-features.aspx -templates-a-quick-start-guide-for-asp-net-mvc- developers.aspx -templates-a-quick-start-guide-for-asp-net-mvc- developers.aspx

59 Beginning ASP.NET MVC Simone Chiaretta e Keyvan Nayyeri Rilascio: Luglio 2009 Già in prevendita su Amazon TOC: –MVC –Testing –And more...

60 Contatti – Simone Chiaretta MSN: Blog: –English: –Italiano: Twitter: 59

61 Q&A 60


Scaricare ppt "ASP.NET MVC Framework SO WHAT? Simone Chiaretta Solution Developer, Avanade 3 Aprile 2009."

Presentazioni simili


Annunci Google