Il 13 settembre del 2011 sono state rilasciate la preview del .NET Framework 4.5 e di Visual Studio 2011, anche noti come .Net Framework e VS vNext.
Sicuramente la feauture più attesa è il supporto diretto alle nuove tecnologie che verranno introdotte con Windows 8, riunite sotto il cappello di Windows Runtime (WinRT). Si tratta di un framework multi-linguaggio che affianca il CLR e che può essere assimilato ad una evoluzione degli “odiati” COM in chiave moderna, con cui programmare il nuovo gioiello di Redmond tramite markup web (HTML 5) e relativi linguaggi di programmazione (javascript), senza però tagliare fuori lo sviluppo con gli strumenti classici. La nuova API è pensata per abbracciare le esigenze del “sempre connesso”, nate dalla diffusione del concetto di “APP” e dell’esplosione del mercato dei dispositivi Mobile.
La nuova architettura relativa alle App Metro
Una volta sviluppata la propria APP, sarà possibile creare il “package” di deploy, una sorta di componente atomico indipendente (ad esclusione ovviamente del .Net Framework stesso) che potrà essere installato in diversi modi: da Visual Studio a PowerShell fino al futuro Windows Store.
Ovviamente il concetto focale è quello di Markup, ovvero programmare utilizzando un paradigma già presentato con XAML, ed ora esteso ad HTML5/JavaScript, creando interfacce basate sul nuovo look Metro (leggasi Windows Phone 7) e su una intrinseca gestione asincrona dell’App stessa, isolata all’interno della propria sandbox.
Metro e Windows 8 (preview edition)
C# 5 e VB 11 puntano, perciò, a semplificare al massimo l’invocazione asincrona dei metodi/servizi grazie alle nuove keyword async e await che utilizzano implicitamente le funzionalità di Task proprie del Parallel Framework, introdotto come componente aggiuntivo della precedente versione del framework per sfruttare appieno le capacità multi-core dei processori.
Ritornando al framework 4.5, troviamo un migliorato Garbage Collector (Background Server GC), che sfrutta le CPU multi-core e gestisce più efficacemente la de-allocazione di oggetti di grandi dimensioni (Large Object), una diminuzione del tempo di avvio delle applicazioni ASP.NET (stimato da Microsoft introno al 35%), l’inclusione della libreria AntiXSS e la gestione degli handler e del binding sul modello delle WebForm.
Restando in ambito web, a settembre Microsoft ha rilasciato inoltre la preview release di ASP.NET MVC 4 (la prima release è stata presentata ad aprile del 2009), il framework che offre un approccio alternativo al disegno di applicazioni web tramite la declinazione “model2” del pattern architetturale MVC. Ovviamente la nuova versione è in grado di sfruttare appieno le nuove feauture dei linguaggi, oltre ad abbracciare il mondo HTML5/CSS3.
Passando al mondo desktop, anche le applicazioni WPF 4.5 sono decisamente più reattive, ed il layer si arricchisce dei Ribbon, di nuove funzioni sul Data Binding ed una rivista interoperabilità con Win32.
Novità interessanti arrivano anche per quanto riguarda WCF 4.5, con il supporto ai WebSocket, che consentono di ottimizzare la comunicazione (bidirezionale) su rete, diminuendo la richiesta di banda e il tempo di latenza nella trasmissione grazie ad un sistema di Compressione Binaria. Le attività di Configurazione vengono ulteriormente semplificate, soprattutto in ambito IIS, mentre l’engine produce ora un WSDL “atomico”, ossia contenuto in un unico file senza reference esterni.
Workflow Foundation 4.5 reintroduce ufficialmente le State Machine, oltre a presentare nuove funzioni per il Designer, il supporto alle Espressioni in C# e lo sviluppo Contract First. Purtroppo sembra che anche in questa versione il versioning non sarà supportato.
Il nuovo framework includerà nativamente anche il Managed Extensibility Framework (MEF), utile per realizzare applicazioni leggere, estensibili e ben strutturate che favoriscono il riuso del codice.
Passando a Visual Studio vNext, come si può facilmente intuire, l’IDE ora supporta pienamente HTML 5 e CSS3, ponendosi come soluzione naturale per lo sviluppo di soluzioni Windows 8, ma anche per applicazioni cloud pensate per la piattaforma Windows Azure.
VS 2011 Developer Preview Installer
Un fastidioso bug che dovrebbe essere risolto con questa nuova release è quello dei frequenti blocchi (freeze) della versione 2010.
VS 2011 Developer Preview, Start Page
Dal punto di vista della UI, il componente che ha subito una modifica radicale è Solution Explorer (in italiano Esplora Risorse), grazie al quale è ora possibile Cercare Tipi, Proprietà dei Tipi, Simboli e Relazioni tra essi. Arriva, inoltre, la finestra Quick Launch, per eseguire direttamente comandi, e l’ highlighter del codice.
VS 2011 Developer Preview, Solution Explorer
A fare la parte da leone, però, sono le nuove funzionalità dedicate al miglioramento dell’intero ciclo di gestione delle applicazioni, a partire dalla migliore gestione del TDD (Test Drive Development) in stretta simbiosi con il Test Impact Analysis. Centrale risulta il nuovo Test Runner, che permette di lanciare direttamente test di MsTest, nUnit e xUnit, oltre ad introdurre gli extensibility point per agganciare altri framework di test.
VS 211 Test Explorer
Quello che risulta più oscuro, invece, è il futuro di Silverlight, che quasi sicuramente verrà accantonato da Microsoft in favore di HTML 5, non prima però del rilascio della versione 5. La scelta non sorprende, vista anche la decisione (non ufficiale) di Adobe di bloccare lo sviluppo di Flash per le piattaforme Mobile. Le indiscrezioni sono inoltre avvalorate dal fatto che Scott Guthrie, vice presidente della visione Microsoft Developer, nel corso di un webcast è stato molto vago circa le domande relative proprio al futuro di Silverlight e alle versioni successive alla 5.
Si chiude qui il nostro lungo viaggio attraverso l’evoluzione dei linguaggi e degli ambienti di sviluppo Microsoft, che, volenti o nolenti, hanno caratterizzato e condizionato l’evoluzione del software e, sicuramente, continueranno a farlo.