Menu

2001: .Net e i linguaggi del framework

microsoft dotnet logoLe origini di .Net risalgono al 1996, quando Anders Hejlsberg, precedentemente Chief Architect di Delphi in Borland, assumere il ruolo di Chief Architect in Microsoft relativamente allo sviluppo di Visual J++ e delle librerie Windows Foundation Classes (alias WCF), pensate, inizialmente, per la creazioni di GUI professionali per Windows sfruttando il linguaggio Java. J++ comunque non abbraccia in pieno le specifiche SUN, scatenando una causa legale con Microsoft che porterà all’abbandono ufficiale del linguaggio. Parte del Core di J++ verrà utilizzato per realizzare J#, un linguaggio CLR Based con una sintassi java-like, oggi non più supportato da Redmond.

Nel frattempo arriva però la madre di tutte le sfide: realizzare la nuova infrastruttura Next Generation Windows Services (NGWS), che dovrà servire come base per lo sviluppo delle future applicazioni di Rete. Il nuovo ambiente si differenzia fortemente dal precedente Windows DNA, utilizzando XML come formato standard di comunicazione ed interscambio dei dati. Il progetto prosegue con forza e nel 2000 comincia ad assumere la nomenclatura ufficiale di .Net Framework.

Le prime versioni preliminari di NGWS sono scritte nel linguaggio Simple Managed C (SMC), ma Hejlsberg non è soddisfatto e mette insieme un Team per lo sviluppo di un nuovo linguaggio: Cool, ovvero “C like Object Oriented Language”.

Il nome Cool piace anche alla divisione Marketing che, inizialmente pensa di mantenerlo, ma successivamente, per ragioni di copyright, decide di depennarlo in favore di C#. Chiaramente il nuovo linguaggio è fortemente influenzato dall’esperienza maturata da Hejlsberg durante lo sviluppo di Delphi e oggi è uno dei linguaggi più utilizzati e apprezzati, unitamente al framework dotNet e all’ultima creatura (in ordine temporale) di Hejlsberg; il Language Integrated Query (LINQ).

Al Develop Network del 2001, Microsoft rilascia la beta di VisualStudio.Net (versione 7.0).

Si tratta di una vera e propria rivoluzione per il big di Redmond che, in buona sostanza, abbraccia l’esperienza di Java ed introduce un ambiente di sviluppo basato su managed code [codice gestito] supportato da un insieme di librerie decisamente ampia, che insieme aumentano esponenzialmente produttività e manutenibilità.

La scelta di Microsoft è avvalorata dall’enorme successo di Java e dalla potenza che i PC di fine anni ‘90, che permette di rendere minimo l’overhead dovuto alla compilazione e al Garbage Collection.

In sostanza il codice non viene più compilato nel rispettivo set di istruzioni in linguaggio macchina, ma in un formato intermedio, equivalente del java bytecode, chiamato MIL (Microsoft Intermediate Language) o anche CIL (Common Intermediate Language) che, attraverso un compilatore Just-in-Time (Jit), viene compilato al volo nel linguaggio macchina della piattaforma specifica prima dell’esecuzione. Ciò ha permesso, negli anni, di veder girare applicazioni sviluppate in .Net anche su Mac e su Linux tramite implementazioni specifiche del CIL come ad esempio, rispettivamente, DotGNU e MONO.

La release ufficiale di VisualStudio.Net viene resa disponibile il 13 Febbraio 2002 e indicata successivamente anche come VisualSudio.NET 2002.

E’ lo stesso Bill Gates, nel ruolo di Chief Software Architect, a presentare VS.NET al VSLive! 2002 come: “the most comprehensive development tool of all time” [il più completo tool di sviluppo di tutti i tempi].

Sempre Gates, inoltre, mette l’accento sul futuro dei servizi web e sul grande lavoro che Microsoft farà a tal riguardo, negli anni a venire, per renderli sicuri e affidabili:

We think of all these services as reliable and trustworthy as phones or electricity are today. There will be a lot of hard work on the part of Microsoft here.” [Pensiamo a questi servizi –web service, ndr – come qualcosa di affidabile e sicuro, al pari di come lo sono oggi i telefoni e l’elettricità. Molto lavoro sarà fatto da Microsoft per raggiungere tale obiettivo.]

