Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro...

19

Click here to load reader

Transcript of Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro...

Page 1: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

1

Introduzione ad ASP.NET 4.0Alessandro Forte

“Audaces .NET iuvat”( .NET aiuta gli audaci )

Page 2: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

2

Agenda

Elenco degli argomenti affrontati durante la sessione:• Project Templates• Improvements dell’IDE• Code Snippets• Deployment• ViewState• ClientIDMode• Response.RedirectPermanent()• Meta-tags• URL Routing• HTML Encoding + QueryString• Compress Session State• Charting Controls

Page 3: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

3

Project Templates

VS2010 contiene una serie di nuovi tipi di progetto ASP.Net: • Empty ASP.NET Web Application• ASP.NET AJAX Server Control and Server Control Extender• ASP.NET MVC 2 Web Application

e alcune modifiche ai tipi esistenti: • ASP.NET Web Site e ASP.NET Web Application

I progetti Web ASP.NET ora contengono funzionalità comuni di autenticazione e profilo, una MasterPage con un layout semplice e script jQuery.

Page 4: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

4

Improvements dell’IDE

Diversi miglioramenti sono stati fatti anche per l'IDE e il designer:

• La conformità a CSS 2.1 è stata migliorata.• Il Designer è ora più robusto e con una ridotta probabilità di riscrivere

HTML (front page syndrome).• Migliore supporto per le librerie di terze parti (in particolare, jQuery).• Aumento di prestazioni quando si lavora con file JavaScript di grandi

dimensioni.• Il supporto dell’Intellisense per l’utilizzo di diversi stili di codice

JavaScript è stato notevolmente migliorato.• Inserito il supporto all’Intellisense per la registrazione delle chiamate ai

namespaces di ASP.NET AJAX.• Il refactoring (intero) dell’IDE permetterà, a Microsoft notevoli

improvements per una “migliore” progettazione in futuro

Page 5: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

5

Code Snippets

In Default.aspx, digita “textbox” premi rapidamente TAB. Visual Studio inserirà in automatico il seguente codice:• <asp:TextBox runat="server" />Ma non è finita qui…Setta alla TextBox l’ID “txtTest“ e premi Enter per aggiungere una

nuova line.Digita “requiredfieldvalidator” e premi TAB.Visual Studio inserirà in automatico il markup per un required field

validator con la proprietà ControlToValidate settata automaticamente alla textbox più vicina e il cursore con focus su ErrorMessage.

Questo è veramente IPERPRODUTTIVO e IPERFANTASTICO :D

Page 6: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

6

Code Snippets

I Web development snippets (o Code Snippets) si dividono in due tipi: ASP.NET and HTML

Esempi di snippets ASP.NET sono:• hyperlink, Image, Label, panel, ecc…• register, registerAscx, sm, smpEsempi di snippets HTML sono :• a, br, div, img, input, ecc…

In MSDN è possibile trovare la lista completa degli snippets.

Page 7: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

7

Deployment

VS2010 consente di:• Eseguire trasformazioni sul Web.config per diverse

