Reportage/ TechLab: Visual Studio 2005

Reportage/ TechLab: Visual Studio 2005

di G. Fleres - Seconda parte di un reportage sul Laboratorio Tecnico recentemente organizzato da Microsoft Italia per illustrare le novità degli imminenti SQL Server 2005 e Visual Studio 2005
di G. Fleres - Seconda parte di un reportage sul Laboratorio Tecnico recentemente organizzato da Microsoft Italia per illustrare le novità degli imminenti SQL Server 2005 e Visual Studio 2005


Roma – Dopo aver dedicato la prima parte di questo reportage a SQL Server 2005, in questa seconda parte si fornisce una sintesi delle informazioni su Visual Studio 2005 che Microsoft Italia ha fornito durante un recente Laboratorio Tecnico tenutosi a Milano.

Giada Scarafiotti, developer tools product manager, ha illustrato le strategie alla base della nuova versione di Visual Studio.

“Con Visual Studio 2005 estenderemo l’offerta dei tool di sviluppo in due diverse direzioni che sino ad oggi non erano interamente coperte dalle attuali edizioni di Visual Studio. Da una parte c’è la fascia bassa, composta dagli studenti e da coloro che sviluppano per passione o che scrivono applicazioni per la prima volta, a cui ci rivolgiamo con la versione Express. Dall’altra, con le versioni Professional e Team System, ci rivolgiamo sia agli sviluppatori professionisti che, per la prima volta, alle aziende che necessitano di soluzioni per la gestione del ciclo di vita del software. Visual Studio Team System è la risposta di Microsoft alle esigenze delle aziende enterprise che chiedono dei prodotti capaci di offrire una produttività personalizzata per ogni singola figura che compone il team di sviluppo. Con Visual Studio Team System saremo in grado di coprire l’intero ciclo di vita del software, da quando viene progettato dall’architect del team di sviluppo, alla fase di sviluppo del codice, alla fase di testing o alla fase in cui il project manager controlla l’intero ciclo di sviluppo dell’applicazione”.

La product manager di Microsoft Italia ha quindi annunciato che ci saranno tre versioni di Visual Studio Team System.

“La versione Team System, essendo rivolta alle aziende che hanno la necessità di dover gestire l’intero ciclo di vita del software, sarà disponibile in tre differenti versioni: Visual Studio Team System for Software Architects, Visual Studio Team System for Software Developers, Visual Studio Team System for Software Testerss. A seconda della figura che lo sviluppatore occupa all’interno del team di sviluppo, ci sarà una versione di Team System appositamente creata per lui e con le funzionalità di cui ha bisogno”.

La versione Software Architects sarà caratterizzata da funzionalità per la progettazione, la connessione logica (Logical Infrastructure Designer) e il deployment. La versione Software Developers sarà invece contraddistinta da funzionalità per l’analisi statica e dinamica del codice e il suo profiling. La versione Software Testers offrirà invece funzionalità per il test case management, i test sul carico di lavoro e una vasta gamma di altri test manuali. Sia la versione Architects che la versione Developers permetteranno di effettuare la parte di modellazione con Visio e UML, mentre la Developers e la Testers avranno in comune funzionalità per il testing delle Unit e per la revisione del codice. Infine, tutte e tre le edizioni di Visual Studio Team System offriranno delle funzionalità per aiutare gli sviluppatori a progettare le classi (class designer).

La Scarafiotti ha dichiarato che una delle principali innovazioni della versione Team System è Visual Studio Team Foundation Server, un’applicazione che permetterà di aumentare l’efficienza nell’interoperabilità tra i vari componenti del team di sviluppo.

“Questa applicazione server, il cui accesso è regolato da licenze di tipo CAL (Client Access Licence), permette al team di sviluppo non solo di effettuare le operazioni di versionamento, forking e branching su di un repository perfettamente integrato con il loro ambiente di sviluppo, ma in più consente a tutto il team di condividere informazioni che vanno dai task assegnati ai singoli componenti alla risoluzione dei bug, fino alla reportistica che tiene sotto controllo le grandezze fondamentali che descrivono l’andamento del progetto. Ogni versione di Visual Studio Team System al suo interno comprende già una licenza client che permette di collegarsi alla licenza server di Team Foundation. Riguardo la licenza di quest’ultimo, inizialmente si era pensato di venderla separatamente, poi si è deciso di includere cinque licenze di accesso, che si possono incrementare, pagando, di cinque utenti alla volta. A questo proposito, esiste la versione Visual Studio Team Suite che comprende le tre versioni di Visual Studio Team System e la licenza server di Team Foundation”.

