Michael Juřek Software Architect Microsoft s.r.o. Visual Studio Team System: Práce v týmech s pomocí Team Foundation Serveru Michael Juřek Software Architect Microsoft s.r.o.
Visual Studio Team System Financial Analyst Meeting 2004 4/12/2017 Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Visual Studio Team Edition Software Architects Visual Studio Team Edition Software Developers Visual Studio Team Edition Software Testers Visual Studio Team Edition Database Professionals Application Designer Dynamic Code Analyzer Load Testing Offline Database Project System Designer Static Code Analyzer Manual Testing DB Rename Refactoring Logical Datacenter Designer Code Profiler Test Case Management Data Generator Deployment Designer Unit Testing (C#, VB.NET) Unit Testing (T-SQL) Code Coverage Schema Compare Data Compare Class Designer (in Visual Studio Standard Edition and higher) Announcing Of course, a big part of MSS is the integrated tools We’ve designed our tools from the ground up to… Reduce the complexity of delivering modern solutions by constructing intuitive user interfaces and baking the process guidance directly into the product Facilitate communication and collaboration among members of a software delivery team through deep integration of features Enable a vibrant partner ecosystem through a set of Web service-based APIs for ISVs and businesses to plug into We don’t have Test Case Management --- that is up-sell item to Test SKU We have to be careful about showing DB Reverse Engineer as a functionality – I would read that as we have modeling Visio for Enterprise Architects (in MSDN Premium Subscription) Team Explorer (includes Team Foundation Server CAL) Visual Studio Professional Edition Team Foundation Server Visual Studio Team Foundation Server Change Management Reporting Integration Services Team Build Work Item Tracking Project Portal Project Management 3 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Architektura produktu Řízení projektu (work items) Správa změn (kódu) Automatizovaný build Projektový portál Reportování
Financial Analyst Meeting 2004 4/12/2017 Architektura zdálky Team Foundation Client Tier Version Control Proxy Build Machine Report Client Team Foundation App Tier App Tier Standby Server Team Foundation Data Tier Database Mirror © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Financial Analyst Meeting 2004 4/12/2017 Architektura zblízka Team Foundation Client Tier Version Control Proxy Build Machine MS Excel Plug-In MS Project Visual Studio Packages Internet Explorer Version Control Proxy Service Build Process WSS Proxies SQL RS Team Foundation Object Model VSTF Klienti Jiné produkty Report Client Custom reporting tools MS Excel Team Foundation App Tier SQL Reporting Services Windows SharePoint Work Item Tracking Service Version Control Team Build Core Services Warehouse Adapters Team Foundation App Tier Team Foundation Data Tier Core Data Version Control Work Items Team Build Data © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Financial Analyst Meeting 2004 4/12/2017 Datový sklad SQL Server Reporting Services Excel Reporting Warehouse Object Model Custom Reporting Test/Build Adapter Work Item Adapter Source Code Adapter Add-on Adapter Partner Tool A Build Database Work Item Tracking Source Code Control © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Identifikace komponent infrastruktury TFS Autorizace pomocí rolí
Agenda Architektura produktu Řízení projektu (work items) Správa změn (kódu) Automatizovaný build Projektový portál Reportování
Co se všemi seznamy, které musím udržovat? Financial Analyst Meeting 2004 4/12/2017 Co se všemi seznamy, které musím udržovat? Chyby Úkoly Rizika a problémy Změny Požadavky zákazníka ? We’ve talked about tasks and process guideance, but what about all the other lists that project managers have to keep track of. What tools do they usually use to do this today? MS Excel. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Seznamy - architektura Jednotlivé seznamy jsou uloženy v relační databázi SQL Server 2005 Přístupné klientům jako webová služba v aplikační vrstvě Autorizace pomocí skupin a oprávnění Možní klienti: Visual Studio Team edice Project 2003 add-in Excel 2003 add-in Vlastní klient web služby (SOAP) Obsah je importován do datového skladu pro účely reportů a zobrazení na portále
Nástroje – manager projektu Financial Analyst Meeting 2004 4/12/2017 Nástroje – manager projektu Reporty (např. na portále) Pouze k prohlížení Parametrizované dotazy Project 2003 add-in Silné stránky Projectu – plánování, správa zdrojů, závislosti, kritické cesty projektu, ... Obousměrná synchronizace s TFS Navigace do dokumentace a reportů Excel 2003 add-in Silné stránky Excelu - kalkulace, grafy, sumarizace, kontingenční tabulky, formátování, tisk, ... © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Integrace do Visual Studia Financial Analyst Meeting 2004 4/12/2017 Integrace do Visual Studia Práce se seznamy integrována do prostředí Visual Studia Okna, menu, kontextové nabídky, ... Vazba změn v kódu na položku ze seznamu (chyba, úloha, ...) Možnost vynucení povinné vazby pomocí check-in politiky Integrace s testováním: Možnost přiřazení testu chybě nebo úloze Found In/Fixed In integrace pro chyby vázané na testy selhávající během automatických buildů Focus methodology point on benefit of consistency and no need to reinvent the wheel. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Financial Analyst Meeting 2004 4/12/2017 Úpravy typů v šabloně Každý typ se skládá z: Polí Přidání vlastních, modifikace existujících apod. Formuláře Typ a umístění ovládacích prvků ve VS Přidání, přemístění, změna typu/vizuálu, ... Workflow (stavy a možné přechody mezi nimi) Přidání vlastních stavů, pravidel pro přechody, definování skupiny oprávněné k provedení přechodu Události na straně serveru při změně Every organization functions differently. Tracks different information in their bug reports and manage bug lifecycle differently. Important that work items are customizable since we’re not going to be able to define “the bug report” and everyone just uses “the bug report.” Work items consist of four components – fields, what the form looks like, define rules and states. Some fields are required, but most are completely user-definable. Rules –allow you to put constraints. “if you resolve a bug, must enter issue/problem fixed so you can do traceability to do root cause analysis.” Can have dependent rules based on another field’s value. If field A is X, then field B has these 3 choices, etc. State diagram – lifecycle of bug. We have Active, Ready for Checkin, Resolved, Closed. Lots of customization points, might be overwhelming. “Do I need to configure ALL of that?” Answer is No. We ship two processes in the box. Process defines all of these things for you. Work items, reports, etc. You can start with one of these and customize it to meet your needs. Use as a baseline and allows us to provide some guidance as to what we’ve found are best practices. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Řešení konfliktů při aktualizaci Na úrovni jednotlivých polí
Definice seznamu v šabloně procesu Integrace do prostředí Visual Studia Vytváření a spouštění vlastních dotazů Vytvoření nové chyby Práce v Project 2003 Vyřešení konfliktu
Agenda Architektura produktu Řízení projektu (work items) Správa změn (kódu) Automatizovaný build Projektový portál Reportování
Financial Analyst Meeting 2004 4/12/2017 Visual SourceSafe Nejjednodušší a celosvětově nejvíce používaný nástroj pro správu vzorového kódu Vhodný pouze pro malé týmy: Nepoužívá databázi, ale souborový systém Vzdálená práce vyžadovala VPN – vyřešeno až HTTP tunelováním ve verzi 2005 Vlastní systém účtu bez integrace s doménou Stále jej lze použít s VS 2005 Professional V TFS je nahrazen novou správou změn Get of latest database version is performed on operations like Checkout, UndoCheckout, and Checkin. This default behavior will change in VSS 2005. By default, VSS 8 will checkout the local version (whenever possible to determine what the local version is), similar to SourceDepot’s behavior. Note that using COLV (check out local version) increases your chances of having to merge the files during checkin. Users who like the old behavior will be able to change this via Tools/Options. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Správa změn - architektura Financial Analyst Meeting 2004 4/12/2017 Správa změn - architektura Moderní 3-vrstvá architektura Standardní rozhraní webových služeb HTTP/SOAP - snadný průchod přes firewall Optimalizováno pro pomalé linky SQL 2005 jako úložiště Transakčnost a robustnost Diferenciální komprese souborů (úspora diskového prostoru) Používá účty Windows Méně pracná správa Cachování v aplikační vrstvě a/nebo na počítači s funkcí Version Control Proxy Využívá neměnnosti konkrétní verze souboru Výrazné zvýšení propustnosti na pomalých linkách © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Způsob uložení verzí Komprese + uložení změn ≈ 70% úspora místa! SQL Server foo.bmp bar.vb Commit 9 11 Upload Handler 12 15 “Deltafier” 17 17 GET foo.bmp;12 Download Handler 9 11 15 12 Souborová cache (App Server) Komprese + uložení změn ≈ 70% úspora místa!
Správa změn - schopnosti Důležité inovativní vlastnosti Atomický check-in (changeset) Integrovaný check-in Paralelní vývoj Psaní do šuplíku (shelving) Migrace z: Visual Source Safe ClearCase Source Depot (v MS interně užívaný nástroj)
Financial Analyst Meeting 2004 4/12/2017 Changeset „Transakce“ ve stromu zdrojového kódu Proti úložišti je uplatněna nedělitelně „Všechno nebo nic“ Množinu souborů, které tvoří transakci, určuje vývojář: Výchozí stav = všechny lokálně změněné Pohodlná správa změn Obsahuje metadata (komentáře apod.) Může mít vazbu na položky ze seznamů (work items) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Integrovaný check-in Vizuální podpora pro přidání (případně vynucení) následujících ingrediencí ke každému changesetu Položky Work Items Komentář Check-in Notes (definovaná metadata) Kdo provedl revizi apod. Politiky: Provedení skupiny unit testů Provedení analýzy kódu Povinná asociace s Work Items položkou Možnost vytvoření vlastní politiky (rozšiřitelnost)
Integrovaný check-in 3 2 1 4 Položky Work Items Check-in Aktualizace Workspace Check-in Kontrola politik 1 Policy Engine Unit Testing WI Association Static Analysis Custom Policy Vazba Provedení změn 2 Aktualizace Work Items 3 Change Set 727012 Change Set 727012 Change Set 727012 Change Set 727012 Change Set 727011 V2 Change Set 727012 V1 V3 V5 V4 V5 Událost na straně serveru, kterou lze zachytit Notifikace e-mailem 4 Správa verzí Integrační infrastruktura
Financial Analyst Meeting 2004 4/12/2017 Paralelní vývoj Současný vývoj více verzí softwaru, např.: Úpravy stávající verze a zároveň vývoj nové verze Vývoj hotfixu na stávající verzi Branching Vytvoření logického klonu větve stromu kódu Nezměněné soubory existují v úložišti pouze jednou Merging Sloučení změn provedených od okamžiku oddělení větví Přidání, smazání, přejmenování, modifikace apod. Je možné provést kompletní sloučení anebo pouze sloučit změny z vybraného changesetu This slide provides a definition of parallel development Parallel development, which is the process of coding, testing, and building multiple releases of a software application component concurrently, liberates individuals from the constraints of serial development, where one developer completes one task before the next can begin another. Parallel development allows multiple individuals to work in isolation, safely developing the same or different parts and versions of a component at the same time as other developers. To realize the benefits of parallel development, teams must implement processes and use tools that enable project contributors to expeditiously, incrementally, and sometimes automatically resolve small conflicts before they grow into big ones. Visual Studio Team Foundation enables parallel development by allowing developers to work in isolation (as if on a one-person project) and integrate on demand, smoothly merging the pending changes in a developer's private workspace with the repository version during Get and Check in operations. When conflicting modifications occur, a developer can merge changes between two branches using a robust, built-in merge engine. Optionally, you can plug in a third-party merge utility. If you want to temporarily preclude changes to an important project, you can lock items in the repository. Enterprise source code control provides an archiving command called Shelve that makes it easy to create and switch over to a personal copy, or branch of a project to develop a hot fix for a product release or to simply experiment with an alternative development method on a scratch copy of your changeset. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Psaní do šuplíku (shelving) Financial Analyst Meeting 2004 4/12/2017 Psaní do šuplíku (shelving) Pojmenované uložení změn na server Formálně nejde o check-in Volitelně je možné se vrátit k původním verzím Soubory lze ze „šuplíku“ vyjmout a případně sloučit s existujícími změnami Některé scénáře: Nutnost přerušení práce Uložení aktuálního stavu („checkpoint“) Přesun nedokončené práce na jiného člena týmu Revize kódu jiným členem týmu před provedením check-inu Shelving – taking all changes on my machine and setting them aside. Working on a feature for several days. Got a couple more days ago. Manager comes in and says, you need to fix this now. What do I do? I can’t check in. I could create a branch. Or I can simply create a shelf. Another example…I want to work on my laptop. I can simply take all my work from my dev machine and put it on a shelf and then unshelf it on to my laptop. I’ll get all my edits, renames, deletions, etc locally on to my laptop. Share work in progress. Discover that I need a fix. Could have my buddy come over and insert the fix into my files. Or checkin with a bunch of if-def statements. Or I can simply put my code on a shelf, have my buddy unshelf my work, integrate his changes, test it out, and put my files back on the shelf. These scenarios are very difficult to do today. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Správa změn - integrace Financial Analyst Meeting 2004 4/12/2017 Správa změn - integrace Visual Studio 2005 Solution Explorer, Source Control Explorer, Pending Changes Team Foundation Server Vazba mezi změnou a položkou Work Item během check-in procesu (možné vynucení) Správa z příkazové řádky MSSCCI klient Visual Studio.NET 2002/2003, VB6, VC++6, ... Unix, Linux, Eclipse, ... – produkty třetích stran © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Integrovaný check-in Source Control Explorer Psaní do šuplíku (shelving) Zobrazení a sloučení změn
Agenda Architektura produktu Řízení projektu (work items) Správa změn (kódu) Automatizovaný build Projektový portál Reportování
Financial Analyst Meeting 2004 4/12/2017 K čemu je denní build ”Denní build je srdce projektu. Pokud srdce netepe, projekt má velký problém.“ Měl by být plně automatický Neexistuje omluva, pokud chybí – čím složitější projekt, tím více ho potřebuje Stav projektu je daleko více transparentní: Omezení možnosti nepříjemných překvapení V každou chvíli je k dispozici produkt s nějakou funkčností Projekt je pomocí buildu průběžně měřen © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Financial Analyst Meeting 2004 4/12/2017 Klíčové vlastnosti I. Používá MSBuild engine z .NET Frameworku 2.0 Build probíhá stejně ve Visual Studiu, v Team Foundation Serveru i příkazové řádce Více možných typů a konfigurací buildu Spuštění na vyžádání anebo periodickou úlohou OS Přerušený build pokračuje za posledním dokončeným krokem Speciální úlohy v krabici TFS (code churn výpočet aj.) The builds do not execute on TFS, instead, a Build Machine is setup that listens on the network for the build process to be run. Users can subscribe to build events such as build complete, build started, build updated. User’s will then receive an email on these events. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Financial Analyst Meeting 2004 4/12/2017 Klíčové vlastnosti II. Poskytuje klíčové metriky pro průběh projektu: Výsledky testů a jejich pokrytí kódu (code coverage) Statická analýza kódu Změny v kódu (code churn) Udržování vazeb na changesety a položky Work Items Uložení v SQL databázi umožňuje sledování historie a trendů Rozšiřitelnost Možnost vytváření vlastních úloh (build task) Možnost definice posloupnosti a parametrů úloh (.targets) The builds do not execute on TFS, instead, a Build Machine is setup that listens on the network for the build process to be run. Users can subscribe to build events such as build complete, build started, build updated. User’s will then receive an email on these events. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Typická posloupnost kroků Iniciace službou TFS Příprava počítače, generování ID buildu Synchr. zdrojových kódů Kompilace, statická analýza Provedení unit testů Aktualizace work items položek Výpočet pokrytí kódu unit testy Výpočet množství změn Generování reportu Opublikování
Financial Analyst Meeting 2004 4/12/2017 TF Client Team Build Client Build Configuration files - MSBuild Scripts Build request and Reports Build Server Build start/stop Team Build Service Build events Source Control Team Build Build sources and scripts MSBuild Scripts and targets Build Drop site Work item Tracking Open and Update bugs Team Build logger Static Analysis & Testing Build and Test data TFS Steps for the above diagram: Notice the line from the TF Client to source control. This is the step where the developer creates the build script. A developer can initiate a build from the Team Build Client. This makes a call to TFS and the “Team Build” process. TFS doesn’t do the build, it makes a call to the build machine (“Build Server”) which receives the message and pulls the build script from source control. A separate piece of code, called the “Team Build logger” is responsible for publishing results to the database, which is later used for reporting. Notice the drop site as well, which is the location that the compiled code gets copied to. Build Events Team Build Store TF Warehouse TFS Data Tier © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Základní operace s buildem: Vytvoření Spuštění Zobrazení výsledku Integrace s ostatními komponentami Unit Testing Work Items (bug) Integrovaný check-in
Agenda Architektura produktu Řízení projektu (work items) Správa změn (kódu) Automatizovaný build Projektový portál Reportování
Financial Analyst Meeting 2004 4/12/2017 Výhody portálu Usnadňuje komunikaci v týmech Specifikace, diskuse, oznámení, ... Verzované knihovny dokumentů Šablony důležitých artefaktů projektu Snadný přístup k reportům Integrovaná metodologie ... (cokoliv si sami doplníte) Vhodné pro managery a jiné netechnické uživatele (nevyžaduje TFS CAL) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Projektový portál - technologie Financial Analyst Meeting 2004 4/12/2017 Projektový portál - technologie Microsoft® Windows® SharePoint® Services (WSS) Site pro každý projekt Možnosti a rozšiřitelnost WSS jsou plně zachovány, např.: Přidávání vlastních web partů Správa dokumentů (schvalování, verzování) Správa seznamů („jednotabulkové databáze“ - oznámení, odkazy, úkoly, kalendář, kontakty, ...) Vlastní knihovny dokumentů, typy seznamů, šablony, InfoPath formuláře, ... © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Projektový portál: Přístup z prohlížeče Možnosti WSS Integrace s Visual Studiem Team edicemi
Agenda Architektura produktu Řízení projektu (work items) Správa změn (kódu) Automatizovaný build Projektový portál Reportování
Financial Analyst Meeting 2004 4/12/2017 Reporty Historické i aktuální sumární informace z podsystémů TFS jsou udržovány v datovém skladu Detailní informace lze získat z operačních databází jednotlivých podsystémů Předdefinované reporty jsou součástí šablony metodologie Možnost modifikace přímo v šabloně anebo pro konkrétní týmový projekt Používá SQL Server Reporting Services Možnosti – definice RDL ve Visual Studiu, export do různých formátů, Report Builder, předplatné reportů, web party pro reporty apod. This slide introduces how VSTS Work Items can be reported on. The key points are that Work Items are stored in a central database can be queried. Hence if the information is stored, it can be reported upon. Should you need to drill down into specific areas, the detailed information can be retrieved from the operational stores. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Financial Analyst Meeting 2004 4/12/2017 Datový sklad SQL Server Reporting Services Excel Reporting Warehouse Object Model Custom Reporting Test/Build Adapter Work Item Adapter Source Code Adapter Add-on Adapter Partner Tool A Build Database Work Item Tracking Source Code Control © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Financial Analyst Meeting 2004 4/12/2017 Integrované reporty * Project Structure Iteration Work Item Label Versioned Latest Version Changeset Build Test Result © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Financial Analyst Meeting 2004 4/12/2017 Příklad reportu Statistics by build number. Code churn, code coverage, and test results. How many of my nightly automated tests passed/failed? Bring data from all sorts of sources and present them in a useful way. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Reportování Identifikace komponent Přístup k reportům Příklady reportů
Závěrem Team Foundation Server povyšuje práci v týmech na novou úroveň: Zvyšuje produktivitu práce v týmu Zvyšuje předvídatelnost vývoje projektu Pilíře produktu: Produktivita Integrace Rozšiřitelnost Inovace Dlouhodobý přístup
Financial Analyst Meeting 2004 4/12/2017 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.