3. La nascita di Visual Studio e dell’era .Net

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

La nascita di Visual Studio e dell'era .Net

Parallelamente allo sviluppo dei singoli ambienti, Microsoft comincia a coltivare l'intenzione di creare una vera e propria suite, sulla falsa riga di Office. In realtà il big di Redmond intuisce che gli sviluppatori avrebbero sicuramente apprezzato ambienti omogenei cross-language, mentre, dal punto di vista aziendale, poter ri-utilizzare gli stessi IDE per i diversi linguaggi è sicuramente un obiettivo di efficienza ed ottimizzazione.

Un primo timido tentativo in questa direzione avviene con il rilascio di Visual Studio (4.0, allineato al numero di release di VB) nella primavera del 1995, costituito essenzialmente dai vari ambienti di sviluppo riuniti in un unico package, un po' come era accaduto per MS Office 1.0

Nel 1997 viene lanciato Visual Studio '97 (5.0, conosciuto anche semplicemente come Visual Studio), codename Boston.

image28
Visual Studio '97

Con questa versione fa la sua apparizione un estratto (snapshot) della Microsoft Developer Network Library, ovvero MSDN, una risorsa indispensabile per gli sviluppatori, realizzata secondo una concezione che va al di là della documentazione di sviluppo standard e che negli anni diventerà uno dei punti di forza delle soluzioni DEV di Microsoft.

Anche in questo caso non esiste una vera integrazione tra i vari ambienti, ma compare Visual SourceSafe 5.0 per il controllo del codice sorgente, indipendentemente dall'ambiente con cui lo si è generato. Il pacchetto include: Visual Basic 5.0, Visual C++ 5.0, Visual J++ 1.1, Visual FoxPro 5.0 e Visual InterDev espressamente pensato per la creazione di siti web utilizzando la tecnologia Active Server Pages (ASP).

La cosa più rilevante, però, è che Visual C++, Visual J++, Visual InterDev e la libreria MSDN utilizzano un IDE comune denominato Developer Studio, mentre Visual FoxPro condivide l'ambiente con Visual Basic.  Si passa così da 5 IDE separati a 2 IDE condivisi, seguendo esattamente la strada presa diversi anni prima con MS Office, trasformando lo stesso in una suite di prodotti in ausilio del progettista, dello sviluppatore e del tester.

Con Visual Studio '97 comincia anche una decisa campagna marketing di Microsoft in favore della "suite": chi ha già un tool di sviluppo tra quelli presenti in VS97 può acquistare l'intera suite ad un prezzo vantaggio, esattamente come avviene per Office. Decisamente un bel vantaggio, visto che i costi di VS '97 non sono poi così distanti da quello dei pacchetti singoli (circa un 30% in più, a cui vanno sottratti sconti ed offerte speciali).

image29
Un Wizard di Visual SourceSafe 5

La release successiva, conosciuta con il codename Aspen, viene presentata ufficialmente come Visual Studio 6 nel 1998, anche se spesso, per continuità, diversi testi o siti web si riferiscono ad esso etichettandolo come Visual Studio ‘98. Il suo rilascio provoca l'allineamento di tutti i numeri di release dei vari ambienti alla versione 6.0 (al secolo '98) ed è di fatto l'ultima versione pre-dotNet.

A presentare il nuovo gioiello del Big di Redmond è Bill Gates, che in video conferenza ai Developer Days dichiara:

bill gates jpg

"The digital nervous system vision is a transformation in the way business is done… It's an opportunity to take advantage of the talents of employees in a new way and reach out to new customers. But, building your digital nervous system requires wonderful applications that integrate with the systems you have and leverage the Web."

[La visione di un sistema nervoso digitale trasforma radicalmente il modo di fare business.. Si tratta di un'opportunità per utilizzare al meglio ed in un modo nuovo il talento dei dipendenti e raggiungere nuovi clienti. Ma, per realizzare in vostro sistema nervoso digitale, è necessario utilizzare applicazioni che si integrano con i sistemi proprietari ma che guardano al Web]

non citando direttamente VS ma facendo capire che si tratta della soluzione migliore per fare quanto appena affermato.

Nonostante, come detto, Microsoft stesse lavorando per unificare i vari linguaggi in un unico IDE, in questa release gli ambienti passano da 2 a 3: infatti Visual InterDev e Visual J++ non utilizzano più quello di Visual C++. Questa scelta sarà chiara solo in seguito in quanto Visual C++ convergerà verso l'IDE di Visual Basic (ed il futuro Visual C#), mentre InterDev e Visual J++ spariranno definitivamente.

image30

Visual Studio 6.0

image31
L'IDE di VB 6 (uguale a quello di VFP 6)

VS 6 si impone praticamente da subito come punto di riferimento nello sviluppo di applicazioni Windows e Web, tanto da meritarsi una serie di importanti premi, tra cui il PC Magazine Technical Excellence Award e il PC Computing MVP Award.

Il nuovo livello di integrazione raggiunto permette di rafforzare i paradigmi Write Less Code [scrivi meno codice] e Write Code Faster [scrivi il codice più velocemente]. Sostanzialmente con il primo si sottolinea la possibilità di realizzare applicazioni scrivendo meno codice possibile, grazie a facility quali: wizard e l'editing drag-and-drop, unitamente alla possibilità di condividere codice (dll, librerie, ecc.) scritte in qualsiasi linguaggio. Quest'ultimo punto è vero a patto di rispettare determinate regole di interoperabilità ben specificate all'interno di MSDN.

Con il secondo paradigma si enfatizza l'utilità degli strumenti di supporto di scrittura del codice degli IDE di VS6: con il controllo on-fly della sintassi e i tip di sviluppo velocemente disponibili.

image32
L'IDE di InterDev 6 (uguale a quello di Visual J++ 6)

VS6 è, inoltre, un potente e flessibile ambiente per lo sviluppo di soluzioni web, permettendo di gestire agevolmente Dynamic HTML, Script e altri elementi tipici del mondo della rete. Centrale è ovviamente la tecnologia ASP per la creazione di applicazioni web dinamiche, la cui realizzazione è assistita dagli strumenti di debug/testing della suite.

L'edizione più completa di Visual Studio 6.0 contiene inoltre: Application Performance Explorer, Automation Manager, Microsoft Visual Modeler, RemAuto Connection Manager e Visual Studio Analyzer. Inoltre è presente il Windows 2000 Developer's Readiness Kit, specifico per lo sviluppo di applicazioni dedicate a Windows 2000, e il Microsoft Data Engine (MSDE), una RDBMS light compatibile con SQL Server 7, pensato per lo sviluppo di applicazioni desktop e privo di royalty.

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 just-in-time 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.

È 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.]

image33
Visual Studio.Net Splash Screen

Come visto nella versione beta, VS.Net porta con sé 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. 

image34
Visual Studio.NET C# (1.0)

image35
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.

image36
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.

image37
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 anteprima viene data lo stesso anno da Bill Gates durante la Microsoft Mobility Developer Conference 2003, con un particolare accento sul .Net Compact Framework.

image38
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 sé 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.

image39
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.

image40
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 ci l'IntelliSense, è ora decisamente più affidabile e preciso.

image41
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 My che 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.

image42
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

image43
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.

image44
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.

image45
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 un progetto 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.

image46
Codeplex

Sempre nel 2005, Microsoft rinnova fortemente SQL Server, presentando SQL SERVER 2005, che abbraccia completamente la tecnologia .NET e il suo Common Language Runtime (CLR), utilizzabile persino per scrivere le Store Procedure. Novità anche sul fronte XML, con il supporto nativo come tipo e per la sua interrogazione attraverso XQuery, e il MARS (Multiple Active Result Sets) per la gestione di più result set sulla stessa connessione.

image47
SQL Server 2005

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. 

image48
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.

image49

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.