Team Foundation Server può essere installato unicamente su Windows 2003 Server e può funzionare anche sulla versione x64, ma solo in modalità WOW64. Gli altri requisiti di sistema sono: SQL Server 2005, Windows Sharepoint Services (RTM, SP1), ASP.NET /IIS 6.0, MS.NET Framework 2.0. La licenza di questo prodotto si acquista:
– separatamente se si compra Visual Studio Team System. Ognuna delle tre versioni (Architect, Developer, Tester) ha già le licenze CAL incluse (5 accessi);
– insieme a Visual Studio Team System (compresa nel prezzo) nel caso si acquisti Visual Studio Team Suite.

Scarafiotti ha poi spiegato quale sarà il target delle altre versioni di Visual Studio 2005.

“La versione Professional è rivolta ai piccoli team di sviluppo, composti da un massimo di cinque di persone oppure ai singoli sviluppatori o consulenti professionisti. L’edizione Visual Studio 2005 Tools for Microsoft Office System continuerà ad essere il prodotto di riferimento per chi vuole sviluppare applicazioni su Office con l’interfaccia di Word o Excel. Altra novità di Visual Studio 2005 è l’introduzione della versione Standard, rivolta ai web developer e a tutti coloro che sviluppano ancora per Visual Basic 6.0. Ci sono ancora parecchie persone che sviluppano in questo linguaggio. L’idea è quella di offrire loro un prodotto che li aiuti a migrare in modo semplice le loro applicazioni a Visual Basic.NET. Infine c’è la Express Edition che, come ho già detto prima, si rivolgerà ad un target di non professionisti”.

La manager di Microsoft Italia ha anche parlato della crescente importanza assunta dalla divisione Server and Tools di Mcrosoft.

“I dati relativi all’ultimo trimestre, da Gennaio 2005 sino a Marzo 2005, indicano che questa divisione è in crescita del 12%. L’obiettivo che ci siamo posti è di arrivare a chiudere questo anno fiscale con un fatturato intorno ai nove miliardi di dollari e di posizionarci quindi subito dietro alle vendite di Office e di Windows Client, gli altri due grandi pilastri di Microsoft. Pensiamo di potere raggiungere questo obiettivo sia grazie ai buoni risultati di SQL Server che a quelli dei tool di sviluppo. Le stime sull’adozione della piattaforma MS.NET indicano che è notevolmente in crescita sia nel mercato statunitense che in quello europeo”.

Stando ai dati relativi al 2003 forniti dalla Scarafiotti, nel mercato italiano il grado di adozione della piattaforma MS.NET sarebbe superiore al 30%. Il nostro Paese sarebbe anche il terzo in Europa, insieme a Inghilterra e Svezia, dove la quota di mercato di MS.NET è superiore a quella di Java.

“In questo momento l’Italia ? ha aggiunto la Scarafiotti – è il quarto paese in Europa come numero di DVD con la Beta 2 di Visual Studio 2005 ordinati da un mese a questa parte”.


Fabio Santini, technical evangelist di Microsoft Italia, ha illustrato le novità del MS.NET Framework 2.0.

“Sono state aggiunte nuove funzionalità in base al tipo di linguaggio: i team di sviluppo di C# e di Visual Basic.NET, che si occupano di creare il framework e i plug-in dell’ambiente grafico, hanno avuto la libertà di aggiungere funzionalità al framework e all’ambiente di sviluppo. Il motivo di tale scelta è dato dal fatto che un team di sviluppo pensa ad un target di sviluppatori differenti: lo sviluppatore che da Visual Basic 6.0 è passato o sta passando a Visual Basic.NET avrà bisogno di funzionalità diverse da chi sviluppa in C#, che tipicamente proviene da Java o da C++. I due team per questi motivi hanno avuto la possibilità di aggiungere o di rimuovere delle funzionalità che invece possono essere presenti nell’altro linguaggio. Una delle funzionalità di C# che è stata introdotta in Visual Basic.NET è lo Using Stament, che permette di racchiudere all’interno di un blob di codice delle chiamate a degli oggetti per i quali è necessario chiamare il metodo dispose alla fine del ciclo. Questa funzionalità permette una gestione più efficiente della memoria, perché se una classe espone il metodo dispose ci viene segnalato che è necessario usare questo metodo quando non ci serve più l’oggetto che questa classe ci ha passato. Questo perché è probabile che all’interno di questa classe verranno utilizzate delle risorse come gli handle di sistema o delle connessioni ai database che devono essere liberate”.

Altre novità di Visual Basic.NET sono il “continue statement”, che serve per uscire dai loop annidati, e il “global keyword”, che introduce il concetto di namespace, di libreria o di qualcosa che raggruppi un gruppo di funzionalità.