vs.net

Visual Studio.Net Splash Screen

Come visto nella versione beta, VS.Net porta con se una vera e propria rivoluzione che inizia con il nuovissimo C# (1.0), con sintassi java-like, e indicato come linguaggio di riferimento per l’intero framework. VisualBasic si trasforma in VisualBasic.Net (VB 7), che oltre parte della sintassi e il nome, eredita ben poco da VB 6.

vs.net csharp

Visual Studio.NET C# (1.0)

 

vs.net vbnet

Visual Studio.NET VB.Net (7.0)

Nasce anche Visual J# (1.0), erede di Visual J++, che utilizza una sintassi praticamente identica a quella di Java anche se è in grado di generare solo codice MIL e non bytecode. Visual C++.Net (7.0) resta l’unico linguaggio in grado di produrre sia codice nativo per l’architettura di riferimento che codice gestito tramite le estensioni Managed Extension.

Dal punto di vista dell’IDE, tutti i linguaggi utilizzano un unico ambiente condiviso (parzialmente scritto tramite il .NET Framework stesso) tramite il quale creare applicazioni Windows (Windows Forms, sotto insieme del .NET Framework), Web (ASP.NET e Web Services) e, con appositi add-in, App for Portable Device (.NET Compact Framework).  Da sottolineare che con VS.NET non è possibile sviluppare applicazioni per le versioni precedenti dei singoli linguaggi.

vs.net package

Visual Studio.NET Package

Nella versione beta è inizialmente disponibile la nuova versione di Visual Fox Pro (7.0), eliminata, invece, nella release finale. Nonostante ciò Visual FoxPro verrà sviluppato attivamente fino al 2004 (versione 9.0) e solo nel 2007 il relativo team di sviluppo annuncerà che non verrà più rilasciato l’atteso Visual FoxPro 10 e che il supporto al prodotto terminerà il 1 Dicembre 2010 (1 Dicembre 2015 per l’Extended Support). Nonostante ciò, tutto quanto ruotava intorno a VFP 10 viene rilasciato su CODEPLEX come progetto Sedna.

visualfoxpro9

Visual FoxPro 9

Tornando al .Net Framework, questa prima versione non convince del tutto gli sviluppatori, soprattutto per coloro che provengono dalla vecchia scuola dei prodotti di sviluppo Microsoft. In particolare a restare spiazzati sono soprattutto i Dev Visual Basic che, come detto, ritrovano ben poco del loro amato linguaggio nella nuova release, dovendosi confrontare, ad esempio, con concetti legati al mondo Object Oriented. Quello che invece riesce perfettamente è l’operazione di avvicinare l’ormai sterminata cerchia di sviluppatori Java, ricalcando, sostanzialmente, il relativo modus-operandi con in più un IDE decisamente evoluto e funzionale.

VS.NET non è, inoltre, immune da bug e problematiche varie, cosa che porta nel 2003 al rilascio di Everett alias VisualStudio.NET 2003 (di conseguenza VS.NET diventa VS.NET 2002), la cui un anteprima viene data lo stesso anno da Bill Gates durante la Microsoft Mobility Developer Conference 2003, con un particolare accento sul .Net Compact Framework.

vs.net 2003 package

Visual Studio.NET 2003 Package

Si tratta effettivamente di un aggiornamento (7.1, anche se il formato dei file raggiunge la versione 8), che porta con se il .NET Framework 1.1 e l’upgrade alla versione 1.1 di C#. VB.NET raggiunge la versione 7.1 (2003) con il supporto al .NET Compact Framework per lo sviluppo di applicazioni mobile ed un migliorato wizard per l’import dalle versioni pre-dotNet.

vsbasicnet 2003

Visual Basic.NET 2003

Visual C++ (7.1) diventa più conforme allo standard ANSI C++, favorendo l’impiego di librerie molto diffuse come Loki, Boost e Blitzed, e il compilatore nativo viene migliorato nelle performance. Microsoft decide, al contempo, di rendere disponibile anche una versione free del compilatore nativo, includendola nel Visual C++ Toolkit 2003, precursore della serie Express che vedrà la luce con VS 2005.

Interessante l’aggiunta al supporto per ASP.NET Mobile Designer che consente di creare applicazioni web progettate per dispositivi portatili o altri dispositivi di piccole dimensioni.

