29
• Andrea Dottor – Microsoft MVP ASP.NET/IIS What's New in ASP.NET 4.5 and Visual Studio 2012

What's New in ASP.NET 4.5 and Visual Studio 2012

Embed Size (px)

DESCRIPTION

Slide e codice lo potete trovare a questo link: http://blog.dottor.net/post/2012/09/18/Codice-e-slide-della-sessione-Whats-New-in-ASPNET-45-and-Visual-Studio-2012.aspx Il Microsoft .NET Framework è in continua evoluzione, e con la prossima versione verranno rilasciate interessanti funzionalità riguardanti ASP.NET.All'interno di questa sessione conosceremo tutte queste novità, ed andremo invece più in dettaglio in alcune di esse, permettendo a chi conosce già ASP.NET di poter essere più produttivo (Strongly Typed Data Controls, Model Binding, Asynchronous, WebSocket, ... ), mentre, per chi invece non ha molta esperienza con questa tecnologia, potrà vedere come i nuovi template di progetto e Visual Studio 2012 potranno aiutarlo ad approcciare correttamente queste tipologie di applicazioni.

Citation preview

Page 1: What's New in ASP.NET 4.5 and Visual Studio 2012

• Andrea Dottor – Microsoft MVP ASP.NET/IIS

What's New in ASP.NET 4.5 and Visual Studio 2012

Page 2: What's New in ASP.NET 4.5 and Visual Studio 2012

feedback

10

o Feedback su:

• http://xedotnet.org/feedback

Email: [email protected]: http://blog.dottor.netTwitter: http://twitter.com/dottor

Contatti

Page 3: What's New in ASP.NET 4.5 and Visual Studio 2012

3

Agenda

Visual Studio 2012 Editor

ASP.NET 4.5 WebForm

Security

Performance

ASP.NET 4.5 MVC 4 (nel parleremo nel meeting «Sviluppo di applicazioni mobile con ASP.NET MVC 4»)

Page 4: What's New in ASP.NET 4.5 and Visual Studio 2012

Visual Studio2012

ASP.NET Editor

Page 5: What's New in ASP.NET 4.5 and Visual Studio 2012

5

HTML Editor – cosa c’è di nuovo?

Supporto ad HTML5

Migliorato intellisense

Maggiori snippet

Pieno supporto agli attributi WAI-ARIA

Smart Tag anche in modalità source

Generazione automatica degli Event handler

Extract to user control

Page 6: What's New in ASP.NET 4.5 and Visual Studio 2012

6

CSS Editor – cosa c’è di nuovo?

Introduzione degli snippet

Intellisense anche nella creazione dei selettori

Color picker

Supporto ai commenti (da shortcuts)

Vendor specific schemas

Indentazione gerarchica

Page 7: What's New in ASP.NET 4.5 and Visual Studio 2012

7

JavaScript Editor – cosa c’è di nuovo?

Migliorato intellisense

Intellisense filtrato a seconda del contesto, del tipo di dato, ...

DOM Intellisense, aggiunto supporto ad HTML5

Intellisense abilitato in tutti i file javascript, centralizzando i

/// <reference /> in un’unico file

VSDOC signature overloads

Aggiunta la funzionalità Go to Definition

Page 8: What's New in ASP.NET 4.5 and Visual Studio 2012

8

Page Inspector

Apre il website all’interno di visual studio

Fornisce funzionalità simili alla Developer Toolbar

Analisi dell’HTML della pagina

Analisi del singolo elemento nel DOM della pagina

Visione degli stili applicati

Permette di capire quale controllo/codice abbia generato l’HTML

Permette di trovare il sorgente di un preciso stile CSS

Page 9: What's New in ASP.NET 4.5 and Visual Studio 2012

ASP.NET 4.5

WebForm

Page 10: What's New in ASP.NET 4.5 and Visual Studio 2012

10

Strongly Typed Data Controls

Permette di avere l’intellisense per specificare i campi da porre in binding

Nei Data Control è stata aggiunta una proprietà ItemType dove specificare il tipo di dato in binding

Item.* e BindItem.* per specificare le proprietà in binding<asp:FormView runat="server" ID="editCustomer" ItemType="Dottor.SampleApplication.Employee">        <EditItemTemplate>           <div>                 <asp:TextBox ID="firstName" runat="server" Text='<%# BindItem.FirstName %>' />           </div>           <div>                 <asp:TextBox ID="lastName" runat="server" ='<%# BindItem.LastName %>' />           </div>           <asp:Button runat="server" CommandName="Update"/>        </EditItemTemplate></asp:FormView>

