Roberto Brunetti

Developing in the cloud

.NET Programming

Archives

settembre 2010 - Posts

TFS + Scrum Master Tour

Facendo riferimento al post precedente, ecco un giro abbastanza completo su TFS e Scrum Master Workbench v2, su un progetto MSF for Agile 5.0 (il template di default di TFS 2010).

Il progetto demo è ThinkAhead.Pizza.MSF proprio per ricordare che il nostro fantomatico venditore di pizze ha un software scritto con MSF for Agile. L’idea è mostrare un giro abbastanza completo sul ciclo di vita di una User Story gestito da questi due strumenti.

Scrum Master Workbench si presenta con una grafica che ricorda le più classiche lavagne, ed è perfettamente integrato con TFS: alla partenza viene richiesto l’indirizzo dei servizi esposti da TFS e tutte le operazioni passano dai servizi in perfetto stile SOA.

Partendo dalla Task Board, si può creare una User Story (Calcolatore che sottrae): questa operazione invoca i servizi di TFS, esattamente come fa qualunque client per TFS (Team Explorer per primo) per aggiungere la User Story nel database dei Work Item del progetto.

Ripetuto il processo di creazione per una seconda User Story (calcolatore che moltiplica) si possono creare direttamente i Test Case dal pulsante “+” accandto alla User Story.

Abbiamo creato due Test Case, in fase di design per adesso; il primo assegnato a Andrea Provaglio che ha collaborato alla creazione dell’esempio e che collabora attivamente con noi nei progetti reali, il secondo assegnato a me.

I test case, in TFS verranno legati alla User Story relativa. Questa la visualizzazioene di Scrum Master Workbench.

1_UserStories_TestCase

Per vedere meglio l’interazione ci siamo spostati su Visual Studio Team Explorer e, analizzando i Test Case, abbiamo inserito due task molto semplici. Le prime due task nella figura seguente erano due test precedenti.

La creazione della classe è stata assegnata a me, mentre l’implementazione del metodo ad Andrea. Entrambe sono legate alla User Story numero 36 – Calcolatore che moltiplica

3_VSActiveTask

Tornando in Scrum Master Workbench è possibile recuperare le informazioni:

2_UserStories_Task

Visto che le due task sono state legate alla user story, appaiono come post-it accanto alla user story relativa e vengono segnate nella colonna Active e colorate di giallino. In alto invece possiamo notare una Task già chiusa di colore verde.

Lo sviluppatore, dall’elenco delle task della figura precedente, può vedere i lavori assegnati, oppure può prendere una task non assegnata a nessuno per iniziare il lavoro in perfetto stile Agile.

La prima task era destinata a me, quindi scrivo il codice seguente, in questo caso usando il metodo più classico: niente TTD o virtuosismi; aggiungo una classe al progetto Biz e la rendo pubblica.

4_Calcolatore

Eseguo il check-in legando la task assegnata e indicando il suo completamento (vedremo i test e TTD più avanti):

 

5_CheckInCalc

La risoluzione della task fa si che in TFS la task passi allo stato di Completed in automatico. Posso verificare questo cambiamento anche in Scrum Master Workbench.

 

6_VerificaTaskCompleted

Adesso infatti la User Story 36 ha una task completata (Closed) e una aperta (Active) che Andrea dovrà implementare.

Andrea userà la metodologia TTD per implementare la classe. Partirà quindi dai Test Case da implementare visualizzandoli con Scrum Master Workbench oppure dal Team Explorer:

7_OpenTestCase

La descrizione delle Task, delle User Story e dei Test Case è volutamente breve per ragioni di spazio per questo post.

Andrea, inizia a creare il codice di test sfruttando il Test Framework di Visual Studio Ultimate:

 

8_TTD

Come si nota, l’intellisense di Visual Studio segnala che il metodo Multiply non è stato ancora implementato. Il test, come si nota, è stato Legato al WorkItem 37, che, come si può vedere dallo screenshot seguente è “Moltiplicare 3x2”: l’assegnazione è stata fatta in modo visuale dalla maschera delle proprietà.

