1. Introduzione
Con l'uscita del
.NET Framework 2.0 e del nuovo
Visual Studio 2005 Microsoft ha presentato un nuova versione di Visual Studio 2005 chiamata
Team System.
Con
Visual Studio 2005 Team System Microsoft ha voluto creare un sistema di integrazione e collaboration che copre l'intero ciclo di vita del software che va dalla progettazione, allo sviluppo, al testing fino al rilascio.
Nel ciclo di vita del software ci sono dei ruoli ben distinti
Architect, Developer, Tester e per questo motivo
Visual Studio 2005 Team System si suddivide in 3 versioni:
1. Software Architects
2. Software Developers
3. Software TestersC'è un ulteriore versione chiamata
Visual Studio 2005 Team Suite che racchiude tutte e 3 le versioni insieme. Inoltre con l'utilizzo di
Visual Studio Team Foundation Server (che non verrà trattato in questo articolo) il Project Manager può gestire le attività e costi del progetto avendo a disposizione anche
Microsoft Excel e
Microsoft Project che sono disponibili in
Team Foundation Server.
Inoltre attraverso il controllo del codice sorgente e le assegnazione delle attività attraverso i
Work Item il Project Manager ha sempre sotto controllo l'intero progetto.
Visual Studio 2005 Team System sfrutta tutte le funzionalità di
Visual Studio 2005 aggiungendo ed estendendo determinate funzioni per ogni tipo di versione.
2. Versione Software Architects
La versione
Software Architects è la versione dedicata agli Architetti di soluzioni che devono progettare il Software.
Prima quando si progettava un'applicazione come prima cosa si usava carta e penna per disegnare la struttura applicativa o ancora meglio si usava
Microsoft Visio (almeno per quanto mi riguarda) per disegnare l'architettura. Ora con
Visual Studio Team System per disegnare l'architettura applicativa della nostra soluzione abbiamo a disposizione l'
Application Diagram.
L'Application Diagram permette di disegnare e progettare le architetture delle nostre applicazioni suddividendole in più applicazioni.
Ricopre un ruolo molto importante nelle architetture
three-tiers e ancora di più nelle architetture orientate ai servizi
(SOA - Service Oriented Architecture), dove la progettazione in più livelli e con determinati end point permette di rendere le applicazioni scalabili, performanti e modulari.
Nell'application diagram si possono inserire i seguenti elementi:
• Applicazione Windows
• Applicazione Web
• Applicazione Office
• Applicazione Generica
• Asp.Net WebService
• Web Service Esterno
• Web Sercive BizTalk
• Database Esterno
• EndPoint per i WebService
• EndPoint per i contenuti web
• EndPoint GenericiNella seguente figura viene rappresenta un'applicazione three-tiers con un database come repository, lo strato di accesso ai dati
(DAL - Data Access Layer), rappresentato da Windows Application o che può essere anche una DLL, lo strato della
Business Logic rappresentato da un web service e la strato di
Presentation rappresentato da una Web Application.
Per ogni applicazione deve essere definito il proprio
EndPoint che il punto di collegamento tra le applicazioni ed è specifico per ognuna , esempio per il database si avrà un
DBEndPoint per i WebService un
WebServiceEndPoint ecc.
Con l'application diagram è possibile implementare direttamente le applicazioni in una soluzione di
Visual Studio 2005 mantenendo la sincronizzazione tra soluzione e application diagram. Le applicazioni implementabili sono: le Applicazioni Windows, le Applicazioni Web e i gli ASP.NET Web Services, per effettuare questa operazione basta cliccare con il tasto destro sull'application diagram e cliccare su
Implement All Application:
Inoltre per i Web Service ASP.NET è possibile definire le firme dei metodi attraverso l'apposita finestra
Web Service Details:
In questo modo gli architetti progettano e gli sviluppatori devono solo implementare il web service e quindi ognuno si assumerà per bene le proprie colpe. :-)
Una volta definita l'architettura applicativa andiamo a definire l'architettura logica dei nostri server/computer, operazione che di solito spetta ad un architetto di infrastruttura che conosce sicuramente meglio gli aspetti sistemistici.
Per creare un'architettura logica usiamo un altro diagramma che si chiama
Logical DataCenterQuesto diagramma permette di definire e descrivere le configurazioni dei computer di un datacenter, quali per esempio un database server con
SQL Server o un Web Server con Internet Information Server o un Windows Client dove possono essere inserite più applicazioni.
Inoltre per una rappresentazione sia logica che di comunicazione di sicurezza i server possono essere inseriti in
Zone come viene rappresentato nella figura che sono suddivisi tra Intranet e Internet:
Inoltre per ogni server si possono definire
Impostazioni e Vincoli, per esempio per il tipo di Server Windows Client si possono scegliere quali applicazioni devono essere presenti(Office Application, Smart Client ,ecc.)e i settaggi del server vero e proprio ovvero:
• Sistema Operativo
• Il tipo di computer se è un Server, un Domain Controller o una Workstation
• Se ci sono dei service Pack
• La versione del .NET Framework istallato
• Altro / Ecc.In dettaglio potete vederli nell'immagine:
Inoltre è possibile utilizzare il diagramma
System Designer per progettare sistemi di applicazioni facendo l'override delle impostazioni e delle connessioni nei casi in cui la soluzione debba essere distribuita su diversi clienti e su diverse piattaforme. Utilizzando il System Designer si ha la possibilità di creare più versioni di deployment della soluzione.
Infinde utilizzando il
Deployment Designer possiamo associare l'architettura applicativa all'architettura logica che è stata disegnata tramite il Logical DataCenter.
Utilizzando questo designer si associano per ogni server una o più unità applicative come viene illustrato nell'immagine successiva:
Come potete vedere nel
DBServer ho associato il
Repository, nel
WindowsClient la
DAL Application e così per tutti gli altri.
Una volta associate tutte le applicazioni si ha la possibilità di validare il diagramma per controllare se tutti i vincoli e i le impostazioni sono state configurate correttamente.
Infine se la convalida è andata a buon fine è possibile far generare un
Report (viene generata una pagina HTML) dove vengono descritti in modo dettagliato tutte le configurazioni, con i vari diagrammi e dove è possibile inserire, i nominativi dei ruoli coinvolti. Questo Report è molto ben fatto e può essere utilizzato come documento tecnico da allegare alle offerte o alla documentazione di progetto.
3. Software Developers
La versione per
Software Developers racchiude tutte le funzionalità di
Visual Studio 2005 Professional e inoltre aggiunge alcuni strumenti utili per migliorare lo sviluppo.
Questi strumenti sono:
• Code Analysis
• Profiler
• Unit TestCode Analysis
Code Analisys è uno strumento che effettua l'analisi del codice attraverso dei parametri stabiliti che possono essere modificati in base alle esigenze e alla piattaforma.
L'analisi del codice è molto importante perché permette di capire e correggere diversi errori come la sicurezza, l'utilizzo della Globalizzazione e di alcune classi rispetto ad altre.
Per modificare i parametri bisogna andare nelle proprietà del progetto e cliccare sul tab Code Analysis:
Come vedete dall'immagine, si può impostare il tipo di configurazione
(Debug, Release) su quale piattaforma, poi ci sono una serie di categorie
Design, Globalitazion, Security ecc. dove ci sono una serie di regole che si può scegliere se includere nell'analisi del codice e il tipo di stato ovvero se deve essere solo un'avvertimento o un vero e proprio errore.
Una volta definiti tutti i parametri dal menu
Build fare Run Code Analisys.
Performance Tool
Il
Performance Tool permette di analizzare le prestazioni dell'applicazione in fase di esecuzione per cercare di capire chi richiede più risorse, e ci sono due tipologie a
campionamento o a instrumentazione. La prima viene eseguita ad intervalli di tempo mentre la seconda mentre si esegue il progetto. Per eseguire il performance tool dal menu Tools selezionare Performance Tools e poi eseguire il wizard.
All'interno di Visual Studio si aprirà una nuova vista che permette di lanciare il Performance in base alle impostazioni che avete impostato. Una volta che avete terminato verrà generato un report con vari analizzatori
Unit Test
Anche nella versione
Software Developers si ha la possibilità di effettuare test includendo un progetto di tipo test e dove è possibile per esempio creare un
Unit Test dove il metodo che effettua il test avrà l'attributo
TestMethod[TestMethod()]
public void GetUtenteTest()
{
}
4. Software Testers
Nel ciclo di vita del software il testing ricopre un ruolo fondamentale (purtroppo non è per tutti così) e in grandi progetti soprattutto di livello enterprise e importante affiancare al gruppo di sviluppo un gruppo di testers. Proprio per il gruppo di tester è stato sviluppato
Visual Studio 2005 Team System for Software Testers.
Non entreremo in dettaglio di questa versione perché ci vorrebbe un articolo a parte ma descriveremo i vari test che sono possibili effettuare tramite
Team System:
•
Unit Test: consente di testare funzioni e metodi dell'applicazione e vengono usati per testare il codice sorgente
•
Test Web: consente di registrare l'attività di una determinata pagina web per verificarne il comportamento
•
Test ordinati: consento di raggruppare e ordinare un qualsiasi numero di unit test o test web.
•
Test di carico / Load Test: permette di verificare le caratteristiche di carico dell'applicazione dal numero di utenti simultanei, il tipo di browser, la comunicazione. Questo test è importante per verificare la scalabilità e le performance in base alle varie caratteristiche.
•
Test Manuali: definiscono una serie di test manuali che devono essere definiti dai tester
•
Test generico: è un programma esistente che può essere usato come test in visual studio.
Inoltre con
Team Foundation Server e possibile centralizzare i test i quali possono anche partire da degli
use cases (casi d'uso) per creare dei
Test Cases che sono spesso richiesti nella fase del collaudo.
Conclusioni
In questo articolo sono andato più in dettaglio nella versione
for Architects perché è quella che potuto usare di più anche perché è il ruolo che ricopro, ma spero di avervi fatto capire le grandi potenzialità di
Visual Studio 2005 Team System che chiaramente è stato sviluppato per il lavoro in Team ma anche i singoli Architetti/Sviluppatori troveranno in questo strumento un valido aiuto nel progettare e sviluppare le proprie applicazioni.