7. CoreServices – Web.Config Multitargeting Già presente in VS 2008 Multitargeting in VS2010: Supporta .Net Framework 2.0 – 3.5 (sp1) – 4.0 Si adattano le reference L’intellisense e la propertygrid mostrano solo le caratteristiche della versione in uso
9. CompressedSession State Utilizzato in configurazione web farm Session state “out ofprocess” System.IO.Compression.GZipStream Costoso a livello di CPU Si dichiara: compressionEnabled="true" <sessionStateallowCustomSqlDatabase="true" sqlConnectionString="data source=local;InitialCatalog=sessionstatedb" compressionEnabled="true" />
10. Extensible Output Cache Cache per l’output di pagine e controlli E’ possibile definire politiche di caching intelligenti Deve implementare OutputCacheProvider Và dichiarata nel web.config Provider per soluzioni di terze parti: Velocity, FileSystem…
13. Web DeploymentPackages Viene generato un file compresso (.zip) contenente: Applicazione web Impostazioni di IIS database (schema e dati) di SQL Server Può essere esteso (es: certificati, chiavi di registro, .dll in GAC, …) Si installa da IIS Manager o da command-line e API
16. Project Templates E’ possibile creare due tipi di Web Application / Web Site Empty Starter Template Gli Starter Templates implementano una mini soluzione di partenza: Membership Master.Page (con css) Jquery Disponibilità di altri Online Templates
18. SEO news Page.MetaKeywords e Page.MetaDescription Redirect Permanente Genera una risposta HTTP 301 (movedpermanently) Routing anche con Web Forms
19. Gestione Viewstate Croce e delizia di ASP.NET Web Forms Abilitato per default su tutti i controlli Dovrebbe essere disabilitato esplicitamente sui singoli controlli quando non serve In realtà non si modifica quasi mai Ora si può cambiare la modalità di gestione del ViewState
20. Gestione Viewstate Si può gestire su ogni controllo o pagina mediante l’attributo ViewStateMode: Enabled:ViewStateabilitato per ilcontrollo Disabled: ViewState disabilitato Inherit: il controllo eredita il valore del padre Per default è Enabled a livello di pagina e Inherit sui singoli controlli (si comporta come nelle versioni precedenti)
21. Controllo sugli ID Proprietà ClientIDMode che permette di controllare la generazione degli ID HTML dei singoli controlli ID più leggibili e più “leggeri” Prima: ctl00_Panel1_PlaceHolder2_ContentBox_TextBox1 Facilità di utilizzo di JavaScript/Ajax Prima: $get(‘ctl00_Panel1_PlaceHolder2_ContentBox_TextBox1’) o in alternativa: $get(‘<%= TextBox1.ClientID %>’)
22. Controllo sugli ID La proprietà ClientIDMode può valere: AutoID: Generazioneautomatica come l’attuale Static: ProprietàClientIDvalorizzata come danoispecificato “lato server” in ID Predictable: Usatanei data controls, concatenal’ID del controllo a quello del parent. Puòessereutilizzatoassieme a ClientIDRowSuffix per concatenareproprietàdioggetti in binding. Inherit: Ereditailcomportamentoimpostatosulcontrollo padre.
23. HTML Encoded Code Express Spesso si utilizza per scrivere testo nella response la sintassi <%= expression%> Possibilità di Cross Site Scripting Nuova sintassi aggiunta <%: expression%> Equivale a scrivere<%= HttpUtility.HtmlEncode(expression)%> Introdotta nuova interfaccia IHtmlString e classe HtmlString per lavorare “sulla fiducia”
24. ASP.NET Chart Control Ora disponibile nativamente in ASP.NET 35 differenti tipi di grafico Supporto al binding Interattività
26. QueryExtenderControl Per filtrare dati in modo più semplice utilizzando controlli Data Sources Utilizzabile con EntityDataSource o LinqDataSource Poggia su LINQ: il filtro viene eseguito sul server garantendo prestazioni <asp:LinqDataSourceID="dataSource" runat="server" TableName="Products"> </asp:LinqDataSource> <asp:QueryExtenderTargetControlID="dataSource" runat="server"> <asp:SearchExpressionDataFields="ProductName, Supplier.CompanyName" SearchType="StartsWith"> <asp:ControlParameterControlID="TextBoxSearch" /> </asp:SearchExpression> </asp:QueryExtender>
27. QueryExtenderControl SearchExpression Ricerche sul contenuto dei campi RangeExpression Ricerche su valori numerici all’interno di un intervallo PropertyExpression Ricerche sul valore di un campo (tipicamente bool) OrderByExpression Esegue un ordinamento sui dati CustomExpression Personalizzabile implementando un metodo di ricerca …
29. Supporto nuovi browser Aggiornati i browser definitionfiles per la funzionalità HttpBrowserCapabilities Aggiunto supporto per Chrome, Safari, RIM Blackberry, iPhone Prima per aggiornamenti era necessario un processo di modifica-registrazione-riavvio Ora sfrutta il meccanismo dei providers <browserCaps provider=“MyClassLibrary.MyProvider, MyClassLibrary, Version=1.0.0.0, Culture=neutral" />
30. Migliore HTML/CSS/Accessibilità Attributo in machine.config modificabile <pagescontrolRenderingCompatibilityVersion="3.5|4.0"/> Default 4.0 sovrascrivibile in web.config, usare 3.5 per compatibilità Per default genera markup XHTML 1.0 Strict Molti controlli (es. menu) generano codice semanticamente corretto e accessibile
31. Migliore HTML/CSS/Accessibilità Enabled=“false” ora inserisce una classe CSS personalizzabile (prima sempre attrdisabled) Controlli di validazione ora non inseriscono stili CSS inline Elementi Hidden di “sistema” (es. ViewState) racchiusi in div con classe CSS aspNetHidden Non viene più generato l’attributo border=“0” (per table e image)
32. Migliore HTML/CSS/Accessibilità Eliminata la generazione di outertable nei controlli “templetizzati” FormView Login PasswordRecovery ChangePassword Wizard CreateUserWizard Per farlo c’è la proprietà RenderOuterTable
33. Novità Ajax jQuery 1.4.1 incluso nei progetti per default Supporto Content Delivery Network per servire MS Ajax e jQuery File JS scaricati dai server MS geografici Caching dei file sui server Utilizzabile da ScriptManager con EnableCdn ScriptManagerExplicitScripts AjaxFrameworkMode=Enabled: come prima AjaxFrameworkMode=Disabled: nessuno script servito AjaxFrameworkMode=Explicit: lista di riferimenti esplicita
34. Sviluppo WEB con VS2010 Utilizzabili Snippets per JavaScript e HTML VS 2010 include +200 snippets per HTML/JS Ulteriore snippets scaricabili Potenziato Intellisense per JavaScript Intellisense nativo jQuery