configurazioni di build.• Creare pacchetti Web in un file unico (file zip che contiene

l'applicazione, il database e le impostazioni)• Installare l'applicazione con le relative impostazioni in un

solo click (one-click publishing).

Automatizzare i processi di distribuzione è una “mossa intelligente”, perché riduce gli errori, consente di risparmiare tempo e crea un processo ripetibile e auto-documentato.

Page 8: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

8

Deployment Web.config Transformation

Aprendo Web.Release.config, ci troveremo di fronte al seguente codice (abbreviato per facilitare la lettura):

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"><system.web><compilation xdt:Transform="RemoveAttributes(debug)" /></system.web></configuration>

Esempio di scenario reale: Immaginiamo di avere un server assegnato per gli User Acceptance Test (UAT) e

abbiamo bisogno di modificare una singola impostazione, quando la nostra applicazione viene spostata dalla nostra macchina di sviluppo alla macchina dell'utente-accettazione. Problematica classica o sbaglio?

La lista completa delle opzioni di trasformazioni la trovate qui: http://msdn.microsoft.com/en-us/library/dd465326%28VS.100%29.aspx

Page 9: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

9

Deployment Web Packages

VS2010 permette di “boxare” la nostra applicazione in un pacchetto che contiene tutta una serie di funzionalità.

Ciò che può essere incluso in un pacchetto web è:• le pagine dell'applicazione, i controlli, le immagini,

CSS, i media, e così via…• GAC assemblee• componenti COM• le impostazioni di IIS• database di SQL• Certificati di sicurezza

Page 10: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

10

Deployment One-Click Publishing

La funzionalità One-click publishing utilizza i servizi di gestione remota di IIS che consentono di pubblicare un applicazione su un server remoto con un semplice click.

One-click publishing “deploya” solamente i file che sono cambiati, il che rende l’operazione anche notevolmente efficiente.

Per poter utilizzare la funzionalità di One-click publishing , è necessario disporre di un hoster che supporta il One Click (in questo momento lo supportano solo Discount ASP e OrcsWeb) oppure, se si sta deployando verso un proprio server, è necessario avere i servizi di gestione remota di IIS abilitati.

Maggiori info su: (http://technet.microsoft.com/en-us/library/cc731771(WS.10).aspx).

Page 11: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

11

ViewState

Il ViewState è il meccanismo attraverso il quale ASP.NET memorizza lo stato dei controlli presenti in una WebForm. Questa informazione viene salvata in un hidden form value chiamato __VIEWSTATE.

Con ASP.NET 4.0, abbiamo la flessibilità di decidere le impostazioni di ViewState più consone.

In particolare è stata introdotta la possibilità per i controlli di ereditare le impostazioni di ViewState dai controlli genitore utilizzando la nuova proprietà ViewStateMode.

La proprietà ViewStateMode ha tre impostazioni:• Enabled (ViewState usato)• Disabled (ViewState non utilizzato)• Inherit (ViewStateMode è ereditato dal controllo padre)

Nota: a seconda del contenuto della pagina, il ViewState può diventare abbastanza grande, e spesso è inutile per i controlli che non cambiano, come le etichette.

Alessandro Forte - Introduzione ad ASP.Net 4.0

Page 12: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

12

ClientIDMode

La maggior parte delle volte , la funzionalità di generazione automatica dell’ID di ASP.NET svolge abbastanza bene il suo lavoro, ma in alcune situazioni, per esempio, quando si lavora con MasterPage o con la scrittura di scripts lato client, è necessario avere un livello di controllo più accurato.

ASP.NET 4.0 introduce a tal fine la nuova proprietà ClientIDMode.La proprietà ClientIDMode dispone di quattro impostazioni:• AutoID: funziona come le versioni precedenti di ASP.NET.• Static: consente di specificare l'ID che viene utilizzato. Attenzione: ovviamente è

possibile generare ID duplicati lato client, quindi è a noi assicurare che il nostro ID è unico e che non si incorra in uno “client-side script hell” (in ogni modo un fastidioso errore JavaScript)

• Predictable: usato in combinazione con la proprietà RowClientIdSuffix per generare IDs incrementali per i “repeating controls” come DataGrid e Repeater, ad esempio, myrow1, myrow2, myrow3.

• Inherit: i controlli usano lo stesso ClientIDMode del controllo padre (default).

Il ClientIdMode può essere applicato a livello di controllo, pagina, e applicazione.

Page 13: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

13

Response.RedirectPermanent()

Response.Redirect () è un metodo frequentemente utilizzato che reindirizza la richiesta corrente ad un altro URL.

Da un punto di vista HTTP, Response.Redirect() crea un messaggio di reindirizzamento temporaneo (HTTP 302) verso il browser dell'utente.

ASP.NET 4.0 ora offre un nuovo metodo Response.RedirectPermanent() che invece effettua un reindirizzamento permanente verso l’URL richiesto (HTTP 301).

Perché questo?

HTTP 301 è principalmente utilizzato per indicare ai motori di ricerca che dovrebbero salvare la posizione nuova pagina nei loro indici, piuttosto che dalla vecchia posizione. Ciò consente di risparmiare un round-trip inutile al server.

L’utilizzo di Response.RedirectPermanent() è molto simile a Response.Redirect():• Response.RedirectPermanent("/newpath/foroldcontent.aspx");

Page 14: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

14

Meta-tags

La classe Page di ASP.NET 4.0 è dotata di due nuove proprietà che consentono di impostare le parole chiave e i Metatags che vengono generati:

• MetaKeywords.• MetaDescription.

Page 15: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

15

URL Routing

Il Routing consente di mappare un URL ad un file fisico, che può o non può esistere.

Perché usare questa funzione?

Bene supponiamo che si stia lavorando per un negozio online che dispone di un nuovo prodotto che si trova al seguente URL:

• www.myshop.com/productDetail.aspx?id=34534Il Routing consente quindi di creare un URI più leggibile come ad esempio:• www.myshop.com/PopularProduct/

L’URL routing permette in definitiva di creare URI più facilmente ricordabili e sicuramente molto più search engine-friendly, nascondendo la struttura interna della nostra applicazione.

Page 16: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

16

HTML Encoding + QueryString

ASP.NET 4.0 include la nuova classe HtmlString la quale indica che l'espressione è già correttamente codificata e non dovrebbe essere riesaminata. Ciò impedisce che valori "sicuri“possano sollevare richieste di validazione potenzialmente pericolose:

• <%: new HtmlString("<script>alert('I will now be run');</script>") %>In precedenza ASP.NET accettava URL limitati ad un massimo di 260 caratteri

(un vincolo NTFS).Con ASP.NET 4.0 è possibile estendere (o limitare) l'URL e la lunghezza

massima del querystring.

Per modificare queste impostazioni è necessario cambiare le proprietà maxRequestPathLength e maxQueryStringLength (nella sezione HttpRuntime) del web.config: :

• <httpRuntime maxQueryStringLength="260" maxRequestLength="2048"/>

Page 17: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

17

Compress Session State

E 'generalmente una buona regola evitare di memorizzare qualsiasi cosa in Session a meno che non sia assolutamente necessario.

Se proprio si deve allora ASP.NET 4.0 ci permette di comprimere lo stato della sessione.

La compressione della Session non può essere utilizzata da una inprocess session e pertanto è unicamente applicabile nel caso di una State Session o di una SQL Server Session.

Per comprimere la Session bisogna semplicemente impostare la proprietà compressionEnabled=true nel Web.config:

• <sessionState compressionEnabled="true"></sessionState>

La Session viene compressa utilizzando l’algoritmo GZip. E 'importante notare che la compressione della sessione richiede al server un

maggior carico di lavoro e ciò potrebbe avere un impatto negativo sulle prestazioni dell'applicazione.

Page 18: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

18

Charting Controls

In precedenza questi controlli dovevano essere installati come add-ons e un certo numero di impostazioni dovevano essere aggiunte al Web.config.

Ora ASP.NET 4.0 comprende già questi controlli, e non è più necessario apportare modifiche al web.config per utilizzarli.

Microsoft ha acquistato e integrato i controlli ASP.NET Dundas Chart all'inizio del 2008. Questo insieme di controlli contiene più di 35 diversi tipi di grafici e una grande quantità di funzionalità.

Page 19: Introduzione ad ASP.NET 4.0 Alessandro Forte Audaces.NET iuvat (.NET aiuta gli audaci ) 1Alessandro Forte - Introduzione ad ASP.Net 4.0.

Alessandro Forte - Introduzione ad ASP.Net 4.0

19

FINE