Visual Studio 2010: le vere novità che altri non dicono.

[ 1 ] Comment
Share

Visual Studio 2010 è stato ufficialmente rilasciato e lanciato il 12 Aprile 2010. Tra i tanti articoli che abbiamo letto e consultato in giro per la rete, nessuno ha spiegato davvero quali sono le vere novità del prodotto.

Le novità

- Completamente riscritto con WPF
- Finestre completamente “floating”, supporto multi monitor
- Nuovo engine per Intellisense
- Consente di cercare tra i membri usando una stringa parziale
- Nuovo designer web e possibilità di disabilitarlo del tutto
- Modalità code only, aumenta lo spazio a disposizione
- Nuovo sistema di deployment (anche per database)
- Smart task e snippet anche per l’HTML
- Miglior supporto agli standard web, fino ad XHTML 1.1 e CSS 2.1
- Nuovi tipi di progetto
- Supporto integrato a jQuery e nuovo intellisense Javascript
- Nuovo menu Add Reference che parte dalla solution e non blocca VS! ;)

Multi-targeting e migrazione

VS 2010 supporta :
- .NET Framework 2.0
- .NET Framework 3.5 (+ SP 1)
- .NET Framework 4.0

Cambiando la versione si adattano:
- Reference
- Compilatori
- BCL

Migrazione

Compatibile al 100% con 2.0 e 3.5: basta ricompilare

- L’unico problema potrebbero essere le naming collision
- Cioè una vostra classe che esiste in un namespace nuovo

Web.config minification
Avete presente il web.config di default di ASP.NET 3.5?
Ecco come è quello di ASP.NET 4.0:

<?xml version=”1.0″?>
<configuration>
<system.web>
<compilation targetFramework=”4.0″ />
</system.web>
</configuration>

Warm-up dell’applicazione

Consente di associare codice al caricamento di un’applicazione ASP.NET

Richieste IIS 7.5+ASP.NET 4.0:
- C’è un add-on per IIS 7.5 che funziona richiamando una pagina all’avvio

È ideale in scenari dove al caricamento dell’applicazione corrispondono dei task pesanti da gestire, ad esempio, per notificare all’interno di un load balancer che il nodo è pronto a servire la richieste

ASP.NET WebForms 4.0

Page.MetaKeywords e Page.MetaDescriptio:
- <%@ Page Keywords=‚key‛ Description=‚Descrizione‛ %>

Nuova code expression per l’HTML Encode
<%:expression%> equivale a <%=Server.HtmlEncode(expression)%>
Rendering migliorato
<system.web><pagescontrolRenderingCompatibilityVersion=”3.5|4.0″/></system.web>

Se assume ilvalore 4.0:
- xhtmlConformance impostato su “Strict” (XHTML 1.0 strict)
- Attributo enabled emesso solo sui controlli che lo supportano
- I div intorno ai campi nascosti possono essere stilizzati
- Il controlloMenu emette codice corretto ed accessibile.
- I validation control non emettono codice in linea (il colore rosso fisso!)
- Tutti i controlli che derivano da Table e Image non emettono più l’attribute border

Output migliorato
Questi controlli non emettono più una <table />

- FormView
- Login
- PasswordRecovery
- ChangePassword
- Wizard
- CreateUserWizard

Il comportamento può essere modificato localmente
<asp:FormView runat=‚server‛ RenderOuterTable=“false”/>

DataControl 4.0
Il nuovo controllo ListView non necessita più di un LayoutTemplate
<asp:ListView runat=”server”>
<ItemTemplate> <% Eval(‚X”)%> </ItemTemplate>
</asp:ListView>

CheckBoxList e RadioButtonList non usano <table />
<asp:CheckBoxList runat=‚server‛ …RepeatLayout=‚OrderedList|UnorderedList‛ />
OrderList: <ol><li>…</li></ol>
UnorderList: <ul><li>…</li></ul>

