SlideShare a Scribd company logo
1 of 29
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

Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiAndrea Dottor
 
Dal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersDal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersAndrea Dottor
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Andrea Dottor
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Andrea Agnoletto
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormAndrea Dottor
 
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte
 
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMRealizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMCodemotion
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal WebtrendsStefano Iaboni
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automationAntonio Liccardi
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPCAndrea Dottor
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazorNicolò Carandini
 
Dependency injection questa sconosciuta
Dependency injection questa sconosciutaDependency injection questa sconosciuta
Dependency injection questa sconosciutaAndrea Dottor
 
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Codemotion
 
Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuerySandro Marcon
 
What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)Luca Milan
 
Asp.net web form 4.5 - what's new!!
Asp.net web form 4.5 - what's new!!Asp.net web form 4.5 - what's new!!
Asp.net web form 4.5 - what's new!!Massimo Bonanni
 
Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteNicolò Carandini
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
 

What's hot (20)

Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi reali
 
Dal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersDal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developers
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppo
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web Form
 
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
 
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMRealizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal Webtrends
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automation
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPC
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
Dependency injection questa sconosciuta
Dependency injection questa sconosciutaDependency injection questa sconosciuta
Dependency injection questa sconosciuta
 
jQuery
jQueryjQuery
jQuery
 
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
 
Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuery
 
What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)
 
Asp.net web form 4.5 - what's new!!
Asp.net web form 4.5 - what's new!!Asp.net web form 4.5 - what's new!!
Asp.net web form 4.5 - what's new!!
 
Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynote
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql Server
 

Viewers also liked

Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceAndrea Dottor
 
Migliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.jsMigliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.jsAndrea Dottor
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
L'evoluzione del web
L'evoluzione del webL'evoluzione del web
L'evoluzione del webAndrea Dottor
 
Introduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreIntroduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreAndrea Dottor
 

Viewers also liked (6)

Il buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita feliceIl buon programmatore - consigli pratici per una vita felice
Il buon programmatore - consigli pratici per una vita felice
 
Migliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.jsMigliora il tuo codice con knockout.js
Migliora il tuo codice con knockout.js
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
ASP.NET Core
ASP.NET CoreASP.NET Core
ASP.NET Core
 
L'evoluzione del web
L'evoluzione del webL'evoluzione del web
L'evoluzione del web
 
Introduzione ad ASP.NET Core
Introduzione ad ASP.NET CoreIntroduzione ad ASP.NET Core
Introduzione ad ASP.NET Core
 

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

Asp.NET MVC Framework
Asp.NET MVC FrameworkAsp.NET MVC Framework
Asp.NET MVC FrameworkDotNetMarche
 
Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Fabrizio Bernabei
 
Hands on MVC - Mastering the Web
Hands on MVC - Mastering the WebHands on MVC - Mastering the Web
Hands on MVC - Mastering the WebClaudio Gandelli
 
CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09Francesco Ronchi
 
Asp.Net MVC 3 - Il Model View Controller secondo Microsoft
Asp.Net MVC 3 - Il Model View Controller secondo MicrosoftAsp.Net MVC 3 - Il Model View Controller secondo Microsoft
Asp.Net MVC 3 - Il Model View Controller secondo MicrosoftStefano Benedetti
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012Crismer La Pignola
 
Come portare il profiler di symfony2 in drupal8
Come portare il profiler di symfony2 in drupal8Come portare il profiler di symfony2 in drupal8
Come portare il profiler di symfony2 in drupal8Luca Lusso
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1dotnetcode
 
Asp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAsp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAndrea Balducci
 
Fe02 ria con breeze e knockout
Fe02   ria con breeze e knockoutFe02   ria con breeze e knockout
Fe02 ria con breeze e knockoutDotNetCampus
 
ASP.NET MVC 3: se non ora, quando?
ASP.NET MVC 3: se non ora, quando?ASP.NET MVC 3: se non ora, quando?
ASP.NET MVC 3: se non ora, quando?Giorgio Di Nardo
 
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...DavisMol
 
ASP.NET MVC 2.0
ASP.NET MVC 2.0ASP.NET MVC 2.0
ASP.NET MVC 2.0XeDotNet
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)brossi676
 

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

Asp.NET MVC Framework
Asp.NET MVC FrameworkAsp.NET MVC Framework
Asp.NET MVC Framework
 
Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010
 
Hands on MVC - Mastering the Web
Hands on MVC - Mastering the WebHands on MVC - Mastering the Web
Hands on MVC - Mastering the Web
 
CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09
 
Asp.Net MVC 3 - Il Model View Controller secondo Microsoft
Asp.Net MVC 3 - Il Model View Controller secondo MicrosoftAsp.Net MVC 3 - Il Model View Controller secondo Microsoft
Asp.Net MVC 3 - Il Model View Controller secondo Microsoft
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 
TYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novitaTYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novita
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012
 
Come portare il profiler di symfony2 in drupal8
Come portare il profiler di symfony2 in drupal8Come portare il profiler di symfony2 in drupal8
Come portare il profiler di symfony2 in drupal8
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
 
TYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novitàTYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novità
 
Asp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAsp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community Tour
 
Fe02 ria con breeze e knockout
Fe02   ria con breeze e knockoutFe02   ria con breeze e knockout
Fe02 ria con breeze e knockout
 
ASP.NET MVC 3: se non ora, quando?
ASP.NET MVC 3: se non ora, quando?ASP.NET MVC 3: se non ora, quando?
ASP.NET MVC 3: se non ora, quando?
 
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
 
ASP.NET MVC 2.0
ASP.NET MVC 2.0ASP.NET MVC 2.0
ASP.NET MVC 2.0
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 

More from Andrea Dottor

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

More from Andrea Dottor (11)

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

Recently uploaded

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 

Recently uploaded (9)

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 

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: andrea@dottor.net 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: andrea@dottor.net Blog: http://blog.dottor.net Twitter: http://twitter.com/dottor feedback 10

Editor's Notes

  1. WAI-ARIA = Web Accessibility Initiative - Accessible Rich Internet Applications