Asp.net 4 Community Tour VS2010
-
Upload
fabrizio-bernabei -
Category
Technology
-
view
1.496 -
download
2
description
Transcript of Asp.net 4 Community Tour VS2010
Novità Asp.Net 4.0Nuovi strumenti per gli sviluppatori web
Fabrizio BernabeiAndrea Cruciani
Agenda
o Core Serviceso Deployo Project Templateso SEO
o Web Formso Ajaxo Sviluppo WEB con VS2010
Core Services - Preload
o Permette di automatizzare l’avvio dell’applicazione web
o Prerequisiti: IIS 7.5 - Windows Server 2008 R2 (Windows 7)
o Modulo da scaricare “Application Warm-Up“ (http://www.iis.net/download/applicationwarmup)
o IProcessHostPreloadClient
Core Services - Preload
<applicationPools> <add name="MyAppWorkerProcess"
managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />
</applicationPools>
<sites> <site name="MySite" id="1"> <application path="/" serviceAutoStartEnabled="true"
serviceAutoStartProvider="PreWarmMyCache" /> </site> </sites><serviceAutoStartProviders> <add name="PreWarmMyCache" type="PreWarmCache,
MyAssembly" /> </serviceAutoStartProviders>
Core Services - Preload
public class PreWarmCache : System.Web.Hosting.IProcessHostPreloadClient {
public void Preload(string[] parameters) {
// logica di inizializzazione dell’applicazione }
}
Core Services – Web.Config
o Minification
Tadah!
Core Services – Web.Config
o Multitargetingo Già presente in VS 2008
o Multitargeting in VS2010:o Supporta .Net Framework 2.0 – 3.5 (sp1) –
4.0o Si adattano le referenceo L’intellisense e la property grid mostrano
solo le caratteristiche della versione in uso
Web.config Transformation
o Si possono differenziare le configurazionio Web.release.configo Web.debug.configo Web.testing.configo …
Compressed Session State
o Utilizzato in configurazione web farmo Session state “out of process”
o System.IO.Compression.GZipStreamo Costoso a livello di CPUo Si dichiara:
compressionEnabled="true" <sessionState allowCustomSqlDatabase="true" sqlConnectionString="data source=local;Initial Catalog=sessionstatedb" compressionEnabled="true" />
Extensible Output Cache
o Cache per l’output di pagine e controlli
o E’ possibile definire politiche di caching intelligenti
o Deve implementare OutputCacheProvider
o Và dichiarata nel web.configo Provider per soluzioni di terze parti:
o Velocity, FileSystem…
DEMO
Deploy
Web Deployment Packages
o Viene generato un file compresso (.zip) contenente:o Applicazione webo Impostazioni di IISo database (schema e dati) di SQL Server
o Può essere esteso (es: certificati, chiavi di registro, .dll in GAC, …)
o Si installa da IIS Manager o da command-line e API
One-click Publishing
o E’ possibile definire un publishing profile
Project Templates
Project Templates
o E’ possibile creare due tipi di Web Application / Web Siteo Emptyo Starter Template
o Gli Starter Templates implementano una mini soluzione di partenza:o Membershipo Master.Page (con css)o Jquery
o Disponibilità di altri Online Templates
DEMO
SEO news
o Page.MetaKeywords e Page.MetaDescription
o Redirect Permanente
o Genera una risposta HTTP 301 (moved permanently)
o Routing anche con Web Forms
Gestione Viewstate
o Croce e delizia di ASP.NET Web Formso Abilitato per default su tutti i controllio Dovrebbe essere disabilitato
esplicitamente sui singoli controlli quando non serve
o In realtà non si modifica quasi mai o Ora si può cambiare la modalità di
gestione del ViewState
Gestione Viewstate
o Si può gestire su ogni controllo o pagina mediante l’attributo ViewStateMode:o Enabled: ViewState abilitato per il
controlloo Disabled: ViewState disabilitatoo Inherit: il controllo eredita il valore del
padreo Per default è Enabled a livello di
pagina e Inherit sui singoli controlli (si comporta come nelle versioni precedenti)
Controllo sugli ID
o Proprietà ClientIDMode che permette di controllare la generazione degli ID HTML dei singoli controlli
o ID più leggibili e più “leggeri”o Prima: ctl00_Panel1_PlaceHolder2_ContentBox_TextBox1
o Facilità di utilizzo di JavaScript/Ajaxo Prima:
$get(‘ctl00_Panel1_PlaceHolder2_ContentBox_TextBox1’)o o in alternativa: $get(‘<%= TextBox1.ClientID %>’)
Controllo sugli ID
o La proprietà ClientIDMode può valere:o AutoID: Generazione automatica come
l’attualeo Static: Proprietà ClientID valorizzata
come da noi specificato “lato server” in ID
o Predictable: Usata nei data controls, concatena l’ID del controllo a quello del parent.o Può essere utilizzato assieme a
ClientIDRowSuffix per concatenare proprietà di oggetti in binding.
o Inherit: Eredita il comportamento impostato sul controllo padre.
HTML Encoded Code Expresso Spesso si utilizza per scrivere testo
nella response la sintassi <%= expression %>
o Possibilità di Cross Site Scriptingo Nuova sintassi aggiunta <%:
expression %>o Equivale a scrivere
<%= HttpUtility.HtmlEncode(expression) %>
o Introdotta nuova interfaccia IHtmlString e classe HtmlString per lavorare “sulla fiducia”
ASP.NET Chart Control
o Ora disponibile nativamente in ASP.NET
o 35 differenti tipi di graficoo Supporto al bindingo Interattività
DEMO
QueryExtender Control
o Per filtrare dati in modo più semplice utilizzando controlli Data Sources
o Utilizzabile con EntityDataSource o LinqDataSource
o Poggia su LINQ: il filtro viene eseguito sul server garantendo prestazioni
o <asp:LinqDataSource ID="dataSource" runat="server" TableName="Products">
o </asp:LinqDataSource> o <asp:QueryExtender TargetControlID="dataSource" runat="server"> o <asp:SearchExpression DataFields="ProductName,
Supplier.CompanyName" o SearchType="StartsWith"> o <asp:ControlParameter ControlID="TextBoxSearch" /> o </asp:SearchExpression> o </asp:QueryExtender>
QueryExtender Control
o SearchExpressiono Ricerche sul contenuto dei campi
o RangeExpressiono Ricerche su valori numerici all’interno di un
intervallo
o PropertyExpressiono Ricerche sul valore di un campo (tipicamente bool)
o OrderByExpressiono Esegue un ordinamento sui dati
o CustomExpressiono Personalizzabile implementando un metodo di
ricerca
o …
DEMO
Supporto nuovi browser
o Aggiornati i browser definition files per la funzionalità HttpBrowserCapabilities
o Aggiunto supporto per Chrome, Safari, RIM Blackberry, iPhone
o Prima per aggiornamenti era necessario un processo di modifica-registrazione-riavvio
o Ora sfrutta il meccanismo dei providers
o <browserCaps provider=“MyClassLibrary.MyProvider, MyClassLibrary, Version=1.0.0.0, Culture=neutral" />
Migliore HTML/CSS/Accessibilitào Attributo in machine.config
modificabileo <pages
controlRenderingCompatibilityVersion="3.5|4.0"/>
o Default 4.0 sovrascrivibile in web.config, usare 3.5 per compatibilità
o Per default genera markup XHTML 1.0 Strict
o Molti controlli (es. menu) generano codice semanticamente corretto e accessibile
Migliore HTML/CSS/Accessibilitào Enabled=“false” ora inserisce una
classe CSS personalizzabile (prima sempre attr disabled)
o Controlli di validazione ora non inseriscono stili CSS inline
o Elementi Hidden di “sistema” (es. ViewState) racchiusi in div con classe CSS aspNetHidden
o Non viene più generato l’attributo border=“0” (per table e image)
Migliore HTML/CSS/Accessibilitào Eliminata la generazione di outer table
nei controlli “templetizzati”o FormViewo Login o PasswordRecovery o ChangePassword o Wizard o CreateUserWizard
o Per farlo c’è la proprietà RenderOuterTable
Novità Ajax
o jQuery 1.4.1 incluso nei progetti per default
o Supporto Content Delivery Network per servire MS Ajax e jQueryo File JS scaricati dai server MS geograficio Caching dei file sui servero Utilizzabile da ScriptManager con
EnableCdno ScriptManager Explicit Scriptso AjaxFrameworkMode=Enabled: come primao AjaxFrameworkMode=Disabled: nessuno script
servitoo AjaxFrameworkMode=Explicit: lista di riferimenti
esplicita
Sviluppo WEB con VS2010
o Utilizzabili Snippets per JavaScript e HTMLo VS 2010 include +200 snippets per
HTML/JSo Ulteriore snippets scaricabili
o Potenziato Intellisense per JavaScripto Intellisense nativo jQuery
Grazie… Domande?
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Visual Studio, the Visual Studio logo, and [list other trademarks referenced] are trademarks of the Microsoft group of companies.
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.