Url Route per WebForms

Parte integrante di System.Web
- Ma si può usare anche con il SP1 di ASP.NET 3.5

ASP.NET 4.0 include queste novità:
- PageRouteHandler che passa in automatico ivalori alla route
- Le proprietàHttpRequest.RequestContexte Page.RouteDataper accedere alle informazioni della route
- Due expression builder specifici
- RouteUrl: per creareun URL passando i parametri necessari
- RouteValue: per estrarre informazioni dal RouteContext.
- RouteParameter: per passare informazioni ad un controlloDataSource (tipoFormParametero ControlParameter)

Il nuovo ViewState

Di default il ViewState è abilitato sull’intera pagina
- Questo causa problemi se si lascia attivo sui controlli figli
- Viewstate = consumo di banda
- Le best practice vogliono che si disattivi sui controlli su cui non serve; la realtà invece vuole che si lasci attivo ovunque…

ASP.NET 4.0 introduce la possibilità di controllarlo:
- Padre senza ViewState, figli con ViewState

Si regola attraverso il nuovo attributo ViewStateMode:
- Enabled: abilitato
- Disabled: disattivato
- Inherit: eredita quello del contenitore
- Occorre sempre tenere ViewState=“true”

Gestire il ClientID
Stanchi di codice come questo?
<script type=‚text/javascript‛>
var v = $(‘<%=MyControl.ClientID%>’);

</script>
<asp:textbox id=‚MyControl‛ runat=‚server‛ />

I valori del ClientID

Nuova proprietà ClientIDMode:
- AutoID: emula il comportamento di ASP.NET 3.5
- Static: genera un ID statico, senza usare quello del container
- Predictable: per controllicon template, concatena il valore dell’ID con quellodel contenitore
- Non contiene”ctlxxx“
- ClientIDRowSuffix rapppresenta il suffisso da utilizzareInherit: eredita  il comportamento dal contenitore (default)

Impostarlo globalmente
Si può fare nella configurazione
<system.web>
<pages clientIDMode=”Predictable” />
</system.web>

O a livello di pagina
<%@Page ClientIDMode=”Predictable” %>

Se si usa Static, bisogna assicurarsi manualmente che ci non siano ID duplicati

ASP.NET Chart
Disponibili come add-on per la 3.5, sono integrati in ASP.NET 4.0:
- 35 tipi diversi di chart
- Supporto per legende, titli, area, note
- Supporto 3D per molti tipi di chart
- Binding semplificato

Dynamic Data 4.0

È la seconda versione dei Dynamic Data:
- Consente di mappare un DataContext di LINQ to SQL o un ObjectContext di Entity Framework ed avere un sistema CRUD di gestione delle entità
- Supporta filtri, ordinamenti, template, etc

QueryExtender (utilizzabili anche al di fuori di questo contesto):
- Consente di filtrare i dati in maniera più raffinati