Page 11: What's New in ASP.NET 4.5 and Visual Studio 2012

11

Model Binding - Selecting data

Aggiunta delle funzionalità di «data source» ai Data Control di ASP.NET

es: GridView, ListView, FormView, ...

Prende spunto dal model binding di ASP.NET MVC

Consumo di dati esposti come IEnumerable o IQuerable<asp:GridView ID="categoriesGrid" runat="server"        AutoGenerateColumns="false"        AllowSorting="true" AllowPaging="true" PageSize="5"        ItemType="WebApplication1.Model.Category" DataKeyNames="CategoryID"        SelectMethod="GetCategories"        UpdateMethod="UpdateCategory">

[...]

<asp:GridView ID="categoriesGrid" runat="server"        AutoGenerateColumns="false"        AllowSorting="true" AllowPaging="true" PageSize="5"        ItemType="WebApplication1.Model.Category" DataKeyNames="CategoryID"        SelectMethod="GetCategories"        UpdateMethod="UpdateCategory">

[...]

Page 12: What's New in ASP.NET 4.5 and Visual Studio 2012

12

Model Binding - Value providers

Nuovi attributi da associare ai parametri di un metodo, che permettono di specificare da dove recuperare le informazioni/valore

Stesso comportamento dei Parameter dei controlli DataSource

