SlideShare a Scribd company logo
What's New in ASP.NET 4.5 and Visual Studio 2012
  • Andrea Dottor – Microsoft MVP ASP.NET/IIS
Contatti


           o Feedback su:
              • http://xedotnet.org/feedback

           Email:   andrea@dottor.net
           Blog:    http://blog.dottor.net
           Twitter: http://twitter.com/dottor
feedback




 10
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»)




3
Visual Studio
    2012

  ASP.NET
   Editor
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
5
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



6
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

7
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
8
ASP.NET 4.5
 WebForm
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>
10
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">
             [...]


11
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: QueryStringAttribute
     public IQueryable<Product> GetProducts([QueryString]string keyword)
     {
             [...]




12
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 dato

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




13
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 request
           PRO: 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
14
Bundling and Optimization

                                                                           Chang
                          Using B/M              Without B/M
                                                                           e


        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



15
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

16
Suppor t 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 HTML5
     http://www.w3.org/TR/2009/WD-websockets-20091222/

     Solamente con ASP.NET 4.5 su IIS 8

17
Security
           Image Credit: InThePersonalCloud
New ASP.NET Request Validation Features

     Deferred ("lazy") request validation
           i 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"];



19
AntiXSS Librar y

     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
     <httpRuntime ...                                           .NET
       encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web,
       Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />


20
Performance
Suppor t 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 HttpTaskAsyncHandler

      public class MyAsyncHandler : HttpTaskAsyncHandler
      {
              public override async Task ProcessRequestAsync(HttpContext context)
              {
                 // Do something
              }
      }

22
Suppor t 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 è sincrona
      public void Init(HttpApplication context)
      {
         EventHandlerTaskAsyncHelper helper =
                                       new EventHandlerTaskAsyncHelper(MioMetodoAsincrono);

          context.AddOnPostAuthorizeRequestAsync(
                                        helper.BeginEventHandler,
                                        helper.EndEventHandler);
      }




23
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




24
Multi-Core JIT compilation for faster star tup

     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




25
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




26
Domande? Dubbi?
 Voglia di migrare subito ad ASP.NET 4.5?
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
28
Contatti


           o Feedback su:
              • http://xedotnet.org/feedback

           Email:   andrea@dottor.net
           Blog:    http://blog.dottor.net
           Twitter: http://twitter.com/dottor
feedback




 10

More Related Content

What's hot (20)

PDF
Blazor ha vinto? Storie di casi reali
Andrea Dottor
 
PDF
Dal RenderFragment ai Generics, tips for Blazor developers
Andrea Dottor
 
PPTX
Cosa c'è di nuovo in asp.net core 2 0
Andrea Dottor
 
PPTX
Windows azure - abbattere tempi e costi di sviluppo
Andrea Dottor
 
PDF
Blazor: are we ready for the launch?
Andrea Agnoletto
 
PDF
Blazor per uno sviluppatore Web Form
Andrea Dottor
 
PPTX
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte
 
PPTX
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Codemotion
 
PDF
Training Signal Webtrends
Stefano Iaboni
 
PPTX
Javascript task automation
Antonio Liccardi
 
PDF
Alla scoperta di gRPC
Andrea Dottor
 
PPTX
Christmas greetings cards with blazor
Nicolò Carandini
 
PDF
Dependency injection questa sconosciuta
Andrea Dottor
 
PDF
jQuery
Salvatore Paone
 
PPTX
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Codemotion
 
PPT
Introduzione a jQuery
Sandro Marcon
 
PPTX
What's new in Asp.Net 4.5 (and WebApi)
Luca Milan
 
PPTX
Asp.net web form 4.5 - what's new!!
Massimo Bonanni
 
PDF
Wasm and Blazor CDays keynote
Nicolò Carandini
 
PPTX
DotNetCampus - Continuous Integration con Sql Server
Alessandro Alpi
 
Blazor ha vinto? Storie di casi reali
Andrea Dottor
 
Dal RenderFragment ai Generics, tips for Blazor developers
Andrea Dottor
 
Cosa c'è di nuovo in asp.net core 2 0
Andrea Dottor
 
Windows azure - abbattere tempi e costi di sviluppo
Andrea Dottor
 
Blazor: are we ready for the launch?
Andrea Agnoletto
 
Blazor per uno sviluppatore Web Form
Andrea Dottor
 
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte
 
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Codemotion
 
Training Signal Webtrends
Stefano Iaboni
 
Javascript task automation
Antonio Liccardi
 
Alla scoperta di gRPC
Andrea Dottor
 
Christmas greetings cards with blazor
Nicolò Carandini
 
Dependency injection questa sconosciuta
Andrea Dottor
 
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Codemotion
 
Introduzione a jQuery
Sandro Marcon
 
What's new in Asp.Net 4.5 (and WebApi)
Luca Milan
 
Asp.net web form 4.5 - what's new!!
Massimo Bonanni
 
Wasm and Blazor CDays keynote
Nicolò Carandini
 
DotNetCampus - Continuous Integration con Sql Server
Alessandro Alpi
 

Viewers also liked (6)

PPTX
Il buon programmatore - consigli pratici per una vita felice
Andrea Dottor
 
PPTX
Migliora il tuo codice con knockout.js
Andrea Dottor
 
PPTX
Sviluppare Azure Web Apps
Andrea Dottor
 
PPTX
ASP.NET Core
Andrea Dottor
 
PDF
L'evoluzione del web
Andrea Dottor
 
PPTX
Introduzione ad ASP.NET Core
Andrea Dottor
 
Il buon programmatore - consigli pratici per una vita felice
Andrea Dottor
 
Migliora il tuo codice con knockout.js
Andrea Dottor
 
Sviluppare Azure Web Apps
Andrea Dottor
 
ASP.NET Core
Andrea Dottor
 
L'evoluzione del web
Andrea Dottor
 
Introduzione ad ASP.NET Core
Andrea Dottor
 
Ad

Similar to What's New in ASP.NET 4.5 and Visual Studio 2012 (20)

PPTX
Asp.net 4 Community Tour VS2010
Fabrizio Bernabei
 
PDF
Tutte le novità di ASP.NET MVC3
Manuel Scapolan
 
PPSX
Powerful asp.net 4 e ie9
Stefano Benedetti
 
PPTX
Asp net (versione 1 e 2)
Felice Pescatore
 
PDF
ASP.NET MVC Intro
Manuel Scapolan
 
ODP
Net core base
Beniamino Ferrari
 
PPTX
What's new in ASP.NET 4.0
XeDotNet
 
PPSX
Asp.Net MVC 3 - Il Model View Controller secondo Microsoft
Stefano Benedetti
 
PPTX
Asp.Net MVC 2 :: VS 2010 Community Tour
Andrea Balducci
 
PPTX
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Giorgio Di Nardo
 
PPTX
Le novita di visual studio 2012
Crismer La Pignola
 
PPTX
Alessandro Forte - ASP.Net 4.0
Alessandro Forte
 
PPT
Imparare asp.net 107
Pi Libri
 
PDF
Model View Controller - Semplificare Il Codice E Minimizzare I Tempi
Marco Parenzan
 
PPTX
ASP.NET MVC
Raffaele Fanizzi
 
PPTX
Meetup ASP.NET Core Angular
dotnetcode
 
PPTX
Come sviluppare applicazioni cross device con HTML
Sinergia Totale
 
PPTX
ASP.NET MVC 2.0
XeDotNet
 
PDF
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
dotnetcode
 
PPTX
Asp.NET MVC Framework
DotNetMarche
 
Asp.net 4 Community Tour VS2010
Fabrizio Bernabei
 
Tutte le novità di ASP.NET MVC3
Manuel Scapolan
 
Powerful asp.net 4 e ie9
Stefano Benedetti
 
Asp net (versione 1 e 2)
Felice Pescatore
 
ASP.NET MVC Intro
Manuel Scapolan
 
Net core base
Beniamino Ferrari
 
What's new in ASP.NET 4.0
XeDotNet
 
Asp.Net MVC 3 - Il Model View Controller secondo Microsoft
Stefano Benedetti
 
Asp.Net MVC 2 :: VS 2010 Community Tour
Andrea Balducci
 
Disegnare Web Application orientate al Mobile con MVC 4 e jQuery Mobile (We W...
Giorgio Di Nardo
 
Le novita di visual studio 2012
Crismer La Pignola
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte
 
Imparare asp.net 107
Pi Libri
 
Model View Controller - Semplificare Il Codice E Minimizzare I Tempi
Marco Parenzan
 
ASP.NET MVC
Raffaele Fanizzi
 
Meetup ASP.NET Core Angular
dotnetcode
 
Come sviluppare applicazioni cross device con HTML
Sinergia Totale
 
ASP.NET MVC 2.0
XeDotNet
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
dotnetcode
 
Asp.NET MVC Framework
DotNetMarche
 
Ad

More from Andrea Dottor (11)

PDF
Blazor ♥️ JavaScript
Andrea Dottor
 
PDF
Blazor, lo sapevi che...
Andrea Dottor
 
PDF
Come sta la nostra applicazione? Un viaggio alla scoperta degli Health Check ...
Andrea Dottor
 
PDF
What's New in ASP.NET Core 3
Andrea Dottor
 
PPTX
Real case: migrate from Web Forms to ASP.NET Core gradually
Andrea Dottor
 
PPTX
Customize ASP.NET Core scaffolding
Andrea Dottor
 
PPTX
ASP.NET, ottimizziamo con la cache
Andrea Dottor
 
PDF
Creare API pubbliche, come evitare gli errori comuni
Andrea Dottor
 
PPTX
Deploy & Run on Azure App Service
Andrea Dottor
 
PPTX
Creare API pubbliche, come evitare gli errori comuni
Andrea Dottor
 
PPTX
Crea servizi REST per la tua App con ASP.NET 5
Andrea Dottor
 
Blazor ♥️ JavaScript
Andrea Dottor
 
Blazor, lo sapevi che...
Andrea Dottor
 
Come sta la nostra applicazione? Un viaggio alla scoperta degli Health Check ...
Andrea Dottor
 
What's New in ASP.NET Core 3
Andrea Dottor
 
Real case: migrate from Web Forms to ASP.NET Core gradually
Andrea Dottor
 
Customize ASP.NET Core scaffolding
Andrea Dottor
 
ASP.NET, ottimizziamo con la cache
Andrea Dottor
 
Creare API pubbliche, come evitare gli errori comuni
Andrea Dottor
 
Deploy & Run on Azure App Service
Andrea Dottor
 
Creare API pubbliche, come evitare gli errori comuni
Andrea Dottor
 
Crea servizi REST per la tua App con ASP.NET 5
Andrea Dottor
 

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

  • 1. What's New in ASP.NET 4.5 and Visual Studio 2012 • Andrea Dottor – Microsoft MVP ASP.NET/IIS
  • 2. Contatti o Feedback su: • http://xedotnet.org/feedback Email: [email protected] Blog: http://blog.dottor.net Twitter: http://twitter.com/dottor feedback 10
  • 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») 3
  • 4. Visual Studio 2012 ASP.NET Editor
  • 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 5
  • 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 6
  • 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 7
  • 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 8
  • 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> 10
  • 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"> [...] 11
  • 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: QueryStringAttribute public IQueryable<Product> GetProducts([QueryString]string keyword) { [...] 12
  • 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 dato public IQueryable<Product> GetProducts( [QueryString("q")] string keyword, [Control("categories")] int? categoryId) { [...] 13
  • 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 request PRO: 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 14
  • 15. Bundling and Optimization Chang Using B/M Without B/M e 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 15
  • 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 16
  • 17. Suppor t 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 HTML5 http://www.w3.org/TR/2009/WD-websockets-20091222/ Solamente con ASP.NET 4.5 su IIS 8 17
  • 18. Security Image Credit: InThePersonalCloud
  • 19. New ASP.NET Request Validation Features Deferred ("lazy") request validation i 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"]; 19
  • 20. AntiXSS Librar y 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 <httpRuntime ... .NET encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 20
  • 22. Suppor t 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 HttpTaskAsyncHandler public class MyAsyncHandler : HttpTaskAsyncHandler { public override async Task ProcessRequestAsync(HttpContext context) { // Do something } } 22
  • 23. Suppor t 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 è sincrona public void Init(HttpApplication context) { EventHandlerTaskAsyncHelper helper = new EventHandlerTaskAsyncHelper(MioMetodoAsincrono); context.AddOnPostAuthorizeRequestAsync( helper.BeginEventHandler, helper.EndEventHandler); } 23
  • 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 24
  • 25. Multi-Core JIT compilation for faster star tup 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 25
  • 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 26
  • 27. Domande? Dubbi? Voglia di migrare subito ad ASP.NET 4.5?
  • 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 28
  • 29. Contatti o Feedback su: • http://xedotnet.org/feedback Email: [email protected] Blog: http://blog.dottor.net Twitter: http://twitter.com/dottor feedback 10

Editor's Notes

  • #6: WAI-ARIA = Web Accessibility Initiative - Accessible Rich Internet Applications