- In v1 solo “=“, ora anche filtri complessi (StartsWith, etc – Range – PropertyExpression – CustomExpression

DynamicDataManager dichiarativo:
- In markup

Entity Template:
- Consente di specificare facilmente un template custom per ogni Entity (Es: entity Product, il template va in \DynamicData\EntityTemplates\Products.asp |(XX_Insert.aspx, XX_Edit.aspx))

- Nuovi template per URL e E-mail
- Nuovo controllo DynamicHyperLink
- Supporto per l’ereditarietà
- Supporto per gli enum

OutputCache 4.0
OutpuCache con provider model: consente ad esempio di salvare su disco il risultato in HTML delle pagine processate

<caching>
<outputCache defaultProvider=‚DiskCache‛>
<providers>
<add name=”DiskCache‚ type=‚A.B.C, D‛/>
</providers>
</outputCache>
</caching>

System.Runtime.Caching

La cache è stata spostata da System.Web.dll in System.Runtime.Caching.dll:
- Ora può essere usata anche in altre applicazioni senza referenziare ASP.NET

Per rendere possibile l’uso di provider, vengono introdotti:
- Classi astratte per l’implementazione di provider concreti
- Una implementazione di default per il caching in memoria nella classe MemoryCache

MemoryCache supporta le aree:
- Aree separate all’interno di un singolo AppDomain

Quelle che veniva chiamate CacheDependency, ora sono Change Monitors:
- Da chiave, da file, da SQL Server, custom

C’è un nuovo sistema per specificare le policy di storage dell’oggetto in Cache:
- Expire, Priority, callback

Di conseguenza le API sono semplificate

Cache provider

A regime ci saranno provider per:
- Windows Server AppFabric Cache (Velocity)
- Windows Azure AppFabric Cache
- Altri engine di cache distribuita

Per farsi un provider, occorre ereditare dalla classe ObjectCache:
- C’è solo MemoryCache già pronto

Se si usa la cache di ASP.NET (System.Web.Caching) l’accesso a MemoryCache è trasparente

Web Application Deployment

MSDeploy con file compresso (.zip) in grado di portarsi dietro:
- Impostazioni di IIS
- Contenuti
- Database (schema e dati) di SQL Server
- Task per installare certificati, componenti, etc

Il web package si installa da IIS Manage:

- Anche da command-line e API (Si attende che i provider lo supportino nativamente)

Web.config transformation
Consente di avere più configurazioni per i diversi ambienti:
- Web.Release.config
- Web.Debug.config
- Web.Staging.config

Pillole

Nuovo provider model per le browser capabilties:
- Si può inserire la propria logica di rilevazione

SessionState con contenuto compress:
- Al volo, on demand, ottimizza l’occupazione di memoria

Response.RedirectPermanent per status code 301
URL consentiti configurabili da web.confi:
- Consente di specificare caratteri da bloccare

Request Validation estensibil:
- Consente di aggiungere la propria logica alla validazione dell’input di default (quella che vieta l’HTML nelle form, per capirci…)

Encoder personalizzabile per HTML, URL e header HTT:
- Si applica a System.Web.HttpUtility e HttpServerUtility

Nuovo aspnet.config per configurare solo ASP.NET:
- Come machine.config, nella directory di installazione del .NET Framework
E PER CHI SVILUPPA APPLICAZIONI MOBILE?
Visual Studio 2010 purtroppo non supporta lo sviluppo delle applicazioni mobile e per questo motivo per sviluppare applicazioni per Windows Phone 7 è disponibile il Development kit ed è facilmente installabile grazie ad un installer automatico che contiene anche numerosi tool ed applicazioni per lo sviluppo di XNA Game Studio ma anche del famoso Silverlight o di Visual Basic.

L’installazione di tali strumenti consentirà anche di esplorare il nuovo sistema operativo per capirne le sue potenzialità.
Per emulare Windows Phone 7 è necessario essere anche in possesso di un’apposita versione personalizzata della ROM che sarà disponibile nel kit stesso. L’operazione è semplice ma molto delicata e richiede solo un po di tempo prima di funzionare a dovere.

Oltre ai nuovi Visual Studio e .Net, Microsoft ha annunciato la disponibilità in settimana della versione Rtw di Silverlight 4, con nuove funzionalità out-of-browser, ottimizzazioni per gli sviluppatori di applicazioni aziendali e oltre 60 controlli precompilati e personalizzabili. Per i dettagli tecnici e gli approfondimenti è possibile visitare il dedicato allo sviluppo di Windows Phone.

One Response to Visual Studio 2010: le vere novità che altri non dicono.

  1. [...] This post was mentioned on Twitter by Thinking Technologie, Thinking Technologie. Thinking Technologie said: Post modificato: Visual Studio 2010: le vere novità che altri non dicono. ( http://blog.thinkingroup.it/?p=175 ) [...]

Lascia un Commento