900 likes | 1.1k Views
ALM Live Flytta din källkod till Team Foundation Server. Mathias Olausson Callista Knowledgebase mo@callista.se http://olausson.net/blog. Utlottning av böcker. För er som lämnar in utvärderingen. Om. Mathias Olausson Arkitekt, instruktör Fokus på VSTS sedan ’05
E N D
ALM LiveFlytta din källkod till Team Foundation Server Mathias Olausson Callista Knowledgebase mo@callista.se http://olausson.net/blog
Utlottning av böcker För er som lämnar in utvärderingen
Om... • Mathias Olausson • Arkitekt, instruktör • Fokus på VSTS sedan ’05 • Utbildning, implementation, anpassning • mo@callista.se, http://olausson.net/blog • Callista Knowledgebase • Microsoft Gold Partner • Custom Development Solutions • Database Management Solutions • Advanced Infrastructure • Medlem i VSTS Inner Circle • http://knowledgebase.callista.se
Agenda • Introduktion • Källkodshantering med TFS • Scenarios för migrering • Byggautomatisering
Agenda • Introduktion • Källkodshantering med TFS • Scenarios för migrering • Byggautomatisering
Varför är du här? • Ja, något verktyg måste man ju ha... • SCM; Software Change Management • SCCM; Software Configuration and Change Management • TFS låter bra • ...men är det något för mig? • TFS är bra • ...så hur blir jag av med VSS/SVN/CVS/...?
Användare av SCM • Byter verktyg oftare • Större flexibilitet • Flertal olika verktyg • Mer arbete att integrera • Ökad risk för fel • Fokus på produktleverans • Utvecklingsprocess inte så viktigt • Vikigt med verktyg som passar utvecklare • Ofta open-source eller lågprisprodukter
Användare av SCCM • Integrerade verktyg • Automatisering av arbetsflöden • Standardisering och förbättring av ändringprocess • Ledning, inte individer, väljer verktyg • Långsiktliga val
Krav på SCCM • Hantering av ändringar under utveckling och förvaltning • Anpassningsbart per projekt • Säkerställa utveckling av kvalitativa moduler • Tillhanda tidsbaserad återställning • Stötta distans- och distribuerad utveckling • Tillhandahålla nyckeltal för projekt • Analysfunktioner
Team System är för SCCM • Del av Microsofts ALM erbjudande • Forrester Research – Unified SCCM Solutions, Q2 2007 • Väl positionerat för framtiden • Tung produktstrategi • Fokus på plattformen • Partners gör add-ons
Visual Studio Team System • Rollspecifik funktionalitet • Integrerade verktyg • Samarbetsplattform • Anpassningsbar plattform
Agenda • Introduktion • Källkodshantering med TFS • Scenarios för migrering • Byggautomatisering
Källkodshantering med TFS • Mål med TFS • Funktioner • Parallellutveckling • Anpassning • Klienter • Nyheter i TFS 2008 • Power Tools • Alternativa lösningar
VSTS Application Tier Version Control Service Mål med TFS Visual Studio • Skalbarhet • Treskiktadarkitektur • SQL Server 2005 • Stödförstora team • LagringbegränsasbaraavSQL Server ochhårdvara • Tillförlitlighet • Atomäraincheckningar • Säkerhet • Distribueradutveckling • HTTP Transport • Proxy Server SOAP / HTTP(S) MSSQL/TCP SQL Server 2005
Funktioner • Grundläggande funktioner • Workspace • Changeset • Shelving • Labels
Changeset • Samlingsbegrepp för • Filer och branchinformation • Länkar till work items • Checkin notes • Kommentar • Policy • Övrig metadata • Atomär enhet • Unikt identifierad • Representerar en punkt i tiden i repositoryt
Shelving • Mekanism för att sätta saker åt sidan • Kan automatiskt återställa kod till nolläge • Skapar ett shelveset • Kan delas mellan projektmedlemmar • Lättviktsbranching • Exempel • Lägga saker åt sidan (tillfälligt) • Backup • Dela arbete mellan projektmedlemmar • Kodgranskning
Workspace • Klientsidemappningen av repository • Håller kopior av filer som hämtas från TFS • Ändringar i ett workspace skapar ”pending changes” • Kopplas unikt till användare+maskin
Labels • Markör kopplad till kod som referens • Identifierar filer i repositoryt • Är inte versionshanterade • Innehåller en singel version av varje fil
Demo • Källkodshantering med TFS
Parallellutveckling • Multipla versioner • Branch • Skapa en kopia av koden för varje version som underhålls • Varje gren kan ha olika behörigheter • Merge • Sammanfoga ändringar i olika grenar • Multipla utcheckningar • Fil kan checkas ut av flera utvecklare • Ändringar kan sammafogas lokat innan incheckning
TFS Branching • TFS använder en grenbaserad branch modell • Men filer kopieras först när de ändras • Tänk igenom behov för att skapa rätt typ av branchstruktur • Förvaltning • Nyutveckling • R&D • Se även TFS Branching Guidance • http://www.codeplex.com/BranchingGuidance
Branch för förvaltning • Dev branch skapas för utveckling • Main branch används för stabilisering • Release branch skapas för release • underhålls efter release
Branch för feature • Branch skapas för feature • Feature integreras till main när komplett
Anpassning • Custom checkin policies • Notifieringar • Processanpassning
Check-in policies • Kontrollerar hur ändringar hanteras • Konfigurerbart på projektnivå • Utvärderas lokalt = måste installeras på klient • Enkelt att skriva egna för specifika behov OBS: Knutna till specifik TFS version
Notifieringar • TFS genererar events • Lätt (?) att registrera notifiering • Email eller Web Service • Exempel • Skicka mail när status på work item ändras • Starta automatiskt bygge vid incheckning • Skicka SMS när kritisk bugg rapporteras BisSubscribe.exe /eventTypeWorkItemChangedEvent /deliveryTypeEmailHtml /server http://localhost:8080 /address mathias@win2003 /filter """"PortfolioProject""" = 'Effective VSTS' AND ("""ChangedFields/StringFields/Field[ReferenceName='System.State']/OldValue""" <> """ChangedFields/StringFields/Field[ReferenceName='System.State']/NewValue""")"
Processanpassning • Hela TFS projektet kan anpassas • Ärendehantering • Rapporter • Dokumentation • Behörighet • ... • Använd Process Template Editor
Klienter • TFS är ett stort tält – alla får plats • Team Explorer • Kommandorad • MSSCCI • Team System Web Access • Teamprise
Nyheter i TFS 2008 • Annotate • Folder diff • Destroy • Get Latest vid utcheckning • Prestandaförbättringar • Skalbarhetsförbättringar • Offline förbättringar
Nyheter i TFS 2008 • Inbyggt stöd för • Continuous Integration • Schemalagda byggen • Bättre UI för att skapa byggen • Stoppa och ta bort byggen från UI • Multitrådad byggnation • Förenklad integration med enhetstester • Bättre objektmodell i .NET
Kompatibilitet 2005 / 2008 VSTS 2005 TFS 2005 VSTS 2008 TFS 2008
Team Build 2008 / 2005 5 5 8 8 8 5 8 5 8 8 5 8 5 8 8 5 8 5 8 5 8 8 8 8 5 8 5 8 5 8 5 8 5 8 5 8 5 8 5 8 5 8 8 5 8 5 8 5 5 8 8 8 8 5 8 8 Visual Studio 2005 Team Explorer Visual Studio 2008 Team Explorer 5 8
Team Foundation PowerTools • Tillägg till TFS • Innehåller • Kommandoradsverktyg • Visual Studio utökningar • Build Notification • Process Template Editor • Team Foundation Server Best Practice Analyzer • Work Item Templates • Custom Checkin Policies
Kommandoradsverktyg • Annotate • DestroyWI • DestroyWITD • GetCS • History • Online • Query • Review • Rollback • Treeclean • Treediff • Unshelve • Uu • Workitem • Workspace
Visual Studio utökningar • Find in source control • Open folder in Explorer • Quick label
Custom Checkin Policies • Custom Path • Koppla annan policy till gren i källkoden • Forbidden Patterns • Changeset Comments • Work Item Query OBS: Knutna till specifik TFS version
Alternativ till TFS Skalbart Administration Integration Enkelhet Atomära incheckningar Prestanda Analys Distribution Omogna verktyg Åldrande lösning
Agenda • Introduktion • Källkodshantering med TFS • Scenarios för migrering • Byggautomatisering
Planering inför migrering • Hur ser det ut idag? • Vad fungerar bra? • Vad kan förbättras? • Hur hanteras källkod? • Ny kodstruktur? • Behov av uppstädning? • Framtida behov?
Scenarios för migrering • Nystart • Migrering • Samexistens • Till TFS från... • VSS • Subversion • CVS • ClearCase
Nystart • Analysera befintlig kod • Exportera och frikoppla från repository • Rensa orginalkod • Ta bort filer relaterade till befintlig källkodshanterare • Add to source control före drag-and-drop • Strukturera om till lämplig målstruktur • Importera main branch till TFS • Skapa branchstruktur • Synkronisera branches mot exporterad kod • Bygg och testa
Demo • Importera källkod till TFS
Migrering • Analysera befintlig kod • Migrera main branch till TFS • Skapa branchstruktur i TFS • Checka ut nya branches • Migrera branches till TFS • Checka in ändringar • Bygg och testa
Samexistens • Källkod synkroniseras mellan repositories • Definiera regler för synkronisering • Manuell, schemalagd, händelsestyrd • Utmaning att hantera konfikter • CS-Converter • http://www.componentsoftware.com/Products/Converter • MigrationSyncToolkit • http://www.codeplex.com/MigrationSyncToolkit
Visual Source Safe • TFS funktioner VSS saknar • Workspaces • Changesets • Shelvesets • Content Merge, Namespace Merge (branch) • Auditing • Locking • Atomic checkins • VSS funktioner som TFS saknar • Share (but has much better support for parallel development) • Pin • Archive and Restore • Shadow folders
VSSConverter • Konverterar automatiskt (med historik) • Add, delete, undelete, rename, edit, label, move • Tar inte hand om • Share, branch, pin, källkodsbindning • Tidsstämplar lagras i kommentar • Relaterade händelser i samma changeset • Körs i två steg • Analys • Migrering
Migreringsprocess • Förkrav • Förbered migrering • Analys • Konvertering