“Quando in Visual Basic.NET sono stati introdotti i namespace, per chi proveniva da Visual Basic 6.0 è stato complicato comprendere questo concetto: capitava che il nome di una classe o il metodo di una funzione erano gli stessi delle classi di sistema e quindi quando in fase di compilazione c’erano degli errori, i programmatori di Visual Basic non capivano la natura dell’errore. Global Keyword mi permette di accedere alle funzionalità del framework in maniera globale e univoca”.

Altra novità significativa del MS.NET Framework 2.0 per Visual Basic.NET sono le classi parziali.

“Tipicamente, quando dichiaro una classe, scrivo la struttura della classe all’interno di un file”, ha detto Santini. “La partial class permette di suddividere la definizione di una classe in più file, ovvero posso dichiarare una classe mettendo il codice su file differenti. Uno dei vantaggi di questa funzionalità è che posso separare il codice generato da Visual Studio da quello che verrà visto dall’utente. Ad esempio, quando scrivo una form in Visual Basic.NET con Visual Studio 2005, che supporta le classi parziali, all’utente verrà mostrato soltanto la parte di codice scritta da lui e non ci sarà quella generata dall’ambiente grafico, come ad esempio quello relativo al pulsante presente nella form. Tra i file nascosti relativi ad una determinata classe c’è il file che al suo interno contiene tutto il codice che è stato generato dal designer, che sarà quindi fisicamente separato rispetto a quello che sta scrivendo l’utente. Uno dei problemi dei RAD oggi disponibili è che costringono l’utente ad andare nei vari punti per aggiungere il suo codice: questo significa che se l’utente sbaglia il punto di inserimento potrebbe perdere tutto il codice generato oppure il codice potrebbe non compilare. Invece con le classi parziali, l’utente ha unico punto ben preciso in cui andare a inserire il proprio codice”.

Visual Basic.NET eredita poi dal C# l’overloading degli operatori.

“Questo significa ? ha spiegato il tecnico di Microsoft – che una classe si comporterà come un oggetto a tutti gli effetti. Oggi con Visual Basic.NET questo non è possibile e devo ricorrere a delle soluzioni alternative”.

Altra novità per gli sviluppatori di Visual Basic.NET è l’introduzione dell’oggetto “My”.

“L’oggetto My è uno shortcut: è una classe virtuale che mi consente di accedere ad una serie di risorse alle quali potrei accedere o tramite il percorso completo oppure tramite l’oggetto My”, ha detto Santini. “Chi scrive codice in Visual Basic.NET con Visual Studio 2005, se vuole inserire un’immagine, invece di usare l’approccio tradizionale che prevede l’uso di ResourceManager e il caricamento della bitmap, dovrà semplicemente aggiungere l’immagine tra le risorse di My e mentre scrive il codice potrà accedere direttamente a quest’immagine scrivendo My.Resources: a quel punto tra le risorse disponibili comparirà anche l’immagine che voglio inserire. Tutta la parte di codice che riguarda l’accesso al ResourceManager e il caricamento della bitmap è a carico di Visual Studio”.

Per quel che riguarda C#, una delle novità più interessanti del MS.NET Framework 2.0 è l’introduzione del tipo di oggetti “generic”.

“I generic ? ha spiegato il technical evangelist di Microsoft Italia – sono stati introdotti per motivi di prestazioni e di gestione degli errori. Se creo una lista generic, ovvero in grado di trattare oggetti di tipo object, posso aggiungere a questa lista qualsiasi tipo di oggetto, visto che l’oggetto object è l’oggetto minimo. Il controllo sui tipi degli oggetti che verranno passati a questa lista non avverrà a tempo di esecuzione ma nella fase di compilazione. Inoltre non avrò più bisogno di fare il casting degli oggetti di questa lista, perché quando mi viene restituito l’oggetto che si trova in posizione i-esima, questi non avrà tipo object ma quello originario. Ad esempio, se inserisco un intero in posizione 3 mi verrà restituito un intero e non un oggetto di tipo object. Il non dover effettuare più il casting aumenta le prestazioni”.

MS.NET Framework 2.0 per C# include poi gli “anonymous method” (anche noti come “anonymous delegate”) e gli strumenti per il refactoring.

“Quando dobbiamo gestire l’evento associato al click di un determinato pulsante, aggiungiamo un delegate che punta ad una funzione che contiene il codice che corrisponde a quel delegate. L’idea del delegate anonimo è di non avere il nome di una funzione ma di scrivere il codice direttamente quando vado a segnare il delegate. Questa funzionalità risulta molto utile quando la parte di codice che corrisponde ad un determinato evento è piccola e non è necessario scrivere un metodo apposito per gestirlo”.

