1. Asp.Net MVC 2 Visual Studio 2010 Community Launch Tour Andrea Balducci http://www.ienumerable.it http://twitter.com/andreabalducci
2. Come funziona MVC? Inviata al server Request Asp.Net MVC Identifica ed istanzia Controller prepara il Model determina la viene passato alla genera la Response View http://msdn.microsoft.com/en-us/library/dd381412.aspx
9. Routing In Asp.Net 4 il sistema di routing è utilizzabile anche per applicazioni webforms. Asp.Net MVC 1/2 WebForms 4 http://bit.ly/9gyPkM
10. Areas Organizzazione dei progetti in aree funzionali In ogni area è possibile definire controllers, models e views Le aree vanno attivate in fasi di startup dell’applicazione web. http://msdn.microsoft.com/en-us/library/ee671793.aspx
22. DataAnnotations Permettono di decorare il modello dati dell’applicazione tramite attributi E’possibile, per esempio, indicare che un valore è obbligatorio o che una stringa richiede un editormultiline http://bit.ly/L5J9
23. DataAnnotations Q: Perché MultilineText e non TextArea? R: DataAnnotations è indipendente dal framework della UI Q: Se è indipendente dalla UI come viene gestita da MVC? R: DataAnnotationsModelMetadataProvider DataAnnotationsModelValidatorProvider Q: Se il mio model è autogenerato come posso annotarlo? R: [MetadataType(typeof(MyModelMetadata))] http://bit.ly/1x4TSC
24. Validazione La validazione è applicata su tutto il modello, indipendentemente dalle proprietà presenti nella form inviata al server. Può far uso delle DataAnnotations - [Required] - [Range] - [StringLength] - [RegularExpression]
25. Validazione Una proprietà non nullable è implicitamente required. Indicare comunque [Required] permette di customizzare il messaggio di errore.
26. Validazione Client Side MVC2 supporta nativamente la validazione client side (qualora javascript sia abilitato) sfruttando gli stessi meccanismi definiti per la validazione server side. Per attivare la validazione client-side:1) includere gli necessari script necessari 2) chiamare Html.EnableClientSideValidation() http://bit.ly/5WILHI
28. DynamicScaffolding E’ possibile autogenerare le form di inserimento e visualizzazione dati utilizzando Html.EditorForModel() e Html.DisplayForModel() http://bit.ly/3hPK7H
29. Templating Il codice HTML generato dagli helperHtml.DisplayFor e Html.EditFor può essere customizzato tramite templates. Il template è una partialview che ha per nome il tipo del dato da rappresentare ed è memorizzato nelle cartelle EditorTemplates o DisplayTemplates http://bit.ly/3Vwjvj
31. RenderAction L’introduzione dell’helperHtml.RenderAction rende possibile la componentizzazione dell’applicazione. In questo modo anche le logiche di business diventano riutilizzabili eliminando duplicazioni di codice E’ possibile limitare l’utilizzo di una determinata action alla sola RenderAction (evitando così di esporla tramite url) decorando l’action con [ChildActionOnly] http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx
35. ThreadStarvation -> 503 Server toobusyL’utilizzo dei controller asincroni permette di delegare l’elaborazione ad un thread secondario, liberando il thread di elaborazione della request. http://msdn.microsoft.com/en-us/library/ee728598.aspx