VS 2003 viene rilasciato in ben 4 edizioni: Academic, Professional, Enterprise Developer, e Enterprise Architect che include anche una serie di feauture derivate da VISIO per la creazione dei diagrammi UML.

Visual Studio 2005 (codename Whidbey, versione 8.0) viene rilasciato ad Ottobre del 2005 e rappresenta un deciso passo in avanti, sia per l’ambiente che per i vari linguaggi.
Da questa versione, Microsoft decide di eliminare il suffisso .NET dal nome della suite, così come per tutti gli altri prodotti precedentemente indicati con esso ad esclusione del Framework stesso che viene aggiornato alla versione 2.0.

vs2005

Visual Studio 2005 Setup

L’IDE si trasforma in un “Guscio” (Shell) al cui interno possono trovare spazio delle estensioni, promuovendo l’idea di una piattaforma di sviluppo estensibile e “pluggabile”, in cui l’ IntelliSense, è ora decisamente più affidabile e preciso.

vs2005 aboutbox

Visual Studio 2005 About Box

C# 2.0 e VisualBasic 8 (addio .NET!) vengono allineati nelle feauture. In particolare i due linguaggi si arricchiscono dei generic, assimilabili ai Template di C++, introdotti con lo scopo di catturare quanti più errori possibile in fase di compilazione piuttosto che a runtime. Visual Basic si completa, inoltre, con il namespace Myche velocizza e semplifica l’accesso a molti metodi di uso comune, mentre Visual C++ 2005 (8.0) si presenta con le nuove C++/CLI (standard ECMA-372) che sostituiscono le precedenti Managed Extensions for C++ per la generazione di managed code. Visual J# 2005 (2.0) attinge ad alcune caratteristiche tipiche del mondo Java, come la possibilità di creare Applet utilizzando la Supplemental UI Library.

Con il nuovo framework arriva ASP.NET 2.0 e le relative estensioni all’IDE, compresi gli strumenti di debug e di verifica delle performance, insieme al “Deployment Designer” che permette di validare il Blue Print dell’applicazione prima di passare allo sviluppo.

vs2005 depdesigner

VS 2005 Deployment Designer

Altra importante novità è il supporto, esteso e completo, al mondo a 64Bit, sia per le piattaforme x64 (AMD64 and EM64T) che per quella l’IA-64 (Itanium). Nelle precedenti versioni era disponibile solo un compilatore specifico nel Platform SDK relativo a Visual C++, e le librerie a 64Bit erano disponibili previa richiesta via mail a Microsoft stessa.

Visual Studio 2005 viene reso disponibile in un 4 edizioni primarie: Standard, Professional, Tools for Office (pensata per lo sviluppo di soluzioni basate su MS Office) e Team System. Quest’ultima è, a sua volta, disponibile in 4 sub-edizioni con l’abbonamento MSDN Premium: Team Suite, Team Edition for Software Architects, Team Edition for Software Developers, e Team Edition for Software Testers.

vs2005 propackage

Visual Studio 2005 Professional Edition Package

La famiglia si completa con il rilascia di Team Foundation Server (TFS), una piattaforma completa per la gestione del ciclo di vita del software (ALM), completamente integrata e comprendente una serie di servizi e API per poter estendere le sue funzionalità creando il proprio client. Caratterista interessate è la possibilità di usare TFS anche per la gestione ALM di altre piattaforme di sviluppo come Java, PHP, ecc.

tfs2005

Team Foundation Server

