ALM http://blogs.ugidotnet.org/rgm/category/ALM.aspx ALM it-IT Gian Maria Ricci Subtext Version 2.6.0.0 Sapevatelo VSTS: Variable group nelle build http://blogs.ugidotnet.org/rgm/archive/2017/05/06/Sapevatelo-VSTS-Variable-group-nelle-build.aspx <p>Indubbiamente il build system di VSTS / TFS è una delle parti che sta introducendo molte innovazioni, soprattutto dopo la completa riscrittura iniziata oramai due anni fa. Una delle funzionalità più interessanti, e che è ancora poco conosciuta sono i gruppi di variabili, <a href="https://www.visualstudio.com/en-us/docs/build/concepts/library/variable-groups">descritti qui</a>.</p> <p>In poche parole potete generare un insieme di variabili e dargli un nome, per poter poi riutilizzare questo inisieme di variabili in qualsiasi build del progetto. </p> <p><img src="https://www.visualstudio.com/en-us/docs/build/concepts/library/_img/variable-group.png" /></p> <p>In questo modo l’amministrazione delle build risulta molto semplificata, soprattutto in quei casi in cui abbiamo molte build con serie di passi simili (CI, SonarQube, Package, etc). Grazie ai Variable Groups possiamo generare un gruppo di variabili valido per tutto il progetto ed usarlo semplicemente in tutte le build di cui abbiamo bisogno.</p> <p><img src="https://www.visualstudio.com/en-us/docs/build/concepts/library/_img/link-variable-group.png" /></p> <p>Happy VSTS.</p><img src="http://blogs.ugidotnet.org/rgm/aggbug/102414.aspx" width="1" height="1" /> Gian Maria Ricci http://blogs.ugidotnet.org/rgm/archive/2017/05/06/Sapevatelo-VSTS-Variable-group-nelle-build.aspx Sat, 06 May 2017 11:52:00 GMT http://blogs.ugidotnet.org/rgm/archive/2017/05/06/Sapevatelo-VSTS-Variable-group-nelle-build.aspx#feedback http://blogs.ugidotnet.org/rgm/comments/commentRss/102414.aspx http://blogs.ugidotnet.org/rgm/services/trackbacks/102414.aspx Nuovo deploy per VSTS http://blogs.ugidotnet.org/rgm/archive/2017/02/18/nuovo-deploy-per-vsts.aspx <p>Con la solita cadenza tri-settimanale ecco le <a href="https://www.visualstudio.com/en-us/articles/news/2017/feb-15-team-services">release notes del nuovo sprint rilasciato su VSTS</a>. La nuova funzionalità su cui mi voglio soffermare è il cambio di licenza / uso per i build agent. Tradizionalmente infatti VSTS permetteva di usare un agent on premise gratuitamente, e per ogni agent in più era necessario pagare un abbonamento mensile. </p> <p>Con il nuovo update la situazione è cambiata, nella parte di amministrazione del vostro account è ora presente un menu dedicato alle Build and Release dove potete vedere le Resource Limits.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/cf701301ec90_9682/image_2.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/cf701301ec90_9682/image_thumb.png" width="842" height="358" /></a></p> <p>Di base avete solamente una free pipeline, il cui significato è discusso in <a href="https://www.visualstudio.com/en-us/docs/build/concepts/licensing/concurrent-pipelines-ts">questo articolo</a>. Senza entrare nel dettaglio il concetto è che potete installare quanti agent volete, ma se avete una sola pipeline attiva, solamente una build o una release attiva possono coesistere contemporaneamente. Questo significa che anche se avete agent liberi, se una build è in corso le altre verranno accodate. </p> <p>Questa situazione è molto più desiderabile rispetto alla gestione classica, perché in questo modo voi potete deployare quanti agent volete, senza doverli ogni volta attivare o disattivare, e lasciare che sia il sistema a gestire il throttling. Se vi rendete conto che una sola pipeline non vi basta, potete acquistarne altre, ma nel frattempo potete installare agent su linux, windows, mac senza dovere impazzire. </p> <p>Gian Maria.</p><img src="http://blogs.ugidotnet.org/rgm/aggbug/102356.aspx" width="1" height="1" /> Gian Maria Ricci http://blogs.ugidotnet.org/rgm/archive/2017/02/18/nuovo-deploy-per-vsts.aspx Sat, 18 Feb 2017 11:49:48 GMT http://blogs.ugidotnet.org/rgm/archive/2017/02/18/nuovo-deploy-per-vsts.aspx#feedback http://blogs.ugidotnet.org/rgm/comments/commentRss/102356.aspx http://blogs.ugidotnet.org/rgm/services/trackbacks/102356.aspx Nuovo aggiornamento VSTS http://blogs.ugidotnet.org/rgm/archive/2017/01/28/nuovo-aggiornamento-vsts.aspx <p>Gennaio 25 arriva ed ecco il nuovo aggiornamento di VSTS, annunciato nel <a href="https://blogs.msdn.microsoft.com/bharry/2017/01/26/vs-team-services-update-jan-25/">blog di Brian</a>.</p> <p>Come sempre ci sono alcune interessanti novità e nel blog di Brian Harry troviamo le più significative, la prima è un addin di una nuova funzionalità chiamata Agile Delivery Plans, che permette di<strong> verificare nella propria azienda lo stato di avanzamento dei lavori</strong>. Questa funzionalità è per ora presente come addin ed è in una early preview, ma vale la pena spenderci un po di tempo per giocarci e comprenderne le potenzialità.</p> <p>La seconda, e secondo me ancora più importante, è la preview della <strong>visualizzazione Mobile Friendly dei Work Item, che finalmente permette di gestire un Work Item anche da un device</strong>, ecco una schermata.</p> <p><img alt="mobile form" src="https://www.visualstudio.com/en-us/articles/news/2017/_img/01_25_01.png" /></p> <p>Ma le novità non finiscono qui, è ora possibile anche provare la preview del nuovo editor per le build </p> <p><img alt="build editor switch" src="https://www.visualstudio.com/en-us/articles/news/2017/_img/01_25_build-editor-new-build-editor-switch.png" /></p> <p>Il nuovo editor promette una ancora <strong>più facile esperienza nella creazione e manutenzione della definizione di build</strong>, con un nuovo editor completamente rinnovato, assieme alla possibilità di avere tutti i parametri principali della build in un unica schermata, invece di dover selezionare task dopo task.</p> <p><strong>Come sempre, data la grande importanza di Git, abbiamo delle modifiche di usabilità per la Pull Request</strong>, che permettono di visualizzare in maniera migliore i commenti, è stata aggiunta una toolbar nei commenti per permettere l'uso della formattazione Markdown anche a chi non ricorda o conosce la sintassi, e le pull request sono raggiungibili anche dal dettaglio dei commit che fanno parte di una pull request.</p> <p>Se avete adottato VSTS, tra pochi giorni avrete disponibili automaticamente tutte queste nuove funzionalità, senza dovere installare od aggiornare nulla.</p> <p>Happy VSTS.</p><img src="http://blogs.ugidotnet.org/rgm/aggbug/102338.aspx" width="1" height="1" /> Gian Maria Ricci http://blogs.ugidotnet.org/rgm/archive/2017/01/28/nuovo-aggiornamento-vsts.aspx Sat, 28 Jan 2017 13:52:11 GMT http://blogs.ugidotnet.org/rgm/archive/2017/01/28/nuovo-aggiornamento-vsts.aspx#feedback http://blogs.ugidotnet.org/rgm/comments/commentRss/102338.aspx http://blogs.ugidotnet.org/rgm/services/trackbacks/102338.aspx Nuovo Ask Me Anything con il team di GetLatestVersion il 31 gennaio. http://blogs.ugidotnet.org/rgm/archive/2017/01/05/nuovo-ask-me-anything-con-il-team-di-getlatestversion-il.aspx <p>Il 31 Gennaio 2017 GetLatestVersion organizza un nuovo AMA (Ask Me Anything) online. Per chi non lo sapesse l'AMA è un appuntamento in cui chiunque può partecipare e chiedere quello che si vuole sull'argomento in discussione ed il team di GLV cercherà :) di rispondere. </p> <p>L'argomento come sempre è ALM su piattaforma TFS/VSTS, metodologie Agili e DevOps.</p> <p>Potete registrarvi a questo indirizzo <a href="http://bit.ly/2hPgjgc">http://bit.ly/2hPgjgc</a></p> <p>Vi aspettiamo.</p> <p>Il Team di GetLatestVersion</p><img src="http://blogs.ugidotnet.org/rgm/aggbug/102321.aspx" width="1" height="1" /> Gian Maria Ricci http://blogs.ugidotnet.org/rgm/archive/2017/01/05/nuovo-ask-me-anything-con-il-team-di-getlatestversion-il.aspx Thu, 05 Jan 2017 10:32:29 GMT http://blogs.ugidotnet.org/rgm/archive/2017/01/05/nuovo-ask-me-anything-con-il-team-di-getlatestversion-il.aspx#feedback 1 http://blogs.ugidotnet.org/rgm/comments/commentRss/102321.aspx http://blogs.ugidotnet.org/rgm/services/trackbacks/102321.aspx Aggiunta di un tipo di Work Item in VSTS http://blogs.ugidotnet.org/rgm/archive/2016/12/03/aggiunta-di-un-tipo-di-work-item-in-vsts-again.aspx <p>Precedenti post sulla personalizzazione Work Item in TFS</p> <p>1 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/03/tfs-e-customizzazione-del-process-template.aspx">Tfs e customizzazione del process template</a> <br /><a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/17/customizzare-il-process-template-le-basi.aspx">2 – Customizzare il Process Template, le basi</a> <br /><a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/26/customizzare-il-process-template-aggiungere-un-campo-ad-un-work.aspx">3 – Customizzare il process Template, aggiungere un campo ad un Work Item</a> <br />4 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/02/03/customizzare-il-process-template-regole-per-i-campi-aggiuntivi-dei.aspx">Customizzare il process template, regole per i campi aggiuntivi dei WI</a> <br />5 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/02/18/personalizzare-i-work-item-di-tfs-ancora-qualche-regola-interessante.aspx">Personalizzare i Work Item di TFS, ancora qualche regola interessante</a> <br />6 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/03/22/stati-e-transizioni.aspx">Stati e transizioni</a> <br />7 – <a href="http://blogs.ugidotnet.org/rgm/archive/0001/01/01/approfondiamo-stati-e-transizioni.aspx">Approfondiamo stati e transizioni</a></p> <p>Post su personalizzazione VSTS</p> <p>1 – <a href="http://www.getlatestversion.it/2016/09/24/personalizzare-il-process-template-in-vsts/">Personalizzare il process template in VSTS</a> <br /><a href="http://www.getlatestversion.it/2016/09/24/process-template-ereditati-in-vsts/">2 – Process template Ereditati in VSTS</a> <br /><a href="http://www.getlatestversion.it/2016/10/08/aggiungere-ad-un-work-item-un-campo-esistente-in-un-altro-template/">3 – Aggiungere ad un Work Item un campo esistente in un altro template</a> <br /><a href="http://www.getlatestversion.it/2016/10/28/personalizzare-il-process-template-in-vsts-creare-un-campo-custom/">4 – Creazione di un campo custom</a> <br />5 – <a href="http://www.getlatestversion.it/2016/11/12/modificare-gli-stati-di-un-work-item/">Modificare gli stati di un Work Item</a></p> <p>Sicuramente la personalizzazione più interessante che può essere fatta su un Process Template è <strong>aggiungere un nuovo tipo di Work Item. </strong>In ogni team infatti esiste la necessità di tracciare informazioni concettualmente non mappabili su uno dei tipi di Work Item Tradizionali. Ad esempio potreste voler tracciare le sessioni di Event Storming da fare con il cliente e poterle schedulare. In questo caso un normale PBI nel process template SCRUM potrebbe fare al caso vostro, ma sicuramente avere un Work Item personalizzato permette di tracciare l’informazione in maniera più corretta. Per chi fa SCRUM infatti può essere interessante creare un Work Item Type per ogni tipologia di attività che sia pianificabile nello sprint.</p> <p>Come possibile esempio mostrerò una personalizzazione fatta sul process template dell’account VSTS di GetLatestVersion, creata per per supportare un processo particolare, la pubblicazione di video-pillole sull’argomento ALM.</p> <p>Di base con il processo SCRUM , sarebbe possibile utilizzare i PBI per rappresentare i Video che vogliamo realizzare ed utilizzare le features per categorizzare i video, ma è in qualche modo una forzatura. Sicuramente il <strong>poter creare dei Work Item personalizzati permettono di rappresentare in maniera più personalizzata e corretta queste iniziativa</strong>.</p> <p>Navigando nella sezione dei Work Item Types nella pagina di personalizzazione del Process Template, si può notare il link che permette la creazione di un nuovo Work Item Type.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_2.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_thumb.png" width="445" height="254" /></a></p> <p>Per cominciare inizio creando un Work Item chiamato Video Pill, che deve rappresentare un video di massimo 7 minuti che focalizzerà l’attenzione su un punto ben preciso. <strong>Come si può vedere dalla figura sottostante è sufficiente dare un nome, una descrizione ed un colore ed il nuovo Work Item è creato.</strong></p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_4.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_thumb_1.png" width="638" height="535" /></a> </p> <p>Alla pressione del bottone “Create” viene creato il nuovo Work Item che appare immediatamente nella lista a sinistra.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_6.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_thumb_2.png" width="236" height="183" /></a></p> <p>A questo punto la prima modifica che solitamente viene effettuata è quella di <strong>decidere se e dove questo nuovo Work Item apparirà nei backlog, ovvero nella pianificazione agile (Portfolio Management).</strong> </p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_8.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_thumb_3.png" width="221" height="240" /></a></p> <p>Di base si deve quindi decidere a che livello del backlog verrà visualizzato il nostro Work Item Type, oppure decidere di non farlo apparire per nulla. Nel caso della pillola video si è deciso per il livello del PBI, ovvero, banalmente, una User Story. In questo modo è possibile dare una “categoria” all’informazione. Tutti i Work Item a livello Task sono attività dello sprint / iterazione figlie di un elemento del backlog, mentre i livelli superiori (features ed epics) sono contenitori più generali per gestire il Portfolio Management.</p> <p>Per quanto riguarda le opzioni di Overview è possibile modificare la descrizione, sia distruggere il tipo di Work Item, opzione che non è chiaramente possibile per i Work Item base del processo. Anche in questo caso si può vedere come<strong> il sistema previene operazioni (come la cancellazione di tipi già presenti) che possono andare ad inficiare un eventuale aggiornamento del Process Template.</strong></p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_10.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_thumb_4.png" width="240" height="137" /></a></p> <blockquote> <p>Ricordate che cancellare un Work Item Type custom provocherà la cancellazione di tutti i Work Item creati sulla base di quel tipo, cosi come tutti i dati storici, ed è quindi una operazione che deve essere ponderata con molta attenzione.</p> </blockquote> <p><strong>Dopo avere selezionato la posizione del Backlog è consigliabile andare ad editare gli stati disponibili</strong>, in questo caso si è scelto di utilizzare gli stessi stati del PBI. Questo non è strettamente necessario, ma dato che il nuovo tipo di Work Item condivide lo stesso livello di Backlog, il processo sarà molto più chiaro se la nostra Video Pill contiene gli stessi stati dei Work Item Type che sono presenti allo stesso livello.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_12.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_thumb_5.png" width="141" height="240" /></a></p> <p>Anche in questo caso è interessante vedere le differenze che vi sono tra i menù contestuali presenti nella lista di stati di un PBI (1) e quelli presenti nella lista di stati del nostro nuovo Work Item (2).</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_14.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiunta-di-un-tipo-di-Work-Item-in-VSTS_DFBA/image_thumb_6.png" width="240" height="85" /></a></p> <p>Mentre per il PBI le uniche opzioni che possiamo avere per gli stati base sono View e Hide, nel nostro nuovo Work Item tutti gli stati possono essere sia Editati che Rimossi. Mentre, come visto nell’articolo precedente, non è possibile rimuovere uno stato per uno dei Work Item base, per quelli personalizzati non esiste nessuna limitazione e <strong>si possono aggiungere e rimuovere tutti gli stati che si preferisce</strong>. </p> <p>A questo punto non rimane altro da fare che andare a inserire nel Work Item Type i campi desiderati e modificare il layout in modo che sia aderente alle nostre necessità.</p> <p>Anche in questo caso si può notare come con veramente pochi click sia stato possibile andare ad aggiungere una nuova tipologia di informazione nel nostro account VSTS, adattandolo alle specifiche esigenze del team e senza il rischio di complicare le procedure di update.</p> <p>Gian Maria.</p><img src="http://blogs.ugidotnet.org/rgm/aggbug/102270.aspx" width="1" height="1" /> Gian Maria Ricci http://blogs.ugidotnet.org/rgm/archive/2016/12/03/aggiunta-di-un-tipo-di-work-item-in-vsts-again.aspx Sat, 03 Dec 2016 11:18:29 GMT http://blogs.ugidotnet.org/rgm/archive/2016/12/03/aggiunta-di-un-tipo-di-work-item-in-vsts-again.aspx#feedback http://blogs.ugidotnet.org/rgm/comments/commentRss/102270.aspx http://blogs.ugidotnet.org/rgm/services/trackbacks/102270.aspx Modificare gli stati di un Work Item http://blogs.ugidotnet.org/rgm/archive/2016/11/12/modificare-gli-stati-di-un-work-item.aspx <p>Precedenti post sulla personalizzazione Work Item in TFS</p> <p>1 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/03/tfs-e-customizzazione-del-process-template.aspx">Tfs e customizzazione del process template</a> <br /><a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/17/customizzare-il-process-template-le-basi.aspx">2 – Customizzare il Process Template, le basi</a> <br /><a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/26/customizzare-il-process-template-aggiungere-un-campo-ad-un-work.aspx">3 – Customizzare il process Template, aggiungere un campo ad un Work Item</a> <br />4 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/02/03/customizzare-il-process-template-regole-per-i-campi-aggiuntivi-dei.aspx">Customizzare il process template, regole per i campi aggiuntivi dei WI</a> <br />5 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/02/18/personalizzare-i-work-item-di-tfs-ancora-qualche-regola-interessante.aspx">Personalizzare i Work Item di TFS, ancora qualche regola interessante</a> <br />6 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/03/22/stati-e-transizioni.aspx">Stati e transizioni</a> <br />7 – <a href="http://blogs.ugidotnet.org/rgm/archive/0001/01/01/approfondiamo-stati-e-transizioni.aspx">Approfondiamo stati e transizioni</a></p> <p>Post su personalizzazione VSTS</p> <p>1 – <a href="http://www.getlatestversion.it/2016/09/24/personalizzare-il-process-template-in-vsts/">Personalizzare il process template in VSTS</a> <br /><a href="http://www.getlatestversion.it/2016/09/24/process-template-ereditati-in-vsts/">2 – Process template Ereditati in VSTS</a> <br /><a href="http://www.getlatestversion.it/2016/10/08/aggiungere-ad-un-work-item-un-campo-esistente-in-un-altro-template/">3 – Aggiungere ad un Work Item un campo esistente in un altro template</a> <br /><a href="http://www.getlatestversion.it/2016/10/28/personalizzare-il-process-template-in-vsts-creare-un-campo-custom/">4 – Creare un campo Custom</a></p> <p>Per chi ha personalizzato il Workflow di un Work Item, sicuramente la possibilità di personalizzazione degli stati dei Work Item offerta attualmente da VSTS sembrerà alquanto primitiva. <strong>La personalizzazione offerta da VSTS infatti non permette ancora di definire un vero e proprio Worklfow, come invece è possibile fare personalizzando il template di TFS, ma permette solamente di gestire l’anagrafica degli stati</strong>.</p> <p>Nella figura sottostante si può infatti vedere la parte di personalizzazione degli stati (1) di un Work Item (PBI), in cui è possibile aggiungere nuovi stati (2) oppure editare gli stati presenti (3).</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_2.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_thumb.png" width="585" height="496" /></a></p> <p>Come si può vedere dalla figura, <strong>gli stati del Work Item sono raggruppati in aree, chiamate: Proposed, In Progress, Completed e Removed.</strong> Questi valori rappresentano una sorta di “macro categorie” per gli stati. La regola è che deve esistere almeno uno stato valido per ogni macro categoria. Questo garantisce al motore di poter sempre “ragionare” sulle “macro categorie” per generare le board di default e per tutti i comportamenti di default. </p> <blockquote> <p><font style="background-color: #ffffff">Le limitazioni di personalizzazione ed il concetto di Macro Categorie permette di rendere indolore l’aggiornamento, evitando che l’utente possa andare a modificare <strong>qualsiasi</strong> aspetto del Workflow. Si paga quindi la limitazione, ma si ottiene di contro un aggiornamento senza sorprese.</font></p> </blockquote> <p><strong>Per tutti gli stati già presenti, l’unica opzione possibile è quella di “nasconderli”, con l’opzione hide</strong>. Questo significa che lo stato è sempre presente nel template (garantendo quindi la compatibilità degli upgrade), ma non è più possibile associare questo stato ad un Work Item. Tutti i Work Item associati ad uno stato che è messo in Hide sono considerati in uno stato invalido.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_4.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_thumb_1.png" width="535" height="305" /></a></p> <p> </p> <p>In questo caso nella figura precedente è stato mostrato lo stato Approved messo in “hide”. A questo punto aprendo un Work Item in quello stato la UI forza a cambiarne il valore.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_6.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_thumb_2.png" width="658" height="207" /></a></p> <p><strong>Come regola non è possibile mettere in hide tutti gli stati di una “Macro Categoria”</strong>, questo garantisce al motore di VSTS che ogni Work Item ha uno stato che al 100% appartiene ad una delle Macro Categorie.</p> <blockquote> <p><font style="background-color: #ffffff">La tecnica di mettere uno stato in Hide, previene una delle personalizzazioni che maggiormente rendono complicati gli upgrade, la rimozione di uno degli stati base.</font></p> </blockquote> <p>Si può naturalmente creare un nuovo stato e <strong>le uniche opzioni che possono essere configurate sono: il nome, la Macro Categoria ed il colore</strong>.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_8.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_thumb_3.png" width="639" height="474" /></a></p> <p><strong>A differenza degli stati base, gli stati nuovi aggiunti dall’utente possono essere rimossi.</strong> L’effetto è simile a quello che si ha con l’hide degli stati di default. In questo caso però lo stato verrà rimosso completamente dalla lista e potrà chiaramente essere riaggiunto in seguito. Anche se lo stato viene rimosso i valori storici rimarranno, per cui nella storia dei vari Work Item le transizioni da e per quello stato saranno sempre presenti nella storia. Tutti i Work Item che si trovano attualmente in uno stato rimosso sono  in uno stato non valido e debbono essere corretti prima di poter essere salvati nuovamente. (analogamente a quanto succede con l’Hide)</p> <p>Purtroppo in questa prima versione la personalizzazione si ferma qui e non si  hanno altre opzioni. <strong>Di base la mancanza maggiore che si ha rispetto alla personalizzazione completa è l’impossibilità di definire un vero workflow, stabilendo le transazioni tra gli stati. </strong>Questo impedisce anche di poter mettere security tra la transazione degli stati, e di fatto è quindi possibile muoversi da qualsiasi stato in qualsiasi altro stato di destinazione. </p> <p>Sebbene questa personalizzazione sia limitata, permette comunque di poter aggiungere stati e garantire di adeguare la nomenclatura del flusso al proprio processo.</p> <p><strong>Una volta terminata la personalizzazione degli stati, è necessario aggiornare la configurazione nella Kanban Board.</strong> Ad esempio avendo messo in Hide lo stato Approved per il PBI la configurazione di default lamenta questo errore:</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_10.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_thumb_4.png" width="684" height="545" /></a></p> <p>In questo caso la colonna “Approved” non è più valida perché referenzia lo stato “Approved” del Work Item Type PBI, che invece è stato messo in uno stato Hide.</p> <p>E’ sufficiente specificare un nuovo stato valido per tutte le colonne della Kanban Board per risolvere l’errore. Ad esempio potremmo voler tracciare il fatto che sia i Bug che i PBI hanno una fase di Valutazione, che concettualmente appartiene alla categoria “In Progress” perché implica che alcune risorse sono al lavoro su di essi. In questo caso è stata aggiunta la colonna “Evaluating” che cataloga i bug in Triage ed i PBI in fase di Analisi.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_12.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Modificare-gli-stati-di-un-Work-Item_A536/image_thumb_5.png" width="555" height="554" /></a></p> <p>In questo caso la colonna di Evaluating ha un significato differente per Bug e PBI, nel primo caso si sta facendo Triage, mentre nel secondo caso si sta analizzando il PBI, magari producendo gli Storyboard.</p> <p>Anche in questo caso, sebbene con le dovute limitazioni, è possibile con pochi click adattare il Processo di VSTS al proprio modo di lavorare e non viceversa.</p> <p>Gian Maria</p><img src="http://blogs.ugidotnet.org/rgm/aggbug/102271.aspx" width="1" height="1" /> Gian Maria Ricci http://blogs.ugidotnet.org/rgm/archive/2016/11/12/modificare-gli-stati-di-un-work-item.aspx Sat, 12 Nov 2016 13:19:32 GMT http://blogs.ugidotnet.org/rgm/archive/2016/11/12/modificare-gli-stati-di-un-work-item.aspx#feedback http://blogs.ugidotnet.org/rgm/comments/commentRss/102271.aspx http://blogs.ugidotnet.org/rgm/services/trackbacks/102271.aspx GetLatestVersion &egrave; lieta di annunciarvi AMA = Ask Me Anything. http://blogs.ugidotnet.org/rgm/archive/2016/11/04/getlatestversion-egrave-lieta-di-annunciarvi-ama-ask-me-anything.aspx <p> </p> <p>Dopo il successo di DevOpsHeroes vi invitiamo ad una sessione AMA con lo staff di GetLatestVersion.it.</p> <p>Una AMA (Ask Me Anything) e' una sessione aperta di un'ora dove si possono proporre domande su qualunque tema allo staff di GetLatestVersion.it (nel nostro caso relative a DevOps), senza una scaletta od una impostazione predefinita, e le risposte possono essere anche supportate da demo immediate o approfondimenti provenienti da esperienze reali.</p> <p><strong>L’AMA si terrà Venerdi 11 Novembre, dalle 18:30 alle 19:30.</strong></p> <p><a title="https://www318.livemeeting.com/cc/mvp/join?id=P9G329&amp;role=attend&amp;pw=S%24-ZK*H2c" href="https://www318.livemeeting.com/cc/mvp/join?id=P9G329&amp;role=attend&amp;pw=S%24-ZK*H2c">L’evento</a> sarà hostato tramite Live Meeting, raggiungibile a questo indirizzo: <a href="https://www.livemeeting.com/cc/mvp/join?id=P9G329&amp;role=attend&amp;pw=S%24-ZK*H2c">https://www.livemeeting.com/cc/mvp/join?id=P9G329&amp;role=attend&amp;pw=S%24-ZK*H2c</a></p> <p>Vi aspettiamo.</p> <p>Gian Maria e lo staff di GetLatestVersion. </p> <p>Edit: Ho corretto l’orario, ho erroneamente messo le date in GMT, per cui l’orario ufficiale è dalle 18:30 alle 19:30 </p><img src="http://blogs.ugidotnet.org/rgm/aggbug/102262.aspx" width="1" height="1" /> Gian Maria Ricci http://blogs.ugidotnet.org/rgm/archive/2016/11/04/getlatestversion-egrave-lieta-di-annunciarvi-ama-ask-me-anything.aspx Fri, 04 Nov 2016 17:19:19 GMT http://blogs.ugidotnet.org/rgm/archive/2016/11/04/getlatestversion-egrave-lieta-di-annunciarvi-ama-ask-me-anything.aspx#feedback http://blogs.ugidotnet.org/rgm/comments/commentRss/102262.aspx http://blogs.ugidotnet.org/rgm/services/trackbacks/102262.aspx Personalizzare il process template in VSTS - Creare un campo Custom http://blogs.ugidotnet.org/rgm/archive/2016/10/28/personalizzare-il-process-template-in-vsts-creare-un-campo.aspx <p>Precedenti post sulla personalizzazione Work Item in TFS</p> <p>1 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/03/tfs-e-customizzazione-del-process-template.aspx">Tfs e customizzazione del process template</a> <br /><a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/17/customizzare-il-process-template-le-basi.aspx">2 – Customizzare il Process Template, le basi</a> <br /><a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/26/customizzare-il-process-template-aggiungere-un-campo-ad-un-work.aspx">3 – Customizzare il process Template, aggiungere un campo ad un Work Item</a> <br />4 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/02/03/customizzare-il-process-template-regole-per-i-campi-aggiuntivi-dei.aspx">Customizzare il process template, regole per i campi aggiuntivi dei WI</a> <br />5 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/02/18/personalizzare-i-work-item-di-tfs-ancora-qualche-regola-interessante.aspx">Personalizzare i Work Item di TFS, ancora qualche regola interessante</a> <br />6 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/03/22/stati-e-transizioni.aspx">Stati e transizioni</a> <br />7 – <a href="http://blogs.ugidotnet.org/rgm/archive/0001/01/01/approfondiamo-stati-e-transizioni.aspx">Approfondiamo stati e transizioni</a></p> <p>Post su personalizzazione VSTS</p> <p>1 - <a href="http://www.getlatestversion.it/2016/09/24/personalizzare-il-process-template-in-vsts/">Personalizzare il process template in VSTS</a> <br /><a href="http://www.getlatestversion.it/2016/09/24/process-template-ereditati-in-vsts/">2 - Process template Ereditati in VSTS</a> <br /><a href="http://www.getlatestversion.it/2016/10/08/aggiungere-ad-un-work-item-un-campo-esistente-in-un-altro-template/">3 – Aggiungere ad un Work Item un campo esistente in un altro template</a></p> <p>Nel precedente articolo è stata descritta la procedura per aggiungere ad un Work Item Type un campo già esistente in VSTS. In questo post vedremo invece <strong>come aggiungere un campo completamente nuovo, che non è quindi pre-esistente in VSTS.</strong> La procedura seguita è molto simile alla precedente, è sufficiente infatti andare nel layout del tipo di Work Item che si vuole modificare ed aggiungere un nuovo Field nella posizione desiderata. </p> <p>A questo punto invece di usare un campo esistente è sufficiente scegliere di <strong>creare un nuovo tipo di campo</strong> scegliendo come primo passo la tipologia di dato che si vuole utilizzare.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_2.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb.png" width="651" height="738" /></a></p> <p>Come si può oservare, è possibile scegliere tra vari tipi di dato: si parte dai tipi testuali (singola linea e multipla) poi vi sono i classici tipi Data, boolean, numerici ed anche la possibilità di utilizzare Picklist. <strong>A differenza della personalizzazione effettuabile on-premise, non è possibile utilizzare tutto il set di regole di TFS (ad esempio ALLOWEDVALUES),</strong> ma si è limitati da ciò che l’interfaccia utente offre. La flessibilità è comunque sufficiente per la maggior parte delle personalizzazioni più comuni e le limitazioni, come già detto in precedenza, garantiscono che la personalizzazione rimanga nei “binari” predeterminati, cosi da non avere problemi al momento di eventuali aggiornamenti.</p> <p>Supponiamo ad esempio di volere inserire un campo booleano nel bug per indicare se il bug è stato segnalato direttamente dal cliente oppure se è stato trovato da un team di test interno. In questo caso è sufficiente specificare il nome del campo, una descrizione e specificare boolean come tipo.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_4.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb_1.png" width="646" height="744" /></a></p> <p><strong>Una volta aggiunto il nuovo campo, quest’ultimo è subito visibile editando o creando un nuovo bug e si può immediatamente utilizzarlo.</strong> </p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_6.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb_2.png" width="436" height="349" /></a></p> <p><strong>L’interfaccia utente viene generata dinamicamente sulla base del tipo di campo in modo da aiutare l’utente nella compilazione.</strong> Se ad esempio il campo è di tipo booleano come nel nostro esempio, viene utilizzata una checkbox, se si utilizza un campo text il controllo sarà una normale textbox e cosi via.</p> <p><strong>Grazie alle PickList è supportata la scelta multipla</strong>, si può ad esempio aggiungere un campo Reproducibility che indica la riproducibilità del bug.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_8.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb_3.png" width="646" height="620" /></a></p> <p>In questo caso nel tab Options è possibile specificare se il campo è o meno obbligatorio, e si può specificare anche il valore iniziale di default se necessario.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_10.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb_4.png" width="655" height="296" /></a></p> <p>Nell’interfaccia utente il nuovo campo verrà rappresentato con una ComboBox con all’interno i campi specificati nel template. Questo tipo di campo è spesso il più richiesto come personalizzazione, perché è uso comune nei vari team di andare a dettagliare i Work Item con delle informazioni specifiche del proprio processo. Sebbene l’uso dei Tag possa in molti casi sopperire a molte delle richieste, <strong>avere la possibilità di inserire campi specifici a scelta multipla è una funzionalità tra le più utili</strong>.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_12.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb_5.png" width="417" height="212" /></a></p> <p>Purtroppo a differenza delle personalizzazioni che possono essere effettuate on-premise <strong>non esiste un concetto analogo alla GLOBAL LIST</strong> e quindi se abbiamo più tipologie di campi è necessario mantenere tutte le varie picking list manualmente. </p> <p>In caso di rimozione di uno dei valori della picking list, i Work Items che hanno impostato il valore rimosso sono ancora validi, ma la prima volta che verranno editati verrà forzato il cambiamento ad uno dei valori ammessi. Ad esempio togliendo il valore Sometimes ed aggiungendo il valore Unknown, se apriamo un Work Item che ha il valore Sometimes impostato per il campo, quest’ultimo verrà marcato in giallo, perché fallisce la validazione ed è necessario quindi cambiarlo. </p> <p><strong>Non esiste per ora la possibilità (come invece esiste per la versione on-premise) di permettere il mantenimento del valore anche se non più presente nella lista dei valori ammessi.</strong></p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_14.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb_6.png" width="403" height="195" /></a></p> <p><strong>Il nuovo campo può in ogni momento essere cancellato dalla definizione</strong>, questo non cancella fisicamente i dati dal Database, ma semplicemente impedisce di visualizzarne il valore nell’interfaccia utente. Questo è infatti il messaggio di warning che viene dato quando si rimuove un campo custom dall’interfaccia utente.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_16.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb_7.png" width="500" height="259" /></a></p> <p>La riprova che i dati siano ancora effettivamente nel database si ha accedendo al Work Item tramite le API. Se infatti si rimuove il campo Reproducibility dal tipo Bug e poi si recupera un work item di tipo Bug con le REST API si può notare che il valore del campo è ancora li.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_18.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb_8.png" width="582" height="425" /></a></p> <p>Naturalmente è possibile volere rimuovere completamente il nuovo campo, cancellando anche tutti i dati in tutti i work item in cui il campo era stato valorizzato. Per fare questo è necessario prima rimuoverlo precedentemente da tutti i layout di interfaccia e successivamente disassociarlo anche dai Work Item che lo hanno collegato.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/SNAGHTML246c2a5.png"><img title="SNAGHTML246c2a5" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="SNAGHTML246c2a5" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/SNAGHTML246c2a5_thumb.png" width="579" height="485" /></a></p> <p>Come si può vedere dalla figura precedente è necessario selezionare il tab dei tipi di Work Item, selezionare la visualizzazione dei Field ed infine localizzare il campo che si vuole rimuovere e scegliere la voce di menù “Remove” dal menù contestuale.<strong> Anche in questo caso il sistema avverte che in realtà nessun dato è viene realmente rimosso, e si può aggiungere nuovamente lo stesso campo e ritrovare cosi tutti i dati </strong>in tutti i Work Item che avevano popolato quel campo. Sempre con le REST API potete verificare che il valore del campo è ancora presente in tutti i Work Item preesistenti anche dopo averlo rimosso dal tipo.</p> <p>Una volta che il campo non è più referenziato da nessun tipo di Work Item è possibile andare nel tab di gestione globale dei campi, selezionare il campo custom e distruggerlo definitivamente.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_20.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb_9.png" width="573" height="297" /></a></p> <p>Come si può vedere dalla figura precedente, il campo Reproducibility non ha l’icona a sinistra che indica un campo ereditato dal template padre, per cui <strong>può essere rimosso definitivamente con il comando Destroy.</strong></p> <p>Questa volta il sistema avverte che l’operazione non è reversibile e che anche tutti i dati storici verranno cancellati.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_22.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb_10.png" width="497" height="246" /></a></p> <p>Naturalmente tutti i campi custom creati possono essere utilizzati nelle query di TFS senza problema alcuno, ecco ad esempio come definire una query che ci estrae tutti i bug segnalati dal cliente che sono ancora aperti.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_24.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Personalizzare-il-process-template-in-VS_B643/image_thumb_11.png" width="681" height="320" /></a></p> <p>I campi custom possono anche essere utilizzati nella definizione degli alert, si può ad esempio volere un alert ogni volta che un nuovo bug segnalato dal cliente è stato inserito nel sistema.</p> <p>Da questo semplice articolo si può apprezzare <strong>come aggiungere un campo ad un tipo di Work Item sia una operazione decisamente semplice e sicuramente molto più alla portata di tutti rispetto all’editing del process template standard</strong>. </p> <p>Nel prossimo articolo verrà esaminato invece come creare un nuovo tipo di Work Item.</p> <p>Gian Maria.</p><img src="http://blogs.ugidotnet.org/rgm/aggbug/102224.aspx" width="1" height="1" /> Gian Maria Ricci http://blogs.ugidotnet.org/rgm/archive/2016/10/28/personalizzare-il-process-template-in-vsts-creare-un-campo.aspx Fri, 28 Oct 2016 20:46:07 GMT http://blogs.ugidotnet.org/rgm/archive/2016/10/28/personalizzare-il-process-template-in-vsts-creare-un-campo.aspx#feedback http://blogs.ugidotnet.org/rgm/comments/commentRss/102224.aspx http://blogs.ugidotnet.org/rgm/services/trackbacks/102224.aspx Update 12 ottobre di VSTS http://blogs.ugidotnet.org/rgm/archive/2016/10/16/update-12-ottobre-di-vsts.aspx <p>Come sempre, con cadenza regolare è arrivato il nuovo rilascio di VSTS. La cosa interessante è che in questo caso abbiamo un <a href="https://blogs.msdn.microsoft.com/bharry/2016/10/13/vs-team-services-update-oct-12/">blog post di Brian Harry</a> che <strong>ci spiega esattamente come viene effettuato l’aggiornamento di un sistema cosi complesso come VSTS</strong>.</p> <p>Questo post è chiaramente molto interessante in ottica DevOps, perché ci mostra i piccoli trucchi che si utilizzano quando si tiene un sistema con decine di migliaia di utenti aggiornato ogni 3 settimane. <strong>La prima tecnica è sezionare il sistema,</strong> nel caso di VSTS questo sezionamento si chiama Ring. Questo significa che a Ring0 l’istanza è usata internamente da Microsoft ed espressamente anche dal team di VSTS. Questo significa che dopo avere aggiornato l’istanza di Ring0 si attende 24 ore per capire se il nuovo deploy è andato ad intaccare qualche funzionalità fondamentale. In questo modo si può limitare l’impatto che un deploy ha ad un numero minore di utenti, e quindi evitare che un bug che sfugge al controllo impatti immediatamente tutta la mole di utenti.</p> <p>Le release notes vengono pubblicate quando il primo Ring pubblico Ring1 viene aggiornato, ma recentemente questa politica è cambiata, per cui ora le release notes sono pubblicate immediatamente, questo fa si che voi possiate capire quali nuove feature sono state deployate, anche se nel vostro account non sono disponibili.</p> <p>Per quanto riguarda le novità di questo rilascio, è stato introdotto in git il <strong>cherry-pick and revert</strong>, direttamente dalla web ui, che consente quindi da una pull request di prendere un singolo commit e poterlo riportare nelle altre branch (utile per le hotfix). Debbo dire che non sono un grande fanatico di questa funzionalità, sono il tipo che preferisce che i cherry-pick siano fatti da riga di comando e fatti solamente quando serve veramente.</p> <p>Altre modifiche riguardano la possibilità di cercare tra i file di codice nel tab Code, ed una migliore visualizzazione dei commit di Git nell’interfaccia WEb.</p> <p>Molte altre motifiche e fix sono state fatte in molti task della build, e per il Web Test Runner è stata introdotta la possibilità di Aggiornare bug esistenti, <strong>funzionalità che esisteva nel runner di MTM ma che era ancora assente in quello web</strong>.</p> <p>Per il resto potete leggere <a href="https://www.visualstudio.com/en-us/articles/news/2016/oct-12-team-services">tutte le novità nel post ufficiale.</a></p> <p>Happy VSTS.</p><img src="http://blogs.ugidotnet.org/rgm/aggbug/102245.aspx" width="1" height="1" /> Gian Maria Ricci http://blogs.ugidotnet.org/rgm/archive/2016/10/16/update-12-ottobre-di-vsts.aspx Sun, 16 Oct 2016 10:28:54 GMT http://blogs.ugidotnet.org/rgm/archive/2016/10/16/update-12-ottobre-di-vsts.aspx#feedback http://blogs.ugidotnet.org/rgm/comments/commentRss/102245.aspx http://blogs.ugidotnet.org/rgm/services/trackbacks/102245.aspx Aggiungere ad un Work Item un campo esistente in un altro Template http://blogs.ugidotnet.org/rgm/archive/2016/10/08/aggiungere-un-campo-ad-un-work-item.aspx <p>Precedenti post sulla personalizzazione Work Item in TFS</p> <p>1 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/03/tfs-e-customizzazione-del-process-template.aspx">Tfs e customizzazione del process template</a> <br /><a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/17/customizzare-il-process-template-le-basi.aspx">2 – Customizzare il Process Template, le basi</a> <br /><a href="http://blogs.ugidotnet.org/rgm/archive/2011/01/26/customizzare-il-process-template-aggiungere-un-campo-ad-un-work.aspx">3 – Customizzare il process Template, aggiungere un campo ad un Work Item</a> <br />4 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/02/03/customizzare-il-process-template-regole-per-i-campi-aggiuntivi-dei.aspx">Customizzare il process template, regole per i campi aggiuntivi dei WI</a> <br />5 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/02/18/personalizzare-i-work-item-di-tfs-ancora-qualche-regola-interessante.aspx">Personalizzare i Work Item di TFS, ancora qualche regola interessante</a> <br />6 – <a href="http://blogs.ugidotnet.org/rgm/archive/2011/03/22/stati-e-transizioni.aspx">Stati e transizioni</a> <br />7 – <a href="http://blogs.ugidotnet.org/rgm/archive/0001/01/01/approfondiamo-stati-e-transizioni.aspx">Approfondiamo stati e transizioni</a></p> <p>Post su personalizzazione VSTS</p> <p>1- <a href="http://www.getlatestversion.it/2016/09/24/personalizzare-il-process-template-in-vsts/">Personalizzare il process template in VSTS</a> <br /><a href="http://www.getlatestversion.it/2016/09/24/process-template-ereditati-in-vsts/">2- Process template Ereditati in VSTS</a></p> <p>Come abbiamo visto nel precedente articolo, i processi ereditati in VSTS permettono l’editing di un process template direttamente dalla UI web di VSTS, semplificando di molto le operazioni di personalizzazione. In questo articolo esamineremo il tipo di personalizzazoine sicuramente più frequente e richiesto: <strong>l’aggiunta di un campo personalizzato ad un Work Item</strong>. Come prerequisito è necessario creare un template ereditato, come mostrato nell’articolo precedente.</p> <p>In questo specifico articolo mi soffermerò sulla possibilità di<strong> aggiungere ad un Process Template un campo presente in un altro Template</strong>. Come prima cosa<strong> è necessario aprire nella sezione di amministrazione dei Process Template</strong>, scegliere il processo ereditato che si vuole modificare e, prima di aggiungere il proprio campo, <strong>verificare tra tutti i campi disponibili se esso è già presente onde evitare di aggiungere campi duplicati</strong>.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_2.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_thumb.png" width="528" height="485" /></a></p> <p> </p> <p>Bisogna fare attenzione ai campi che sono presenti in altri processi, <strong>supponiamo ad esempio di volere aggiungere in un processo ereditato da Scrum i campi original estimate e completed work al work item di tipo Task</strong>. Chi ha già eseguito questa personalizzazione on-premises sa benissimo che non è necessario creare da zero questi campi, ma si possono usare gli stessi utilizzati dal processo Agile. </p> <p>Purtroppo, se si apre la lista di tutti i Fields del Process Template questi campi non sono visibili, perché parte di un altro processo, e quindi purtroppo la lista di field è utile solamente per capire i field che sono realmente utilizzati da questo processo. Fortunatamente in questo specifico scenario la UI ci viene in aiuto, perchè è in grado di referenziare field di altri process template.</p> <p>In questo caso <strong>sappiamo infatti che il campo Original Estimate è presente nel processo Agile</strong>, per cui, sebbene non sia listato dal nostro Process Template ereditato da SCRUM, è comunque disponibile per essere utilizzato. Come prima cosa è si deve selezionare i Work Item Types (1), selezionare poi il tipo di Work Item da editare (2) ed editarne il Layout. Come si vede nella figura seguente da quì è possibile andare ad aggiungere un field.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/SNAGHTML296c9d.png"><img title="SNAGHTML296c9d" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="SNAGHTML296c9d" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/SNAGHTML296c9d_thumb.png" width="962" height="530" /></a></p> <p>Nella dialog che appare, si ha ora la possibilità di scegliere un campo esistente, e da qui è possibile cercare e selezionare campi di altri processi. </p> <blockquote> <p>Come regola generale<strong> è sempre consigliabile verificare, prima di inserire un campo custom, se il campo che si vuole inserire è già presente in altri processi</strong>. </p> </blockquote> <p>Nella figura seguente si è scelto di aggiungere nella UI il campo Original Estimate già esistente nel sistema (nel processo Agile).</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_4.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_thumb_1.png" width="651" height="454" /></a></p> <p><strong>Scegliendo un campo esistente non vi è la possibilità di modificare la tipologia del campo stesso, ma si può comunque personalizzare il suo uso nel tipo di work item scelto</strong>, ad esempio si può dare un valore iniziale e si può scegliere se il campo è obbligatorio o meno.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_6.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_thumb_2.png" width="649" height="296" /></a></p> <p>Infine nel tab Layout è possibile stabilire la posizione del campo nella UI del Work Item. Anche in questo caso tutta la personalizzazione viene effettuata direttamente dall’interfaccia web senza la necessità di dover effettuare editing di file XML.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_8.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_thumb_3.png" width="647" height="461" /></a></p> <p>Una volta salvato il layout è sufficiente verificare su un Team Project che usa questo template che editando o creando un Work Item di tipo Task sia possibile andare a valorizzare i nuovi field.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_10.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_thumb_4.png" width="827" height="330" /></a></p> <p>Una volta che il campo è stato aggiunto, può essere spostato in differenti parti della UI, o addirittura cancellato.<strong> La cancellazione di un Work Item da un tipo non fa nulla di più che togliere il campo dalla UI, lasciando invariati i dati che sono già stati popolati</strong>. Andando ad aggiungere nuovamente in un secondo momento lo stesso campo nella UI, tutti i dati precedentemente inseriti saranno nuovamente visibili all’utente finale.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_12.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Aggiungere-un-campo-ad-un-Work-Item_8EB4/image_thumb_5.png" width="498" height="260" /></a></p> <blockquote> <p><font style="background-color: #ffffff">L’esperienza di personalizzazione è ora molto più piacevole, perché si viene guidati da una interfaccia grafica che evita di fare errori e rende più intuitivo tutto il processo.</font></p> </blockquote> <p>Gian Maria.</p><img src="http://blogs.ugidotnet.org/rgm/aggbug/102223.aspx" width="1" height="1" /> Gian Maria Ricci http://blogs.ugidotnet.org/rgm/archive/2016/10/08/aggiungere-un-campo-ad-un-work-item.aspx Sat, 08 Oct 2016 16:19:10 GMT http://blogs.ugidotnet.org/rgm/archive/2016/10/08/aggiungere-un-campo-ad-un-work-item.aspx#feedback http://blogs.ugidotnet.org/rgm/comments/commentRss/102223.aspx http://blogs.ugidotnet.org/rgm/services/trackbacks/102223.aspx