Anúncio

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

18 de Sep de 2012
Anúncio

Mais conteúdo relacionado

Apresentações para você(20)

Anúncio

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

Anúncio

Último(20)

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
  9. ASP.NET 4.5 WebForm
  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
  21. Performance
  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

Notas do Editor

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