Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Like this? Share it with your network

Share

Powerful asp.net 4 e ie9

on

  • 2,084 views

NET Framework versione 4 include miglioramenti per ASP.NET 4 in aree mirate. Anche Visual Studio 2010 include miglioramenti e nuove funzionalità per ottimizzare lo sviluppo di risorse Web. In questa ...

NET Framework versione 4 include miglioramenti per ASP.NET 4 in aree mirate. Anche Visual Studio 2010 include miglioramenti e nuove funzionalità per ottimizzare lo sviluppo di risorse Web. In questa sessione verrà fornita una panoramica di numerose delle nuove funzionalità incluse nella nuova versione. Vedremo anche le novità per gli sviluppatori introdotte da Internet Explorer 9

Statistics

Views

Total Views
2,084
Views on SlideShare
1,952
Embed Views
132

Actions

Likes
0
Downloads
29
Comments
0

2 Embeds 132

http://blog.be-st.it 97
http://www.be-st.it 35

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Powerful asp.net 4 e ie9 Presentation Transcript

  • 1. Powerful ASP.NET 4.0 & Internet Explorer 9
    Benedetti Stefano
  • 2. Contatti
    Lo User Group dell'Emilia-Romagnainteramente dedicato alle tecnologie Microsoft .NET
    http://dotdotnet.org/
    Ing. Stefano Benedetti
    http://www.be-st.it
    http://blog.be-st.it
    info@be-st.it
  • 3. ASP.Net 4
    What’s new?
    Niente (?)
    Powerful ASP.Net
    Performance
    Productivity
    SEO
    Cura per la “Lazy Dev Syndrome” 
  • 4. Session roadmap
    Core services
    AJAX
    Web forms
    Visual Studio 2010 Web Development Improvements
    Web Application Deployment
    Internet Explorer 9
  • 5. Core services
    Web.config File Refactoring 
    Extensible Output Caching 
    Auto-Start Web Applications 
    Permanently Redirecting a Page 
    Shrinking Session State 
    Expanding the Range of Allowable URLs 
    Extensible Request Validation 
    Object Caching and Object Caching Extensibility 
    Extensible HTML, URL, and HTTP Header Encoding 
    Performance Monitoring for Individual Applications in a Single Worker Process 
    Multi-Targeting
  • 6. Web.config File Refactoring
     <?xml version="1.0"?>
    <configuration>
    <system.web>
    <compilation targetFramework="4.0" /> </system.web>
    </configuration>
  • 7. Auto-Start Web Applications 
    Impostare l’application pool da caricare nel file applicationHost.config
    (C:WindowsSystem32inetsrvconfig)
    <applicationpools>
    <add name="MyApplicationPool" startMode="AlwaysRunning" />
    </applicationpools>
  • 8. Auto-Start Web Applications 
    Alternativa:
    IIS Application Warm-Up Module for IIS 7.5 (beta)
  • 9. Permanently Redirecting a Page
    3.5
    Response.Redirect("/newpath/content.aspx)
    4.0
    RedirectPermanent("/newpath/content.aspx");
    HTTP 302 Found
    (temporaryredirect)
    HTTP 301Found Moved Permanently
  • 10. Shrinking Session State 
    Session e Web farm: 2 opzionidi storage
    Session-state server
    SQL Server
    In entrambiicasi la sessionevieneserializzata
    Le sessionioccupanospazio. Quindi?
    Non utilizzare le sessioninelleapplicazioni web!!
    Il Web è stateless
    Se propriodovete…
  • 11. Shrinking Session State 
    Nuovo attributo: compressionEnabled
    <sessionStatemode="SqlServer" sqlConnectionString="data source=dbserver;InitialCatalog=aspnetstate" allowCustomSqlDatabase="true" compressionEnabled="true" />
    Completamentetrasparente
    UtilizzaSystem.IO.Compression.GZipStream 
  • 12. Session roadmap
    Core services
    AJAX
    Web forms
    Visual Studio 2010 Web Development Improvements
    Web Application Deployment
  • 13. AJAX
    jQuery out of the box
    Content Delivery Network Support
    ScriptManager Explicit Scripts
  • 14. jQuery out of the box
    I template per le web forms e per MVC comprendono già la libreria open-source jQuery
    Script folder
    jQuery-1.4.1.js (165kb)
    jQuery-1.4.1.min.js (71kb)
    jQuery-1.4.1-vsdoc.js
    Usare la versione js in ambiente di dev
    Usare min.js in produzione!!!
  • 15. AJAX :: CDN Support
    Performance
    Il contenuto delle CDN è in cache in varie parti del mondo
    L’utilizzo degli scripts sulla CDN consente ai browser di riutilizzare i JavaScript anche su diversi web sites
    Risparmio di banda sui nostri server!!! Paga MS 
    Supporta SSL
  • 16. AJAX :: CDN Support
    Librerie incluse:
    jQuery
    jQuery Validation
    Ajax Control Toolkit
    ASP.NET Ajax
    ASP.NET MVC JavaScript Files 
  • 17. AJAX :: ScriptManager
    Lo ScriptManagersupporta la CDN semplicementeimpostando la proprietàEnableCdn
    <asp:ScriptManager ID="sm1" EnableCdn="true" runat="server" />
    Tuttii JS del framework ASP.NET (compresi validation e UpdatePanel)
    Performance!!
  • 18. ScriptManager Explicit Scripts
    Ieri veniva caricata tutta la libreria
    Oggi: AjaxFrameworkMode property
    Enabled: tutta la library (legacy behavior)
    Disabled: Ajax disabilitato/nessuno script
    Explict: selezione esplicita delle librerie core
    NB: compilation debug=“true” carica le library di debug!!!
  • 19. Session roadmap
    Core services
    AJAX
    Web forms
    Visual Studio 2010 Web Development Improvements
    Web Application Deployment
  • 20. Web Forms
    Setting Meta Tags with the Page.MetaKeywords and Page.MetaDescription Properties
    Enabling View State for Individual Controls
    Changes to Browser Capabilities
    Routing in ASP.NET 4
    Setting Client IDs
    Persisting Row Selection in Data Controls
    ASP.NET Chart Control
    Filtering Data with the QueryExtender Control
    Html Encoded Code Expressions
    Project Template Changes
    CSS Improvements
    Hiding div Elements Around Hidden Fields
    Rendering an Outer Table for Templated Controls
    ListView Control Enhancements
    CheckBoxList and RadioButtonList Control Enhancements
    Menu Control Improvements
    Wizard and CreateUserWizard
  • 21. Nuove Meta Tags properties
    Nuove property nella classe Page
    Page.MetaKeywords
    Page.MetaDescription
    Operano sui tag:
    <meta name="keywords" content="These, are, my, keywords" />
    <meta name="description" content="This is the description of my page" />
  • 22. Nuove Meta Tags property
    Funzionano come Page.Title
    Non esistono i meta tag nella sezione head => Add
    Esistono già i meta tag nella sezione head => Get/Set
    Impostabili in maniera dichiarativa nella direttiva Page (override degli eventuali tag meta)<%@ PageLanguage="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Keywords="These, are, my, keywords" Description="Thisis a description" %>
  • 23. ViewState 3.5
    Il viewstate a default è abilitato per tutta la pagina
    Aumenta le dimensioni della pagina e i tempi di caricamento
    E’ possibile disabilitarlo per l’intera pagina (ma così ogni controllo non ha il viewstate)
    Oppure abilitarlo ma è necessario disabilitare ogni singolo controllo
    Soluzione: tutti lasciano il ViewState abilitato 
  • 24. ViewState 4.0
    Nuova propertyViewStateMode nei WebControls
    Enumerato: Enabled, Disabled, e Inherit
    Si può settare in maniera dichiarativa nella direttiva @Page (anche Page è un WebControl)
    Valido solo se EnableViewState=true, altrimenti viene ignorato
    Tip: settare ViewStateMode = Disabled nella master page e abilitarlo solo per i controlli che ne hanno bisogno (o per i ContentPlaceHolder che lo utilizzano)
    Ancora più drastico: disabilitarlo da web.config
  • 25. Routing
    Fondamentale nel SEO, in MVC e REST
    http://website/products.aspx?categoryid=12
    http://website/products/software
    Presente da ASP.NET 3.5 SP1
    Built-in nella versione 4.0
  • 26. Routing: nuove feature
    PageRouteHandler
    HttpRequest.RequestContext e Page.RouteData
    Nuovi expression builder
    RouteUrl
    RouteValue
    RouteParameter
  • 27. Accesso ai parametri da codice
    HttpRequest.RequestContext e Page.RouteData(Page.RouteData è un wrapper di HttpRequest.RequestContext.RouteData)
    Demo: Search
  • 28. Accesso ai parametri da markup
    RouteUrlexpression
    <asp:HyperLinkID="HyperLink1“ NavigateUrl="<%$RouteUrl:SearchTerm=scott%>“>Searchfor Scott
    </asp:HyperLink>
    Genera il markup: http://<website>/search/scott
    Demo: RouteUrl
  • 29. Accesso ai parametri da markup
    Per leggere i parametri si usa la property RouteValue
    <asp:Label ID="Label1" runat="server" Text="<%$RouteValue:SearchTerm%>" />
    Demo: Search
  • 30. RouteData come parametri
    I Route Data possono essere utilizzati come markup direttamente nei controlli DataSource
    <asp:sqldatasourceid="SqlDataSource1" selectcommand="SELECT CompanyName,ShipperID FROM Shipperswhere CompanyName=@companyname“> <selectparameters> <asp:routeparametername="companyname" RouteKey="searchterm" /> </selectparameters></asp:sqldatasource>
  • 31. ClientID 3.5
    L’attributo id di ogni WebControl è generato a runtime
    Ne viene garantita l’univocità ma non è predittivo
    Fondamentale per l’accesso client ai controlli
    WebControl
    Id= [NamingContainer_]id
    Controlli “repeater”
    Id = <prefix>_NamingContainer_id_<SequentialNumber>
    Accesso tramite la propertyClientID
  • 32. ClientID 4.0
    ClientIDMode
    AutoID
    Static
    Predictable
    Inherit
    Page level (default AutoID)
    Control level (default Inherit)
    Quindi a default tutti i controlli hanno il comportamento legacy
  • 33. ClientIDMode AutoID
    Comportamento legacy
    WebControl
    Id= [NamingContainer_]id
    Controlli “repeater”
    Id = <prefix>_NamingContainer_id_<SequentialNumber>
  • 34. ClientIDMode Static
    Il ClientID è lo stesso dell’ID lato server
    Non viene concatenato nessun parent naming container
    Utile per i Web user control che possono essere posizionati in diverse pagine e differenti controlli quindi l’AutoID è completamente non predicibile
  • 35. ClientIDMode Predictable
    L’uso principale è nei controlli “repeater”
    Concatena l’ID con il naming container ma senza “ctlxxx”
    Si combina con la property ClientIDRowSuffix
    Si imposta col nome di un data field
    Tipicamente la chiave primaria
    Il valore viene usato come suffisso
    Il repeater non la utilizza ma imposta il RowIndex come suffix
  • 36. DataBound controls
    Gridview (1 o più campi concatenati)ClientIDRowSuffix = "ProductName, ProductId“id = rootPanel_GridView1_ProductNameLabel_W7_1
    ListView (1 solo campo concatenato)ClientIDRowSuffix = "ProductId“id = rootPanel_GridView1_ProductNameLabel_1
    Repeater (non applicabile, appende il RowIndex): Repeater1_ProductNameLabel_0
    FormView e DetailsView non sono multiriga
  • 37. ClientID: univocità!
    NB: è compito dello sviluppatore garantire che l’id generato sia univoco
    Senza univocità molto probabilmente ci saranno problemi con tutte le funzionalità che la richiedono come ad esempio la funzione client document.getElementById
  • 38. Persisting row selection
    3.5
    4.0
    nei controlli databound la selezione viene fatta in base al numero di riga e salvata attraverso le pagine
    Ad esempio selezionando la riga 2 nella prima pagina e cambiando pagina viene sempre selezionata la riga 2
    nuova propertyEnablePersistedSelection
    La riga viene selezionata in base alla Data Key
    Obbligatoria la propertyDataKeyNames
  • 39. Chart Control
    35 tipi di grafici
    Grafici 3D
    Più di 50 formule finanziarie e statistiche
    Data binding
    Supporto per formati quali data, ora e currency
    Interattività, gestione eventi e supporto Ajax
  • 40. Chart Control
    Introdotti come add-on per il framework 3.5 sp1
    Integrati nel framework 4.0
    Esempi:
    SamplesEnvironment for Microsoft ChartControls(http://go.microsoft.com/fwlink/?LinkId=128300)
  • 41. Html Encoded Code Expressions
    3.5
    4.0
    <%= expression %>
    Se non si fa esplicitamente l’encoding si rischiano gli attacchi XSS:
    <%= HttpUtility.HtmlEncode(expression) %>
    Nuova sintassi
    <%: expression %>
  • 42. CSS e renderingimprovements
    Nuovo motore di rendering dei Web Control
    Obiettivo: standard HTML
    Controllato da controlRenderingCompatibilityVersion
    <system.web><pages controlRenderingCompatibilityVersion="3.5|4.0"/>
    </system.web>
    Default 4.0 nel machine.config per i progetti su framework 4.0
  • 43. controlRenderingCompatibilityVersion
    3.5: comportamento legacy, 100% backwardcompatible e utilizza xhtmlConformance
    CSS FriendlyAdapters http://www.asp.net/cssadapters/
    4.0
    xhtmlConformance=Strict a default (XHTML 1.0 strict)
    Disable sui controlli non input non genera stili invalidi
    Stili per i div attorno agli elementi hidden
    Menù renderizzati tramite ul/li
    I validationcontrol non generano inlinestyles
    Image e Table non generano più l’attributo border=0
  • 44. Disable sui controlli non input
    <asp:Label id="Label" runat="server" Text="Test" Enabled="false">
    3.5<span id="Label1" disabled="disabled">Test</span>
    4.0<span id="Span1" class="aspnetdisabled">Test</span>
  • 45. Elementi hidden e div
    3.5
    Glielementi hidden (ad es. ViewState) contenuti in un DIV (standard XHTML)
    Problemi se i CSS utilizzanoi DIV
    4.0
    Aggiungeuna class CSS<divclass="aspNetHidden">...</div>
  • 46. Controlli template e tabelle
    3.5: Viene generata una tabella esterna
    FormView
    Login
    PasswordRecovery
    ChangePassword
    Wizard
    CreateUserWizard
  • 47. Controlli template e tabelle
    4.0: Nuova propertyRenderOuterTable 
    Non viene più generata la tabella esterna (table, tr e tdtag rimossi)
  • 48. Menù
    3.5 gestito tramite una serie di tabelle
    4.0 renderizzato tramite ul/li
    Demo: Menu40
  • 49. Image e Validator
    3.5
    il controllo Image genera un inline style con border “0”
    Anche i controlli validator generano degli inlinestyles
    4.0 rimossi gli inlinestyles
    Demo: Others
  • 50. CheckList e RadioButtonList
    3.5
    RepeatLayout: Flow (span) e Table (table)
    4.0
    Nuove opzioni:
    OrdererdList => li
    UnorderedList => ul
    Demo: Others
  • 51. Visual Studio 2010 Web Development Improvements
    Migliorata la compatibilità dei CSS con gli standard 2.1
    HTML e JavaScriptSnippets
    JavaScriptIntelliSenseEnhancements
  • 52. HTML e JavaScript Snippets
    Auto-complete dei tag nell’editor HTML
    Snippet per JavaScript
    Snippet per i controlli ASP.NET
    Gli snippet forniscono gli attributi obbligatori (ID, DataSourceID, ControlToValidate, Text…)
    Download di nuovi snippets
    Creazione di nuovi snippets
  • 53. JavaScript IntelliSense
    Riconosce oggetti generati dinamicamente (ad esempio registerNamespace)
    Miglioramenti alla performance nell’analisi di grosse librerie
    Maggiore compatibilità con third-partylibraries
    I commenti al codice sono dinamicamente aggiunti all’IntelliSense
  • 54. Web Application Deployment with Visual Studio 2010
    Web Packaging
    Web.config Transformation
    Database Deployment
    One-Click Publish per le Web Applications
  • 55. Web config transformation
    Web.config trasformabile tramite XML Document Transform
    Versioni diverse per dev, production
    Production = compilation debug=false!!
  • 56. ASP.NET MVC
    Areas Support
    Data-Annotation Attribute
    Validation Support
    Templated Helpers
  • 57. Dynamic Data
    Enabling Dynamic Data for Existing Projects
    Declarative DynamicDataManager Control Syntax
    Entity Templates
    New Field Templates for URLs and E-mail Addresses
    Creating Links with the DynamicHyperLink Control 
    Support for Inheritance in the Data Model 
    Support for Many-to-Many Relationships (Entity Framework Only) 
    New Attributes to Control Display and Support Enumerations 
    Enhanced Support for Filters
  • 58. Internet Explorer 9
    HTML 5 (draft!)
    Performance
    CSS3 (draft!)
    Supporto SVG
    Pinned sites
  • 59. HTML 5
    DRAFT!
    Canvas
    Nuovi tag
    Audio
    Video
    Semantic tags
    Client side storage
    Scalable Vector Graphics
  • 60. HTML 5 intellisense
    https://blogs.msdn.com/b/pietrobr/archive/2010/06/11/visual-studio-2010-e-html-5-intellisense.aspx
  • 61. Canvas
    Area per disegnare “al volo”
    L’output generato è una bitmap
    Non è modificabile ma deve essere ridisegnato completamente
    I comandi grafici sono inviati direttamente alla GPU
  • 62. Canvas
    <canvas id="myCanvas" width="200" height="200">
    Your browser doesn’t support Canvas, sorry.
    </canvas>
    <script type="text/javascript">
    var example = document.getElementById("myCanvas");
    var context = example.getContext("2d");
    context.fillStyle = "rgb(255,0,0)";
    context.fillRect(30, 30, 50, 50);
    </script>
  • 63. <video>
    È un tag html
    Formato MPEG-4/H.264 video
    Accelerazione hardware basatasulla GPU
    Attributi
    • src
    • 64. autoplay
    • 65. controls
    • 66. preload
    • 67. loop
    • 68. height & width
  • <audio>
    Come il video anchel’audio è un semplice tag HTML
    Formato: MP3 and AAC audio
    Attributi
    src
    autoplay
    controls
    preload
  • 69. Client side storage
    String based key-value pair
    Session storage
    Local storage
    Maggiore spazio dei cookie
    Non invia dati al server ad ogni richiesta come i cookie
  • 70. Session storage
    sessionStorage.setItem('fullname', ‘Rossi Mario');
    alert(“Ti chiami: " + sessionStorage.getItem('fullname'));
    alert(“Ciao " + sessionStorage.fullname);
    sessionStorage.removeItem('fullname');
  • 71. Local storage
    localStorage.setItem('fullname', ‘Rossi Mario');
    alert(“Ti chiami: " + localStorage.getItem('fullname'));
    alert(“Ciao " + localStorage.fullname);
    localStorage.removeItem('fullname');
  • 72. Supporto SVG
    Disegno vettoriale 2D tramite XML
    Shapes
    rect
    circle
    ellipse
    line
    polyline
    polygon
  • 73. Supporto SVG
  • 74. Semantic tags
    Un semantic tag è un tag il cui nome descrive il contenuto senza aver un particolare comportamento
    Nuovi tag
    section
    nav
    article
    aside
    hgroup
    header
    footer
    figure
    figcaption
    mark
  • 75. Layout classico
    Header
    Menu
    Un strutturatipicacontiene:
    Contenuti
    <div id=“header”>….
    <div id=“menu”>…
    <div id=“sidebar”>…
    <div id=“content”>…
    <div id=“footer”>…
    Sidebar
    Footer
  • 76. Semantic tags
    • <header>
    • 77. <nav> (menu di navigazione)
    • 78. <aside> (sidebar)
    • 79. <section> … <article> …
    • 80. <footer>
    • 81. E nuovi relation (rel) (archives, pingback, icon, etc);
  • Developer tools (aka F12)
    Interfaccia visuale integrata per l’accesso a
    HTML, CSS, DOM
    Javascript Debugging
    Javascript Profiling
    Compatibilità dei siti con IE9
    Network Tab
  • 82. Traccia tutte le richieste uscenti dalla pagina e le relative risposte
    Informazioni sintetiche
    Informazioni di dettaglio
    Network Tab
  • 83. Javascript Profiling
  • 84. Network Tab Summary View
  • 85. Network Tab Detail View
  • 86. Performance
    Accelerazione tramite GPU
    Nuovo engine Javascript “Chakra”
    Multi core background compilation
  • 87. Nuovo engine Javascript
  • 88. Accelerazione tramite GPU
    <canvas>
    <video>
    <audio>
    CSS3
    SVG 1.1
    Web fonts
  • 89. Pinning
  • 90. Pinning: Thumbnails Buttons
  • 91. RiferimentiASP.Net
    ASP.NET 4.0
    http://www.asp.net/learn/whitepapers/aspnet4http://weblogs.asp.net/Scottgu/
    Internet Information Service
    http://www.iis.net/download/applicationwarmup
    http://learn.iis.net/page.aspx/124/introduction-to-applicationhostconfig/
    CDN
    http://www.asp.net/ajaxlibrary/CDN.ashx
  • 92. RiferimentiASP.Net
    Chart controls
    Microsoft ChartControls Sampleshttp://go.microsoft.com/fwlink/?LinkId=128300
    XSS: http://msdn.microsoft.com/en-us/library/ff649310.aspx
  • 93. Riferimenti IE9
    Internet Explorer Developer Center on MSDN
    http://msdn.com/ie
    Windows User Experience Interaction Guidelines
    http://msdn.microsoft.com/en-us/library/aa511446.aspx
    Channel 9 Taskbar related videos
    http://channel9.msdn.com/tags/Taskbar/
    http://channel9.msdn.com/Search/?Term=taskbar
    Icon Guidelines
    http://msdn.microsoft.com/en-us/library/aa511280.aspx
  • 94. That’s all folks
    Domande?
  • 95. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
    The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.