novità di asp.net 4.0

36
Asp.NET 4.0 Ricci Gian Maria

Upload: gian-maria-ricci

Post on 26-May-2015

1.084 views

Category:

Technology


2 download

DESCRIPTION

Sessione del workshop DotNetMarche+DotDotNet+DotNetUmbria incentrata sulle novità dell'ambiente Asp.NET 4.0

TRANSCRIPT

Page 1: Novità di Asp.Net 4.0

Asp.NET 4.0

Ricci Gian Maria

Page 2: Novità di Asp.Net 4.0

Agenda

o Novità di Asp.NET 4.0o jQueryo Microsoft Ajaxo MVC2

Page 3: Novità di Asp.Net 4.0

Autorun

o La prima richiesta effettuata ad una applicazione è lenta perchè il sistema deve inizializzare l’applicazione stessa

o IIS 7.5 permette di specificare l’application pool ed il site per effettuare un autostart

First Request

App Start

Response

Page 4: Novità di Asp.Net 4.0

Autorun - applicationHost.config o Tutto quello che si deve fare è

configurare il file applicationHost.config

o <sites> <site name="MySite" id="1"> <application path="/" preloadEnabled="true" preloadProvider="PrewarmMyCache" > </application> </site> </sites>

o È anche possibile implementare l’interfaccia IProcessHostPreloadClient per eseguire codice custom durante l’inizializzazione

Page 5: Novità di Asp.Net 4.0

Html Encodingo Per ragioni di sicurezza l’output HTML

deve essere codificato con Html-Encoded

o In ASP.NET 4.0 esiste una nuova sintassi<%: CodeExpression %>

o È anche possibile utilizzare altre librerie di html-encoding, Es. AntiXss ACE libraryo Ereditando dalla classe base HTTPEncodero Registrando la classe nel web.configo <system.web>

<httpRuntime encoderType="AntiXssEncoder, AssemblyName"/>

o La classe HtmlString serve invece ad indicare che il contenuto non deve essere sottoposto ad encoding

Page 6: Novità di Asp.Net 4.0

ClientIdMode

o Uno dei problemi “storici” di asp.net è la difficoltà di conoscere l’id dei controlli nelle pagine in caso di controlli nested

o AspNet 4.0 introduce un nuovo attributo: ClientIdModeo AutoId: comportamento standardo Static: l’id non viene modificato con il

nome dei controlli parent.o Predictable: usato nel DataBound

assieme all’attributo ClientIDRowSuffix o Inherit: eredita la modalità del padre

Page 7: Novità di Asp.Net 4.0

Smart Web.config

o Gestione intelligente del web.configo Il web.config ha un ulteriore file

correlato per ogni configurazione (Es. Web.Debug.config)

o Permette di effettuare trasformazioni per la configurazione prescelta durante la pubblicazione del sito

Page 8: Novità di Asp.Net 4.0

Smart Web.configo Le configurazioni figlie sono

trasformazioni del file principaleo In questo modo vengono specificati

solamente i cambiamenti rispetto al file di configurazione principale.

<appSettings> <add key="MyValue" value="PREPRODUZIONE" xdt:Transform="Replace" xdt:Locator="Match(key)"/> </appSettings>

Page 9: Novità di Asp.Net 4.0

Deploy

o Il comando “publish” ora permette una vera pubblicazione con diverse tecnologieo Web Deployo FTPo File Systemo FPSE (Front Page Server Extension)

o Web Packages – creazione di un setup con:o Tutto il contenuto dell’applicazione

asp.neto Impostazioni IIS, database SQLo Certificati

Page 10: Novità di Asp.Net 4.0

Es. Deploy Ftp

o Specificando l’indirizzo dove si vuole deployare il sito e le credenziali viene automaticamente contattato l’ftp ed eseguito il deploy

Connecting to ftp://ftp.nablasoft.com/nablasoft.com/temp/testdeploy...

Transformed Web.config using Web.Debug.config into obj\Debug\TransformWebConfig\transformed\Web.config.

Copying all files to temporary location below for package/publish:obj\Debug\Package\PackageTmp.Publishing folder /...Publishing folder Account...Publishing folder bin...Publishing folder Scripts...

Page 11: Novità di Asp.Net 4.0

Altre funzionalità

o Intellisense migliorato per javascripto Snippets che aiutano l’editing diretto

sul file di codiceo Il designer rispetta maggiormente

l’html che viene generato (Front Page Syndrome)

o CSS 2.1 compliance per il designero I controlli renderizzano XHTML Strict

1.0

Page 12: Novità di Asp.Net 4.0

Altre funzionalità

o È possibile specificare la lunghezza massima delle url (prima limitate a 260)o <httpRuntime maxQueryStringLength=“xx”

maxRequestLength=“yyy”

o Attributo RenderOuterTable per ChangePassword, Login, FormView e PasswordRecovery control

o Session state comprimibile per sessioni non in process o <sessionState compressionEnabled=“true”

Page 13: Novità di Asp.Net 4.0

Altre funzionalità

o Possibilità di implementare cache custom ereditando da OutputCacheProvider

o Possibilità di decidere il provider di cache a livello di applicazione o per le richieste individuali facendo override di GetOutputCacheProvider

o Facilitazione nell’implementare un proprio provider di cache grazie alle classi presenti in System.Runtime.Caching