Usando la funzionalità di Create Method Stub, Andrea ha creato il metodo, lo ha implementato e successivamente ha fatto check-in dopo varie prove sul Test.

Durante il check-in, è stato legato il Test Case in automatico

9_CheckiInTest

Visto che il Test Case è pronto per entrare in gioco nel progetto, dalla query “Test Case” del Team Explorer, Andreà marchera il test come “Ready”.

10_TestCaseReady

Lo Scrum Master Workbench visualizza esattamente la stessa informazione: il test case assegnato a me è ancora in Design, mentre il test implementato da Andrea è ready.

 

11_TestCaseReadyInSM

Facciamo girare il Test per verificare la sua funzionalità direttamnete da Test View.

12_TestPassed

Passato il test è il momento di fare un primo Check-in (si potrebbe fare uno Shelve per condividere il codice che ancora non abbiamo testato del tutto, ma visto che vogliamo tenere l’esempio semplice, passateci un check-in in questa fase).

13_MethodImplemented

Durante il check-in, è stata legata la task di implementazione del metodo di calcolatrice che giustamente viene marcata come Resolve.

Dovremmo ancora ripetere l’operazione di creazione del test e del relativo codice per l’altro Test Case, ma visto che i passi sono ripetitivi li omettiamo per semplicità.

Una volta terminato il codice dei due test case (corrispondendi alle due task nel nostro caso) possiamo marcare come Resolve, durante il check-in, anche la nostra User Story 36.

14_FinishCalc

Il Scrum Master Workbench presenta la situazione finale: La user story è completata, e le due task interne sono state chiuse.

15_UserStory_Task_Completed

Andrea tiene regolarmente corsi di Agile Programming per le aziende più importanti nel panorama nazionale e internazionale ed è impegnato in numerose conferenze sull’argomento. Per chi non lo conosce, le informazioni sul suo profilo e sulle sue attività sono visibili sul suo sito www.andreaprovaglio.com.

Alla prossima

Rob

Posted: set 24 2010, 09:28 by rob | with no comments
Filed under:
Visual Studio 2010 & TFS Extensions

Nell’ultimo periodo sono stato impegnato nello studio e realizzazione di varie applicazioni per Windows Phone 7 con ThinkAhead, azienda del nostro gruppo che si occupa principalmente di User Interface, sviluppo mobile e Windows Azure.

Abbiamo avuto modo di sperimentare alcune metodologie nello sviluppo di queste applicazioni utilizzando alcuni strumenti ed estensioni di Visual Studio 2010 che mi ero ripromesso di inserire nel blog al termine dei lavori.

Eccoci quà, gli strumenti per Windows Phone 7 sono stati rilasciati, abbiamo completato alcune applicazioni e ieri abbiamo assistito all’evento di “pre-lancio” di Windows Phone 7, quindi è arrivato il momento di relativa calma dove tornare sull’idea originale.

A fine giugno è stato rilasciato Visual Studio Visualization & Modeling Feature Pack, disponibile per gli abbonati MSDN che consente di:

  • Generate code from UML class diagrams.
  • Create UML class diagrams from code.
  • Import UML class, sequence, and use case elements from XMI 2.1 files.
  • Create and view links from work items to model elements.
  • Generate dependency graphs for ASP.NET Web, C, and C++ projects.
  • Create and validate layer diagrams for C and C++ code.
  • Write custom code to create, modify, and validate layer diagrams.

Per poter utilizzare questo componente occorre aver installato il relativo runtime: Visualization and Modeling Feature Pack Runtime.

Per la parte TFS, ad oggi sono disponibili vari template aggiuntivi

Microsoft Visual Studio Scrum 1.0
Prodotto direttamente da Microsoft per supportare la metodologia Scrum. E’ un process template di TFS che va installato su una macchina in grado di collegarsi a TFS e da cui effettuare l’upload del template.

Un secondo componente estende SharePoint per supportare alcune web part e feature all’interno del portale di progetto. In questo caso occorre copiare il .wsp sul portale SharePoint ed eseguire le semplici instruzioni presenti nel readme

