E' da un po' di tempo ormai, che uso Team Foundation Server per la gestione dei progetti della mia azienda e lo trovo un prodotto a dir pocco spettacolare. Oggi però mi è nata una esigenza particolare per alcuni progetti: quella di gestire lo stato "In Corso" dei vari Work Item. Una delle cose di cui sentivo la mancanza rispetto ad altri prodotti, era appunto quella di vedere quanti e quali elementi sono effettivamente in lavorazione e quanti solo "Attivi".
Mi son quindi ricordato di aver sentito dire da Lorenzo che c'era la possibilità di modificare la scheda relativa ai WorkItem, semplicemente editando un file. Così, Google alla mano, ho cercato un po' di info ed ho scoperto che la procedura, tutto sommato è abbastanza semplice:
- si deve "scaricare" su file XML la definizione del Workitem con il tool da riga di comando witexport
- modificare il file di definizione del WorkItem editando l'XML
- ricaricare il file di definizione con il comando witimport
Nel mio caso specifico, la modifca riguardava il cambiamento di stato dell'item, operazione che nel file di definizione si chiama Workflow. Per aggiungere il mio nuovo "step" è stato sufficiente prima definire il nuovo stato:
<STATES>
<STATE value="Active">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="InProgress" /> <!-- Nuovo Stato -->
<STATE value="Closed" />
</STATES>
Successivamente inserire la transazione da uno stato all'altro nel Workflow:
<!-- Nuova Transazione -->
<TRANSITION from="Active" to="InProgress">
<REASONS>
<DEFAULTREASON value="InProgress" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="System.AssignedTo">
<COPY from="field" field="Microsoft.VSTS.Common.ActivatedBy" />
</FIELD>
</FIELDS>
</TRANSITION>
In questo caso specifico, è stata aggiunta solo la transazione dallo stato di "Active" allo stato di "InProgress". Si dovrà poi modificare quella che definisce il passaggio da "Active" a "Close" eventualmente copiandola e modificando lo stato di partenza da "Active" a "InProgress" (altrimenti non sarà possibile passare allo stato di "Closed"). Completata l'operazione, il file andrà salvato e ricaricato.
Il risultato finale sarà il seguente:
Ora sarà possibile tracciare anche questo tipo di "Stato" dei WorkItem.
Le possibilità di personalizzazione non si fermano qui. A questo link, si possono trovare altre utili informazioni sulla customizzazione dei Work Item.
Buon divertimento 
Al seguente indirizzo: http://www.microsoft.com/downloads/details.aspx?FamilyID=7a0bce98-eab4-40a3-b7ec-43c09d6ae8cb&DisplayLang=en
è possibile scaricare il Live Search Maps Add-In per Outlook. L'Add-In è davvero comodo in quanto vi permette di visualizzare la mappa relativa ai vostri appuntamenti (a patto che indichiate in esso l'indirizzo corretto).
Molto comoda la possibilità di includere, nella body dell'appuntamento, uno screen shot della mappa, specie quando state inviando l'appuntamento a qualcuno.
Una cosa: il primo avvio di outlook successivo all'installazione è lento. Ma solo il primo avvio quindi....non preoccupatevi 
Source: Nick Mayhew - Reaching out to partners in Australia : Live Search Maps Add-In for Outlook
Segnalo un articolo (in inglese) in cui viene spiegato, in modo molto semplice, come implementare il servizio di persistenza su SQL Sevrer di Windows Workflow Foundation.
Persisting Workflows Using WF- Movie Rental Example
Here is an article that shows how to persist running workflows. Persisting long-running workflows is just one of the powerful features of WF, and this article gives a great example. It shows a movie being rented from a store and how the rental metadata is persisted until the movie is due or returned back to the store. The article also shows how to create the Sql data store and how to wire up the core service for handling persistance. Get the solution used for this article here.
Source: Bayer White - .Net Made Easy With WF : Persisting Workflows Using WF- Movie Rental Example
Fonte: http://blogs.msdn.com/pandrew/archive/2007/05/02/wf-persistence-example.aspx