Se da una parte il numero delle edizioni si arricchisce, dall’altra Microsoft decide di terminare la commercializzazione dei singoli linguaggi di sviluppo, presentando al contempo le edizioni gratuite Express Edition, introdotte per i neofiti, gli hobbisti e le piccole aziende. In sostanza viene rilascia una Express Edition per lo sviluppo di Win Application con uno dei linguaggi supportati (Visual Basic, Visual C++, Visual C#, Visual J#), caratterizzata da un set minimale di quanto reso disponibile nelle edizioni a pagamento. Per lo sviluppo Web viene invece reso disponibile Visual Web Developer, mentre SQL Express 2005 è la risposta “light” alla gestione dei dati.

vs2005csharp express

Visual Studio C# 2005 Express

Come le edizioni Express sono una assoluta novità per la casa di Redmond, altrettanto lo è Codeplex, in sostanza .Net al mondo dell’Open Source. Si tratta, infatti, di unprogetto per l’hosting gratuito di progetti OpenSource principalmente sviluppati con tecnologia .NET, rilasciato in versione beta nel Maggio del 2006 e in versione definitiva il mese dopo. Per capire l’importanza di tale soluzione, basti pensare che oggi su Codeplex sono ospitati circa 25.000 progetti, gestibili tramite TFS o Mercurial.

codeplex

Codeplex

Parallelamente a VS 2005 viene rilasciato Microsoft Expression Web(dicembre 2006), creato per supportare i designer nello sviluppo delle applicazioni web ed erede diretto, nonché sostituto, di FrontPage, incluso fino alla versione 2003 in Office. Si tratta di un prodotto fondamentale nella strategia web-based della casa di Redmond, essendo completamente standard-compliant ed in grado di importare rapidamente add-on e plug-in all’interno delle pagine web in maniera completamente visuale.

expressionweb

 Expression Web

Sempre a Dicembre 2006 arriva la prima CTP di Silverlight (conosciuto anche come WPF/E), la risposta Microsoft a Flash per la creazione di Rich Internet Application (RIA) eseguibili dentro i browser. Si tratta di una versione abbastanza limitata, in grado di interagire con il DOM (Document Object Model) della pagina solo attraverso Javascript. La versione finale viene rilasciata il 4 settembre 2007.

Bisognerà attendere quasi due anni (14 ottobre 2008) per avere la versione 2.0 che include una edizione minimale del Common Language Runtime e del Dynamic Language Runtime, permettendo così di realizzare applicazioni Silverlight scritte direttamente con gli strumenti di sviluppo della piattaforma Microsoft .Net.

Il 30 Aprile del 2007 nasce, inoltre, Expression Studio, una suite che, oltre ad Expression Web comprende anche: Expression Blend per lo sviluppo specifico (in questa release) di applicazioni Silverlight, Expression Design per la grafica vettoriale, Expression Media per organizzare le proprie risorse multimediali ed Expression Encoder comprendente una serie di codec video.

Nel 2007 (Marzo) arriva il dotNet Framework 3.0, una sorta di “estensione” al Framework 2.0 che introduce una serie di nuovi layer tecnologici:

  • Windows CardSpace, per la gestione dell’identità degli utenti;
  • Windows Communication Foundation (WCF), per la realizzazione di Web Services e Servizi in generale;
  • Windows Presentation Foundation (WPF), per la creazione di interfacce utente evolute;
  • Windows Workflow Foundation (WF), per la gestione di attività facilmente descrivibili attraverso dei workflow sequenziali o delle macchine a stati finiti.
  • dotnet framework3

dotNet Framework 3.0

Il nuovo Visual Studio 2008 (codename Orcas, versione 9.0) viene invece rilasciato a Novembre, contemporaneamente al rilascio dell’upgrade 3.5 del dotNet Framework, senza stravolgere quanto introdotto nella precedente release, riducendo il numero di edizioni e soppiantando definitivamente l’ecosistema J#, anche nell’edizione express.

vs2008 propackage

 Visual Studio 2008 Professional Edition Package

Da segnalare che con VS 2008 arriva il primo compilatore multi-thread, che consente la compilazione contemporanea di più progetti contenuti in una solution.

L’aggiornamento del framework estende i quattro layer introdotti nella versione 3.0, in particolare avvicinando tra loro WF e WCF. E’ infatti ora possibile creare un Workflow Service in modo da ottenere un ibrido che sia invocabile come un web service ma si comporti come un workflow.

I linguaggi (C# 3.5, VB 2008/9 e VC 2008/9) completano il supporto a LINQ (Language Integrated Query, introdotto con la versione 3.0 del framework), consentendo l’interrogazione di una collezione di dati proveniente da DB, Collection, XML e DataSet utilizzando sempre la stessa sintassi SQL Like. ASP.NET entra ufficialmente nel modo AJAX, mentre viene aggiunto il supporto a nuovi protocolli Web per la creazione di servizi WCF, inclusi AJAX, JSON, REST, POX, RSS, ATOM e alcuni nuovi standard WS-*.

vs2008csharp

Visual C# 2008

Se Visual Studio 2008 ottimizza ed estende quanto nato parallelamente sotto forma di add-on ed upgrade, il mondo Expression si evolve con Expression Studio 2.0, ormai una vera e propria suite per i designer di applicazioni Web e Desktop, completamente rinnovata nella UI e con un IDE essenzialmente basato su Visual Studio 2008 Standard Edition. Le versioni di tutti gli applicativi vengono allineate alla 2.0 e Blend abbraccia l’intero mondo WPF (desktop e web/Silverlight), rendendo importabili le interfacce create all’interno di VS2008.

expressionblend2

Expression Blend 2.0

Solo Expression Web non adotta in pieno la nuova UI, ma sceglie un passaggio intermedio, probabilmente per non spiazzare troppo gli utenti preferendo ancora un ambiente basato su MS Office. Cosa fondamentale è il supporto al linguaggio PHP, che proietta l’applicativo nel settore delle soluzioni avanzate per lo sviluppo web, anche non Microsoft - based.

expressionweb2

Expression Web 2.0

Il 2009 si apre all’insegna delle Rich Internet Application (RIA) con Silverlight 3, che ora supporta l’audio/video HD (codec AAC per l’audio e H.264 per il video) e una risoluzione fino a 720p. Presenti, inoltre, effetti 3D e Pixel Shader assieme a nuove API ed una migliore stabilità e velocità generale del plug-in.

Conseguentemente al rilascio della nuova versione di Silverlight, arriva anche Expression Studio 3, che offre una serie di novità funzionali per la progettazione e lo sviluppo dell’interfaccia utente Web e Desktop basata su WPF, oltre che X/HTML, ASP.NET e PHP. Completamente nuova la funzionalità di SuperPreview che permette il testing di visualizzazione delle pagine prodotte su browser diversi.

Nel frattempo, Microsoft è al lavoro alla nuova major release del .Net Framewok e al nuovo Visual Studio (codename Hawaii), rilasciati entrambi il 22 marzo 2010. VS 2010 si presenta con un IDE completamente rinnovato, riscritto completamente in WPF allo scopo di creare un’esperienza d’uso di livello nettamente superiore rispetto alle versioni precedenti.

vs2010

Visual Studio 2010

La nuova UI è organizzata per ottimizzare l’intero processo di sviluppo delle applicazioni, diventando decisamente più dinamica e funzionale, a cominciare dalla nuova finestra di dialogo New Project che offre migliori funzionalità di Ricerca, anteprima di Template Online e una Navigazione più intuitiva. Con il nuovo IDE arriva anche il supporto al multi-monitor, che consente agli sviluppatori di utilizzare più display per estendere l’ambiente di lavoro in modo del tutto naturale.

vs2010 newproject

VS 2010 New Project

La nuova versione del Framework, a differenza delle versioni 3.x, si presenta con compilatori rinnovati ed ottimizzati. Ovviamente anche i linguaggi fanno un “salto” in avanti, con C# 4.0, Visual Basic 2010 (VB 10.0), Visual C++ 2010 (Visual C++ 10.0).

C# 4.0 permette, finalmente, di usare gli optional parameters, mentre VB 10 supporta il collection initializer. Fa la sua comparsa anche il nuovo Dynamic Language Runtime (DLR), che si aggiunge al CLR e, tramite il nuovo namespace System.Dynamic, offre un set di servizi per linguaggi dinamici (IronPython, IronRuby, ecc.). Finalmente i generic fanno propri i concetti di Covarianza e Controvarianza, mentre è decisivamente migliorato il supporto a javascript con l’integrazione della funzionalità per il completamento automatico della sintassi. Con questa nuova versione, Microsoft decide, inoltre, che tutte le nuove feauture dovranno parallelamente essere introdotte sia in C# che in VB.

Discorso a parte merita il nuovissimo F# 2.0, uscito definitivamente dalla lunga gestazione nei laboratori Microsoft Research, fase durata quasi 5 anni (2005).

codicefsharp

Codice F#

F# è spesso definito come l’implementazione .NET del linguaggio OCaml e quindi appartiene alla famiglia dei linguaggi di programmazione ML (sviluppato dall’equipe di Robin Milner presso l’Università di Edimburgo alla fine degli anni ‘70) che mixano le caratteristiche dei linguaggi funzionali (LISP, LOGO, Haskell) con quelle dei linguaggi imperativi (Pascal, Basic), mantenendo elementi di programmazione orientata agli oggetti. OCaml si caratterizza per performance ancora insuperate nel parsing e nell’elaborazione ricorsiva di collezioni di dati, il che gli attribuisce un ruolo di leadership nel settore bioinformatico e statistico.

Con F#, Microsoft prende le migliori caratteristiche di OCaml e Standard ML e le fonde in un unico linguaggio funzionale/imperativo basato sul framework .NET, ottenendo una soluzione elegante e potente, che offre forti vantaggi nell’elaborazione di algoritmi complessi, consentendo, grazie ad un sottoinsieme delle librerie standard OCaml, di compilare il codice anche con altri compilatori OCaml – compliant.

Tornando al framework, vengono migliorati tutti i layer specifici: da ASP.NET a Windows Communication Foundation (WCF) e Workflow Foundation (WF), praticamente fusi tra loro al fine di creare tutta una nuova serie di servizi configurabili in maniera decisamente più semplice.

L’obiettivo del Framework 4 è chiaramente quello di migliorare l’intero ecosistema, rendendo più semplice e soddisfacente il processo di sviluppo e consentendo, agli sviluppatori, di creare rapidamente applicazioni che garantiscano una user experience di prim’ordine. Con questa mission, il big di Redmond arricchisce le edizioni di Visual Studio con Visual Studio LightSwitch, presentato in beta il 23 Agosto 2010 e rilasciato in versione definitiva il 26 luglio del 2011 come VS LightSwitch 2011. Si tratta di una speciale edizione pensata per lo sviluppo di applicazioni Line Of Business, più comunemente chiamate Gestionali.

vslightswitch

VS LightSwitch

LightSwitch è un ambiente “rapido”, visto l’approccio usato per la creazione di una nuova applicazione:

            Creazione della Struttura Dati (tabelle e relazioni)

                        Creazione della Form di visualizzazione/modifica

                                   Esecuzione del comando per la creazione dell’infrastruttura…

                                               …l’Applicazione è pronta per l’utilizzo!

il tutto senza aver scritto una sola riga di codice. Le applicazioni LightSwitch utilizzano gli ultimi ritrovati, sia in fatto di tecnologie (Silverlight 4, WCF RIA Services, SQL Server Express, SharePoint 2010, SQL Azure) che di pattern design (MVVM, N-Tier, ecc.).

Si tratta di una soluzione interessante, pensata per chi vuole realizzare velocemente un sistema per la gestione dei dati senza l’impiego di troppe risorse, risultando, inoltre, utile anche per una rapida fase prototipale.

vslightswitch example

Un tipo esempio di applicazione LightSwitch

Con il nuovo framework non poteva certo mancare Silverlight 4, con un supporto esteso alle applicazioni out-of-browser e alla gestione delle periferiche locali (come ad esempio le webcam e stampanti). Arriva inoltre la possibilità di gestire notifiche integrate con il desktop, il supporto al drag-and-drop e ai menù contestuali, una serie di nuovi effetti di animazione e di nuovi Controlli. Questa nuova versione è ora in grado di girare su più tipologie di device, grazie alla collaborazione di Microsoft con Intel e Broadcom.

L’ecosistema si scompleta a giugno del 2010 con Expression Studio 4, che si integra perfettamente con Visual Studio 2010, oltre a rendere più omogena l’intera suite ed abbracciare le nuove tendenze del web.

A settembre del 2012, vengono ufficialmente rilasciati il .NET Framework 4.5 e Visual Studio 2012, precedentemente 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.

winrt

 La nuova architettura WinRT dedicata alle App Windows 8

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/8) e su una intrinseca gestione asincrona dell’App stessa, isolata all’interno della propria sandbox.

win8 startscreen

Metro e Windows 8

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 2012, 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. Un fastidioso bug che dovrebbe essere risolto con questa nuova release è quello dei frequenti blocchi (freeze) della versione 2010.

vs2012

VS 2012

Dal punto di vista della UI, oltre al nuovo look minimalistico, 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.

vs2012 solution explorer

VS 2012 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.

vs2012 unit test

VS 2012 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.