Process Editor – TFS Power Tool September
Il sito riporta ancora (April 2010), ma da qualche giorno è disponibile l’aggiornamento di settembre. http://visualstudiogallery.msdn.microsoft.com/en-us/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

Aggiunge il Process Template Editor, Alerts Explorer, Best Practices Analyzer, Customer Check-in Policy Pack, Team Members, PowerShell Cmdlets, Shell Extensions e Work Item Template, nonchè alcune aggiunte al Team Explorer.

Feature Builder Power Tool
Per semplificare la scrittura di estensioni per Visual Studio : http://visualstudiogallery.msdn.microsoft.com/en-us/396c5990-6356-41c0-aa20-af4c3e58c7ae

Productivity Power Tool
Una serie utilissima di strumenti per semplificare le classice operazioni che si compiono durante lo sviluppo di software.

http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef

Pex and Moles Unit Testing for .NET
Consente di generare test suite con copertura alta del codice (code coverage). Il componenete arriva direttamente da Microsoft Research ed è molto comodo in quanto integrato con il resto dell’ambiente.

http://research.microsoft.com/en-us/projects/pex/

Buon divertimento.

Posted: set 24 2010, 11:00 by rob | with 1 comment(s)
Filed under:
Windows Phone 7 – RTM

Da oggi sono disponibili gli strumenti di sviluppo in RTM per Windows Phone 7. Sembra passato solo qualche giorno dalla prima release di Marzo 2010.

Gli strumenti, totalmente gratuiti comprendono

  • Visual Studio 2010 Express for Windows Phone
  • Express Blend 4 for Windows Phone per designer
  • Silverlight for Windows Phone 7
  • XNA Game Studio for Windows Phone 7
  • Windows Phone Emulator 
  • Phone Registration Tool: consente di sbloccare un device per l’utilizzo con gli strumenti di sviluppo
  • Application Deployment: consente di eseguire il deploy di una applicazione sull’emulatore o sul device
  • Come download separato

    Buon divertimento

    Windows Azure Tools for Visual Studio

    Volevo condividere due screenshot che dimostrano la pubblicazione automatica da Visual Studio 2010 verso Windows Azure.

    E’ necessario effettuare prima l’upload di un certificato digitale che verrà poi utilizzato da Visual Studio durante il publish a garanzia dell’identità dell’utente. E’ sufficiente un certificato digitale personale (con estensione .cer) che è possibile, ad esempio, anche esportare da Internet Explorer o usando la Management Console.

    Al posto di creare un Package e eseguire l’upload manualmente, è possibile utilizzare il dialog seguente dove indicare il certificato uploadato, l’ambiente in cui pubblicare (su Staging e Production) e il progetto Storage Account da utilizzare per appoggiare il package da cui viene poi eseguito il deploy.

    image

    Dopo l’ok si può verificare l’esito dell’operazione.

    image

    E’ possibile monitorare lo stato di avanzamento direttamente all’interno di Visual Studio

    image

    image

     

    image

     

    image

     

    Si arriva anche al dettaglio dei vari ruoli e la rispettiva inizializzazione:

    image

    Dopo aver configurato il certificato si può anche accedere ai dati della parte computazione direttamente dal server explorer di Visual Studio:

    image

    Posted: set 15 2010, 08:14 by rob | with no comments
    Filed under:
    Windows Azure 1.6

    Ho avuto solo oggi il tempo di passare due applicazioni reali rispettivamente dalla versione 1.4 e dalla versione 1.5 alla versione uscita ormai qualche giorno fa.

    Entrambe le applicazioni erano impostate per un aggiornamento manuale: altre due applicazioni, la prima delle quali è in beta test e fornisce servizi ad una applicazione Windows Phone 7, sono invece state aggiornate in automatico la settimana scorsa.

    Le info sulla nuova versione, principalmente fix, possono essere recuperate da quà: http://msdn.microsoft.com/en-us/library/ff962830.aspx

    Posted: set 14 2010, 10:20 by rob | with no comments
    Filed under: