5. Lo sviluppo diventa cross-device e cloud-oriented

Microsoft è da sempre prim'attore nel mondo dello sviluppo e in questo articolo scopriremo i 40anni di linguaggi di sviluppo made in Redmond

Avatar di Tom's Hardware

a cura di Tom's Hardware

Lo sviluppo diventa cross-device e cloud-oriented

Il 12 settembre del 2012 viene rilasciato il .NET Framework 4.5, Visual Studio 2012 e Team Foundation Server 2012. Qualche mese prima anche SQL Server è aggiornato alla release 2012.

A farla da padrone è il nuovo Windows Runtime (WinRT), specificatamente realizzato per supportare le nuove applicazioni Modern UI lanciate con Windows 8. 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. 

image60
La nuova architettura relativa alle soluzione Modern UI

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.

image61
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 include 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. Quello che lascia perplessi gli sviluppatori è l'utilizzo di una UI sostanzialmente "grigia", in cui le icone hanno perso ogni colorazione specifica.

image62
VS 2012

Con VS 2012 arriva anche il supporto allo sviluppo di Windows Phone 8.0, la nuova scommessa Microsoft nel mondo mobile, tramite il Windows Phone SDK 8.0.

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.

image63
VS 2012 Developer Preview

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.

Anche se Silverlight viene aggiornato alla versione 5.0, il suo destino è ormai segnato in favore di HTML 5.

Infine, Microsoft rende disponibile (novembre 2012) Team Foundation Service, ovvero una versione di TFS ospitata su Azure ed utilizzabile, grazie ad una sottoscrizione, come Software as a Service.

image64

A solo un anno di distanza, 17 ottobre del 2013, arrivano Visual Studio 2013, il .Net framework 4.5.1 e Team Foundation Server 2013. Si tratta di un aggiornamento generale dell'ambiente e del framework finalizzato, principalmente, a migliorare le novità introdotte con la versione precedente, risolvere alcuni problemi di stabilità generale, e supportare le novità introdotte, soprattutto nel mondo cloud d Azure. Da non sottovalutare il supporto nativo a GIT, sia con i repository gestisti direttamente con TFS che quelli esterni come GitHub.

Arriva anche il Windows Phone SDK 8.1, con il supporto a Windows Phone 8.1

image65
Visual Studio 2013

Se l'IDE e il framework sono interessati da miglioramenti importanti ma minimali, è TFS a guadagnare un importato step evolutivo, soprattutto per quello che riguarda il supporto allo sviluppo Agile e la possibilità di eseguire i test direttamente su Windows Azure (cloud-based load test).

image66
ALM in TFS 2013

Vista la forte spinta verso le soluzioni Cloud e gli importanti miglioramenti a TFS2013, non stupisce che anche Team Foundation Service è interessato da molte novità. Prima tra tutte il nome che diventa Visual Studio Online, seguito dal ciclo di sviluppo e aggiornamento che diventa indipendente da TFS e segue una cadenza bimestrale. Bisogna anche dire che Visual Studio Online non dispone ancora di tutte le caratteristiche di TFS 2013 (come ad esempio la personalizzazione dei Project Template), ma gli aggiornamenti sono molto più frequenti, tanto che, in futuro, la differenza di funzionalità sarà in favore della versione Cloud.

image67
Visual Studio Online

image68

Tra i vari update che seguono il rilascio della release iniziale, è importante segnalare l'Update 2 che aggiunge il supporto allo sviluppo delle nuove Universal App, ovvero applicazioni ottimizzate per funzionare al meglio con tutte le piattaforme Windows e con tutti i dispositivi che le utilizzano, a prescindere dal form factor (smartphone, tablet e PC).

Nel 2014 viene rilasciata anche la nuova versione di SQL Server 2014 con forti migliorie prestazionali, soprattutto per l'elaborazione dei dati online grazie ad un motore Oltp in-memory.