“I refactoring sono delle utility che, come dice il nome, servono a effettuare il refactoring sul mio codice. Ad esempio, se mi accorgo che cinquanta righe di codice le posso riusare da altre parti e voglio farne un metodo, mi basta selezionarle, andare su Refactor e selezionare l’opzione che estrae un metodo. A quel punto mi verrà chiesto di indicare il nome del metodo. Il risultato sarà la creazione di un metodo, del relativo codice e, dove prima c’erano le cinquanta righe di codice, la chiamata al nuovo metodo. La cosa interessante è che se voglio trasformare alcune variabili interne al metodo in parametri, in Refactor c’è l’opzione per promuovere una variabile in parametro del metodo. Un’altra opzione di Refactor è quella di potere cambiare il nome di un metodo e di potere andare ad aggiornare automaticamente tutte le chiamate a quel metodo”.

Sul fronte delle funzionalità di Visual Studio 2005 rivolte a chi scrive il codice, una delle più interessanti è quella degli “snippett”.

“Chi passa da Visual Basic 6.0 a Visual Basic.NET ? ha detto Santini – ha spesso il problema di non conoscere il framework e ha quindi bisogno di essere aiutato nella fase di scrittura del codice. Questi aiuti sono stati inseriti nella forma degli snippett, presenti anche su C#. Gli snippett sono esempi di codice già pronti e personalizzabili che vengono messi a disposizione degli sviluppatori. Ci sono più di cinquecento snippett raggruppati in categorie diverse, a disposizione degli sviluppatori. Ad esempio, se navigando tra quelli relativi alla gestione del file-system seleziono quello relativo all’apertura di un file di testo, verrà generato del codice dove ci sono dei marcatori che indicano qual è la parte variabile di questo codice. Uno degli snippett che mi aspetto che abbia un gran successo è quello di WindowsForm. Il 50% dei messaggi sui newsgroup postati da chi sta passando da Visual Basic 6.0 a Visual Basic.NET è sul come si apra una nuova form: questo snippett gli mostrerà il modo corretto per farlo. Inoltre, posso estendere gli snippett presenti o scaricandoli da Internet oppure aggiungendo quelli sviluppati all’interno della mia azienda”.

Altra novità è la presenza di smart tag che, durante la scrittura del codice, segnalano gli eventuali errori indicando le possibili soluzioni.

“Ad esempio, se sto scrivendo un’espressione matematica, potrei essermi dimenticato di chiudere qualche parentesi e gli smart tag mi segnalano che c’è un errore e mi indicano una o più soluzioni per bilanciare le parentesi”, ha spiegato il tecnico di Microsoft Italia.

Ultima novità significativa di Visual Studio 2005 illustrata da Santini è il nuovo modello per il web, basato sui provider.

“Questo modello è più aperto rispetto al passato nel senso che adesso ci sono una serie di servizi che si appoggiano su dei provider. C’è il servizio di validazione, detto Membership, che si appoggia su un provider di membership; c’è il servizio di profile che si appoggia su di un provider di profili. L’idea è che dal punto di vista applicativo se voglio proteggere il mio sito, ovvero voglio usare utente e password, uso le API messe a disposizione dall’oggetto Membership, che è il servizio. Ma dove stanno le password? Dove stanno gli utenti? Come faccio ad accedere agli utenti? Queste informazioni sono contenute nel provider. Questo significa che, a livello di applicazione, non mi interessa se queste informazioni risiedono in un file XML, su DB2 o su SAP perché io ho utilizzato le API dell’oggetto Membership per accedervi. Se poi un domani decido di cambiare il fornitore di queste informazioni, nella mia applicazione web non dovrò apportare alcun cambiamento. L’unica cosa che dovrò fare sarà quella di aggiungere il provider al file XML che contiene le impostazioni di configurazione della mia applicazione. A quel punto tutta l’applicazione web utilizzerà il nuovo provider. Ci sono provider anche per i ruoli, i setting o per dove mettere la session”.

Santini ha infine citato alcune funzionalità grafiche di Visual Studio 2005.

“Sono stati introdotti una serie di nuovi componenti molto comodi come il Flow Layout Panel, che permette di raggruppare i controlli tra di loro e di adattarli dinamicamente e automaticamente alla dimensione della finestra nella quale verranno visualizzati. Un altro è quello del Table Layout Panel che invece mantiene le proporzioni e le dimensioni tra le righe e le colonne delle tabelle quando cambio la dimensione della finestra in cui è visualizzata la tabella”.

Giovanni Fleres

Link copiato negli appunti

Ti potrebbe interessare

Pubblicato il 15 giu 2005
Link copiato negli appunti