Page 14: Novità di Asp.Net 4.0

Funzionalità Ajax

Page 15: Novità di Asp.Net 4.0

Microsoft AJAX

o Open source e disponibile su CodePlex http://aspnet.codeplex.com/

o Progetto attualmente in fase beta, seguite il sito per la data di release.

o Ajax control toolkit integrato nella libreria Microsoft Ajax principale

o Integrazione con jQueryo Supporto a jQuery tramite la CDN

Microsoft.

Page 16: Novità di Asp.Net 4.0

Client Script Loader

o Si referenzia solamente lo script di Microsoft Ajax chiamato script.js

o Grazie a Sys.require() è possibile caricare dinamicamente i soli script necessario Caricamento parallelizzatoo Evita il caricamento di script duplicatio Gestione automatica delle dipendenzeo Usabile per caricare anche script customo Intellisense

Page 17: Novità di Asp.Net 4.0

Client script lazy load

o Sys.loadScripts carica uno script javascript dinamicamente

o Utile per funzioni chiamate raramente e per velocizzare il caricamento della pagina

o Gestisce automaticamente la callback e permette di invocare una funzione quando lo script è completamente caricato

Page 18: Novità di Asp.Net 4.0

Per chi ama lo ScriptManagero Il controllo ScriptManager ha due

nuovi interessanti attributio EnableCdn – permette di scegliere se gli

script vengono caricati dalla cdn. Usabile anche con script propri Es. [assembly: WebResource("Foo.js", "application/x-javascript", CdnPath = "http://foo.com/foo/bar/foo.js")]

o AjaxFrameworkMode:o Disabled: non carica nessuno script baseo Explicit: possibilità di scegliere cosa caricare

o CompositeScript: combina più script in uno solo ed automaticamente effettua encoding gzip

Page 19: Novità di Asp.Net 4.0

Client side rendering

o In una richiesta classica il browser effettua una richiesta al server che risponde con una pagina o con uno snippet HTML

Request

HTML Response

Page 20: Novità di Asp.Net 4.0

Client side rendering

o Tramite il Client Side Rendering il server risponde inviando i dati con serializzazione JSON

o L’HTML viene costruito nel browser.

Request

JSON ResponseHTML Generation

Page 21: Novità di Asp.Net 4.0

MVC2

Page 22: Novità di Asp.Net 4.0

MVC o Asp.NET Web Form?

o MVC2 permette di avere pieno controllo sull’html generato

o La logica di interfaccia è «unit-testabile»

o Open sourceo Possibilità di usare entrambe le

tecnologie in uno stesso sito

Page 23: Novità di Asp.Net 4.0

Architettura di MVCRequest

Controller

Response

Model

View

Asp.Net MVC

Viene passato alla

Inviata al server

Prepara il

Determina la

Genera la

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

Identifica ed istanzia

Page 24: Novità di Asp.Net 4.0

Routingo Associazione di una chiamata ad un

handlero Urlo Variabili di posto Variabili di get

o MVC2 imposta un route particolare che identifica un controller ed una action

o Possono essere aggiunte route specifiche

Page 25: Novità di Asp.Net 4.0

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 26: Novità di Asp.Net 4.0

Aree

o È possibile suddividere il sito in aree

o Ogni area possiede i propri controller, view e model

o Garantiscono una maggiore modularità nella gestione del sito

o Vanno registrate manualmente in fase di startup

Page 27: Novità di Asp.Net 4.0

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 28: Novità di Asp.Net 4.0

UI Helper con lambda expressiono Permettono di avere un maggiore

supporto al refactoring ed intellisenseo Generano errori a compile time se

abilitate la compilazione delle view

Page 29: Novità di Asp.Net 4.0

Data Annotation

o Attributi da inserire sul modello per indicare all’infrastruttura alcune caratteristiche del modello stesso

o Specificare requisiti di validazioneo Requiredo StringLength

o Indicare il tipo di interfaccia richiesta Es: Richiesta di editor multiline

Page 30: Novità di Asp.Net 4.0

Validazione

o La validazione si applica al modelloo Viene automaticamente fatta sulla

base delle Data Annotationo Esistono helper appositi per la

creazione dei validatori in maniera automatica

o I validatori sono sia lato client che lato server

Page 31: Novità di Asp.Net 4.0

Validazione

o Grazie alle Data Annotation è possibile decidere il messaggio di errore

Page 32: Novità di Asp.Net 4.0

Scaffolding

o Sono presenti metodi di scaffolding che permettono di autogenerare le interfacce per un modello

o I due metodi principali sono Html.DysplayForModel e Html.EditForModel

o È comunque possibile generare template custom per i propri modelli se necessarioo Il template è una partial view che ha per

nome il tipo del dato da rappresentare ed è memorizzato nelle cartelle EditorTemplates o DisplayTemplates

Page 33: Novità di Asp.Net 4.0

RenderAction

o Html.RenderAction permette di renderizzare una action da una vista “contenitore”

o Si può in questo modo aumentare la componentizzazione

o Grazie all’attributo ChildActionOnly è possibile specificare che una azione è utilizzabile solamente tramite RenderAction.

Page 34: Novità di Asp.Net 4.0

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 35: Novità di Asp.Net 4.0

Domande

Page 36: Novità di Asp.Net 4.0

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