Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Asp.Net MVC 2<br />Visual Studio 2010 Community Launch Tour<br />Andrea Balducci<br />http://www.ienumerable.it<br />http:...
Come funziona MVC?<br />Inviata al server<br />Request<br />Asp.Net MVC<br />Identifica ed istanzia<br />Controller<br />p...
Piattaforma di sviluppo<br />Download separato<br />http://bit.ly/bg04yY<br />Compreso<br />
Framework<br />Asp.Net MVC2 è disponibile dalla versione 3.5 sp1 di Microsoft .Net Framework.<br /><ul><li>Non è parte int...
Installabile tramite Web PlatformInstaller
Bin deployable
Standaloneinstaller</li></ul>http://www.asp.net/mvc/<br />
Open Sourced<br />OSI-compliantopen-sourcelicense<br />http://aspnet.codeplex.com/releases/view/41742<br />
Routing<br />In Asp.Net 4 il sistema di routing è utilizzabile anche per applicazioni webforms.<br />Asp.Net MVC 1/2<br />...
Areas<br />Organizzazione dei progetti in aree funzionali<br />In ogni area è possibile definire controllers, models e vie...
Areas - Registrazione<br />Classe <AreaName>AreaRegistration:<br /><ul><li>Nome dell’area
Routes</li></ul>http://msdn.microsoft.com/en-us/library/ee671793.aspx<br />
Areas - Routes<br />Registrare ogni route con il relativo namespace per evitare collisioni<br />http://msdn.microsoft.com/...
Areas - Routes<br />Registrazione con namedargument (C# 4)<br />Registrazione classica<br />http://msdn.microsoft.com/en-u...
Areas - ActionLink<br /><ul><li>Per “entrare” in un’area è necessario indicarne il nome
Se l’area non è indicata la default è l’area corrente.
Per tornare alla “root” indicare {area=String.Empty}</li></ul>http://msdn.microsoft.com/en-us/library/ee671793.aspx<br />
{Areas – Demo}<br />
Strongly-Typed UI Helpers<br />Permettono l’utilizzo di lambda expressions per indicare la proprietà del model<br />Vantag...
Messaggi di errore a compile time (se è abilitata la compilazione delle views)
Intellisense</li></ul>http://bit.ly/8ZUEom<br />
DataAnnotations<br />Permettono di decorare il modello dati dell’applicazione tramite attributi<br />E’possibile, per esem...
DataAnnotations<br />Q: Perché MultilineText e non TextArea?<br />R: DataAnnotations è indipendente dal framework della UI...
Validazione<br />La validazione è applicata su tutto il modello, indipendentemente dalle proprietà presenti nella form inv...
Validazione<br />Una proprietà non nullable è implicitamente required.<br />Indicare comunque [Required] permette di custo...
Validazione Client Side<br />MVC2 supporta nativamente la validazione client side (qualora javascript sia abilitato) sfrut...
{Validazione– Demo}<br />
DynamicScaffolding<br />E’ possibile autogenerare le form di inserimento e visualizzazione dati utilizzando Html.EditorFor...
Upcoming SlideShare
Loading in …5
×

Asp.Net MVC 2 :: VS 2010 Community Tour

1,387 views

Published on

Presentazione di MVC2 per il community tour del lancio di Visual Studio 2010. Tappa di Perugia
DotNetUmbria + DotNetMarche

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Asp.Net MVC 2 :: VS 2010 Community Tour

  1. 1. Asp.Net MVC 2<br />Visual Studio 2010 Community Launch Tour<br />Andrea Balducci<br />http://www.ienumerable.it<br />http://twitter.com/andreabalducci<br />
  2. 2. Come funziona MVC?<br />Inviata al server<br />Request<br />Asp.Net MVC<br />Identifica ed istanzia<br />Controller<br />prepara il<br />Model<br />determina la<br />viene passato alla<br />genera la<br />Response<br />View<br />http://msdn.microsoft.com/en-us/library/dd381412.aspx<br />
  3. 3. Piattaforma di sviluppo<br />Download separato<br />http://bit.ly/bg04yY<br />Compreso<br />
  4. 4. Framework<br />Asp.Net MVC2 è disponibile dalla versione 3.5 sp1 di Microsoft .Net Framework.<br /><ul><li>Non è parte integrante del framework
  5. 5. Installabile tramite Web PlatformInstaller
  6. 6. Bin deployable
  7. 7. Standaloneinstaller</li></ul>http://www.asp.net/mvc/<br />
  8. 8. Open Sourced<br />OSI-compliantopen-sourcelicense<br />http://aspnet.codeplex.com/releases/view/41742<br />
  9. 9. Routing<br />In Asp.Net 4 il sistema di routing è utilizzabile anche per applicazioni webforms.<br />Asp.Net MVC 1/2<br />WebForms 4<br />http://bit.ly/9gyPkM<br />
  10. 10. Areas<br />Organizzazione dei progetti in aree funzionali<br />In ogni area è possibile definire controllers, models e views<br />Le aree vanno attivate in fasi di startup dell’applicazione web.<br />http://msdn.microsoft.com/en-us/library/ee671793.aspx<br />
  11. 11. Areas - Registrazione<br />Classe <AreaName>AreaRegistration:<br /><ul><li>Nome dell’area
  12. 12. Routes</li></ul>http://msdn.microsoft.com/en-us/library/ee671793.aspx<br />
  13. 13. Areas - Routes<br />Registrare ogni route con il relativo namespace per evitare collisioni<br />http://msdn.microsoft.com/en-us/library/ee671793.aspx<br />
  14. 14. Areas - Routes<br />Registrazione con namedargument (C# 4)<br />Registrazione classica<br />http://msdn.microsoft.com/en-us/library/ee671793.aspx<br />
  15. 15. Areas - ActionLink<br /><ul><li>Per “entrare” in un’area è necessario indicarne il nome
  16. 16. Se l’area non è indicata la default è l’area corrente.
  17. 17. Per tornare alla “root” indicare {area=String.Empty}</li></ul>http://msdn.microsoft.com/en-us/library/ee671793.aspx<br />
  18. 18. {Areas – Demo}<br />
  19. 19. Strongly-Typed UI Helpers<br />Permettono l’utilizzo di lambda expressions per indicare la proprietà del model<br />Vantaggi<br /><ul><li>Refactoringfacilitato
  20. 20. Messaggi di errore a compile time (se è abilitata la compilazione delle views)
  21. 21. Intellisense</li></ul>http://bit.ly/8ZUEom<br />
  22. 22. DataAnnotations<br />Permettono di decorare il modello dati dell’applicazione tramite attributi<br />E’possibile, per esempio, indicare che un valore è obbligatorio o che una stringa richiede un editormultiline<br />http://bit.ly/L5J9<br />
  23. 23. DataAnnotations<br />Q: Perché MultilineText e non TextArea?<br />R: DataAnnotations è indipendente dal framework della UI<br />Q: Se è indipendente dalla UI come viene gestita da MVC?<br />R: DataAnnotationsModelMetadataProvider<br />DataAnnotationsModelValidatorProvider<br />Q: Se il mio model è autogenerato come posso annotarlo?<br />R: [MetadataType(typeof(MyModelMetadata))]<br />http://bit.ly/1x4TSC<br />
  24. 24. Validazione<br />La validazione è applicata su tutto il modello, indipendentemente dalle proprietà presenti nella form inviata al server.<br />Può far uso delle DataAnnotations - [Required] - [Range]<br /> - [StringLength]<br /> - [RegularExpression]<br />
  25. 25. Validazione<br />Una proprietà non nullable è implicitamente required.<br />Indicare comunque [Required] permette di customizzare il messaggio di errore.<br />
  26. 26. Validazione Client Side<br />MVC2 supporta nativamente la validazione client side (qualora javascript sia abilitato) sfruttando gli stessi meccanismi definiti per la validazione server side.<br />Per attivare la validazione client-side:1) includere gli necessari script necessari<br />2) chiamare Html.EnableClientSideValidation()<br />http://bit.ly/5WILHI<br />
  27. 27. {Validazione– Demo}<br />
  28. 28. DynamicScaffolding<br />E’ possibile autogenerare le form di inserimento e visualizzazione dati utilizzando Html.EditorForModel() e Html.DisplayForModel()<br />http://bit.ly/3hPK7H<br />
  29. 29. Templating<br />Il codice HTML generato dagli helperHtml.DisplayFor e Html.EditFor può essere customizzato tramite templates.<br />Il template è una partialview che ha per nome il tipo del dato da rappresentare ed è memorizzato nelle cartelle EditorTemplates o DisplayTemplates<br />http://bit.ly/3Vwjvj<br />
  30. 30. {Scaffolding – Demo}<br />
  31. 31. RenderAction<br />L’introduzione dell’helperHtml.RenderAction rende possibile la componentizzazione dell’applicazione.<br />In questo modo anche le logiche di business diventano riutilizzabili eliminando duplicazioni di codice<br />E’ possibile limitare l’utilizzo di una determinata action alla sola RenderAction (evitando così di esporla tramite url) decorando l’action con [ChildActionOnly]<br />http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx<br />
  32. 32. {RenderAction – Demo}<br />
  33. 33. Controller Asincroni<br />I controller asincroni permettono di ottimizzare l’utilizzo delle risorse del webserver.<br /><ul><li>Le operazioni long running tengono impegnati i thread.
  34. 34. I thread associati all’application pool sono limitati
  35. 35. ThreadStarvation -> 503 Server toobusy</li></ul>L’utilizzo dei controller asincroni permette di delegare l’elaborazione ad un thread secondario, liberando il thread di elaborazione della request.<br />http://msdn.microsoft.com/en-us/library/ee728598.aspx<br />
  36. 36. Controller Asincroni<br />http://msdn.microsoft.com/en-us/library/ee728598.aspx<br />
  37. 37. {AsyncController – Demo}<br />
  38. 38. Slide e demo su<br />© 2010 Microsoft Corporation. All rights reserved. Microsoft, Visual Studio, the Visual Studio logo, and [list other trademarks referenced] are trademarks of the Microsoft group of companies. <br /> <br />The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.  MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.<br />

×