es: QueryStringAttributepublic IQueryable<Product> GetProducts([QueryString]string keyword){

[...]

public IQueryable<Product> GetProducts([QueryString]string keyword){

[...]

Page 13: What's New in ASP.NET 4.5 and Visual Studio 2012

13

Model Binding - Filtering by values from a control

Tramite attributi è possibile recuperare valori anche da controlli contenuti all’interno della pagina

Nel costruttore degli attributi è possibile specificare il nome del campo o del controllo da utilizzare per recuperare il datopublic IQueryable<Product> GetProducts(        [QueryString("q")] string keyword,        [Control("categories")] int? categoryId) {

[...]

public IQueryable<Product> GetProducts(        [QueryString("q")] string keyword,        [Control("categories")] int? categoryId) {

[...]

Page 14: What's New in ASP.NET 4.5 and Visual Studio 2012

14

Bundling and Optimization

Bundling: permette di unire più file JavaScript e CSS in un unico file

Minification: rimozione degli spazi ed altri caratteri «non utili», in modo da ridurre la dimensione dei file

PRO: Ottimizzazione delle requestPRO: Meno byte che transitano

Possibilità di differenziare gli script tra debug e release tramite l’attributo debug del tag compilation nel web.config

Vedere il file BundleConfig.cs dentro la carella App_Start e il file Bundle.config

Page 15: What's New in ASP.NET 4.5 and Visual Studio 2012

15

Bundling and Optimization

Using B/M Without B/M Change

File Requests 9 34 256%

KB Sent 3.26 11.92 266%

KB Received 388.51 530 36%

Load Time 510 MS 780 MS 53%

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

Page 16: What's New in ASP.NET 4.5 and Visual Studio 2012

16

OAuth in the Default Templates

Nei template di default è stata aggiunta la possibilità di eseguire login tramite le credenziali di vari social network utilizzando l’autenticaizone Oauth

Basato sulla libreria DotNetOpenAuth

Login tramite Microsoft Account, Facebook, Twitter, Google

Possibilità di aggiunta di altri provider di autenticazione

Vedere il file AuthConfig.cs dentro la carella App_Start

http://blogs.msdn.com/b/webdev/archive/2012/08/15/oauth-openid-support-for-webforms-mvc-and-webpages.aspx

Page 17: What's New in ASP.NET 4.5 and Visual Studio 2012

17

Support for WebSockets Protocol

WebSockets è un protocollo standard che permette la comunicazione tra client e server

Fornisce una comunicazione long-running

Con ASP.NET 4.5 sono state aggiunte classi che permettono l’utilizzo di WebSocket in modo asincrono System.Web.WebSockets

Le Web Sockets API rientrano tra le specifiche di HTML5http://www.w3.org/TR/2009/WD-websockets-20091222/

Solamente con ASP.NET 4.5 su IIS 8

Page 18: What's New in ASP.NET 4.5 and Visual Studio 2012

Security

Image Credit: InThePersonalCloud

Page 19: What's New in ASP.NET 4.5 and Visual Studio 2012

19

New ASP.NET Request Validation Features

Deferred ("lazy") request validationi dati in post vengono validati solo quando

vengono letti

Possibilità di accedere ai dati senza che venga eseguita la validazione tramite HttpRequest.Unvalidated

vengono validati i dati contenuti in Form, QueryString, Cookies, e Url<httpRuntime requestValidationMode="4.5" ... />

var s = context.Request.Unvalidated.Form["blog_post"];

Page 20: What's New in ASP.NET 4.5 and Visual Studio 2012

20

AntiXSS Library

Vista la popolarità di Microsoft AntiXSS Library, questa è stata inclusa all’interno del framework all’interno del namespace System.Web.Security

E’ disponibile anche su codeplex http://wpl.codeplex.com/

Permette di eseguire l’encoding delle stringhe che devono comparire all’interno dell’HTML, permettendo (tramite opportuni algoritmi) di non far passare eventuali attacchi XSS

Può essere sostituita a quella di default utilizzata da ASP.NET

<httpRuntime ...  encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

Page 21: What's New in ASP.NET 4.5 and Visual Studio 2012

Performance

Page 22: What's New in ASP.NET 4.5 and Visual Studio 2012

22

Support for await and Task-Based Asynchronous Modules and Handlers

Creazione di HttpHandler e HttpModule asincroni con il supporto di async-await

Alleggeriscono/migliorano il carico sul server in quanto ottimizzano l’uso dei thread

Per un HttpHandler, di deve implementare HttpTaskAsyncHandlerpublic class MyAsyncHandler : HttpTaskAsyncHandler{        public override async Task ProcessRequestAsync(HttpContext context)        {           // Do something        }}

Page 23: What's New in ASP.NET 4.5 and Visual Studio 2012

23

Support for await and Task-Based Asynchronous Modules and Handlers

Per un HttpModule utilizzare i metodi di helper esposti dalla classe EventHandlerTaskAsyncHelper in modo da permettere l’uso di metodi asincroni all’interno della normale pipeline di ASP.NET che è sincronapublic void Init(HttpApplication context){   EventHandlerTaskAsyncHelper helper = 

new EventHandlerTaskAsyncHelper(MioMetodoAsincrono);    context.AddOnPostAuthorizeRequestAsync(

helper.BeginEventHandler, helper.EndEventHandler);

}

Page 24: What's New in ASP.NET 4.5 and Visual Studio 2012

24

Web Publishing Improvements

Le informazione relative ai profili di pubblicazione vengono salvati all’interno della cartella PublishProfiles

Possibilità di condividere le informazioni tra i membri del team

Possibilità di salvare le informazioni nel controllo sorgente

Possono venire utilizzate da msbuild.exe per pubblicare l’applicazione dopo la compilazione

msbuild.exe project.csproj /t:WebPublish /p:PublishProfile=ProfileName

Page 25: What's New in ASP.NET 4.5 and Visual Studio 2012

25

Multi-Core JIT compilation for faster startup

Nel Framework 4.5 il compilatore JIT è stato migliorato / ottimizzato per l’utilizzo di più core

Riduzione dei tempi del primo avvio di un’applicazione

Abilitato di default per le applicazione ASP.NET

Page 26: What's New in ASP.NET 4.5 and Visual Studio 2012

26

ASP.NET precompilation and merge

Possibilità di precompilare una Web Application

Permette di ridurre ulteriormente i tempi del primo avvio dell’applicazione

Per attivarlo, settare il flag «precompile this application before publishing» nelle proprietà del progetto

Page 27: What's New in ASP.NET 4.5 and Visual Studio 2012

Domande? Dubbi?Voglia di migrare subito ad ASP.NET 4.5?

Page 28: What's New in ASP.NET 4.5 and Visual Studio 2012

28

Voglio sperimentare una nuova strada

Screencast pubblicati su

Iniziando dal materiale di questo meeting

6 video già registrati e pronti ad uscire

40 minuti di video

A partire dalla prossima settimana

Aspetto un vostro feedback

http://www.youtube.com/user/andreadottor

Page 29: What's New in ASP.NET 4.5 and Visual Studio 2012

feedback

10

o Feedback su:

• http://xedotnet.org/feedback

Email: [email protected]: http://blog.dottor.netTwitter: http://twitter.com/dottor

Contatti