Top Banner
Asp.Net MVC 2 Visual Studio 2010 Community Launch Tour Andrea Balducci http://www.ienumerable.it http://twitter.com/andreabalducci
28

Asp.Net MVC 2 :: VS 2010 Community Tour

Dec 06, 2014

Download

Technology

Andrea Balducci

Presentazione di MVC2 per il community tour del lancio di Visual Studio 2010. Tappa di Perugia
DotNetUmbria + DotNetMarche
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Asp.Net MVC 2 :: VS 2010 Community Tour

Asp.Net MVC 2Visual Studio 2010 Community Launch Tour

Andrea Balduccihttp://www.ienumerable.ithttp://twitter.com/andreabalducci

Page 2: Asp.Net MVC 2 :: VS 2010 Community Tour

Come funziona MVC?

Request

Controller

Response

Model

View

Asp.Net MVC

viene passato alla

Identifica ed istanzia

prepara il

determina la

genera la

Inviata al server

http://msdn.microsoft.com/en-us/library/dd381412.aspx

Page 3: Asp.Net MVC 2 :: VS 2010 Community Tour

Piattaforma di sviluppo

Download separato

http://bit.ly/bg04yY

Compreso

Page 4: Asp.Net MVC 2 :: VS 2010 Community Tour

Framework

http://www.asp.net/mvc/

Asp.Net MVC2 è disponibile dalla versione 3.5 sp1 di Microsoft .Net Framework.

•Non è parte integrante del framework

•Installabile tramite Web Platform Installer

•Bin deployable

•Standalone installer

Page 5: Asp.Net MVC 2 :: VS 2010 Community Tour

Open Sourced

http://aspnet.codeplex.com/releases/view/41742

OSI-compliant open-source license

Page 6: Asp.Net MVC 2 :: VS 2010 Community Tour

Routing

http://bit.ly/9gyPkM

In Asp.Net 4 il sistema di routing è utilizzabile anche per applicazioni webforms.

Asp.Net MVC 1/2

WebForms 4

Page 7: Asp.Net MVC 2 :: VS 2010 Community Tour

Areas

http://msdn.microsoft.com/en-us/library/ee671793.aspx

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.

Page 8: Asp.Net MVC 2 :: VS 2010 Community Tour

Areas - Registrazione

http://msdn.microsoft.com/en-us/library/ee671793.aspx

Classe <AreaName>AreaRegistration:• Nome dell’area• Routes

Page 9: Asp.Net MVC 2 :: VS 2010 Community Tour

Areas - Routes

http://msdn.microsoft.com/en-us/library/ee671793.aspx

Registrare ogni route con il relativo namespace per evitare collisioni

Page 10: Asp.Net MVC 2 :: VS 2010 Community Tour

Areas - Routes

http://msdn.microsoft.com/en-us/library/ee671793.aspx

Registrazione con named argument (C# 4)

Registrazione classica

Page 11: Asp.Net MVC 2 :: VS 2010 Community Tour

Areas - ActionLink

http://msdn.microsoft.com/en-us/library/ee671793.aspx

•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}

Page 12: Asp.Net MVC 2 :: VS 2010 Community Tour

{Areas – Demo}

Page 13: Asp.Net MVC 2 :: VS 2010 Community Tour

Strongly-Typed UI Helpers

http://bit.ly/8ZUEom

Permettono l’utilizzo di lambda expressions per indicare la proprietà del model

Vantaggi•Refactoring facilitato•Messaggi di errore a compile time (se è abilitata la compilazione delle views)•Intellisense

Page 14: Asp.Net MVC 2 :: VS 2010 Community Tour

Data Annotations

http://bit.ly/L5J9

Permettono di decorare il modello dati dell’applicazione tramite attributiE’possibile, per esempio, indicare che un valore è obbligatorio o che una stringa richiede un editor multiline

Page 15: Asp.Net MVC 2 :: VS 2010 Community Tour

Data Annotations

http://bit.ly/1x4TSC

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))]

Page 16: Asp.Net MVC 2 :: VS 2010 Community Tour

ValidazioneLa validazione è applicata su tutto il modello, indipendentemente dalle proprietà presenti nella form inviata al server.

Può far uso delle DataAnnotations - [Required] - [Range] - [StringLength] - [RegularExpression]

Page 17: Asp.Net MVC 2 :: VS 2010 Community Tour

ValidazioneUna proprietà non nullable è implicitamente required.Indicare comunque [Required] permette di customizzare il messaggio di errore.

Page 18: Asp.Net MVC 2 :: VS 2010 Community Tour

Validazione Client Side

http://bit.ly/5WILHI

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 necessari2) chiamare Html.EnableClientSideValidation()

Page 19: Asp.Net MVC 2 :: VS 2010 Community Tour

{Validazione– Demo}

Page 20: Asp.Net MVC 2 :: VS 2010 Community Tour

Dynamic Scaffolding

http://bit.ly/3hPK7H

E’ possibile autogenerare le form di inserimento e visualizzazione dati utilizzando Html.EditorForModel() e Html.DisplayForModel()

Page 21: Asp.Net MVC 2 :: VS 2010 Community Tour

Templating

http://bit.ly/3Vwjvj

Il codice HTML generato dagli helper Html.DisplayFor e Html.EditFor può essere customizzato tramite templates.Il template è una partial view che ha per nome il tipo del dato da rappresentare ed è memorizzato nelle cartelle EditorTemplates o DisplayTemplates

Page 22: Asp.Net MVC 2 :: VS 2010 Community Tour

{Scaffolding – Demo}

Page 23: Asp.Net MVC 2 :: VS 2010 Community Tour

RenderAction

http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx

L’introduzione dell’helper Html.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]

Page 24: Asp.Net MVC 2 :: VS 2010 Community Tour

{RenderAction – Demo}

Page 25: Asp.Net MVC 2 :: VS 2010 Community Tour

Controller Asincroni

http://msdn.microsoft.com/en-us/library/ee728598.aspx

I controller asincroni permettono di ottimizzare l’utilizzo delle risorse del webserver.

•Le operazioni long running tengono impegnati i thread.•I thread associati all’application pool sono limitati•Thread Starvation -> 503 Server too busy

L’utilizzo dei controller asincroni permette di delegare l’elaborazione ad un thread secondario, liberando il thread di elaborazione della request.

Page 26: Asp.Net MVC 2 :: VS 2010 Community Tour

Controller Asincroni

http://msdn.microsoft.com/en-us/library/ee728598.aspx

Page 27: Asp.Net MVC 2 :: VS 2010 Community Tour

{AsyncController – Demo}

Page 28: Asp.Net MVC 2 :: VS 2010 Community Tour

© 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.

 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.

Slide e demo su