alm live flytta din k llkod till team foundation server n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
ALM Live Flytta din källkod till Team Foundation Server PowerPoint Presentation
Download Presentation
ALM Live Flytta din källkod till Team Foundation Server

Loading in 2 Seconds...

play fullscreen
1 / 90

ALM Live Flytta din källkod till Team Foundation Server - PowerPoint PPT Presentation


  • 136 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'ALM Live Flytta din källkod till Team Foundation Server' - yessica


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
alm live flytta din k llkod till team foundation server

ALM LiveFlytta din källkod till Team Foundation Server

Mathias Olausson

Callista Knowledgebase

mo@callista.se

http://olausson.net/blog

utlottning av b cker
Utlottning av böcker

För er som lämnar in utvärderingen

slide3
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
Agenda
  • Introduktion
  • Källkodshantering med TFS
  • Scenarios för migrering
  • Byggautomatisering
agenda1
Agenda
  • Introduktion
  • Källkodshantering med TFS
  • Scenarios för migrering
  • Byggautomatisering
varf r r du h r
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
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
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
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
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
Visual Studio Team System
  • Rollspecifik funktionalitet
  • Integrerade verktyg
  • Samarbetsplattform
  • Anpassningsbar plattform
agenda2
Agenda
  • Introduktion
  • Källkodshantering med TFS
  • Scenarios för migrering
  • Byggautomatisering
k llkodshantering med tfs
Källkodshantering med TFS
  • Mål med TFS
  • Funktioner
  • Parallellutveckling
  • Anpassning
  • Klienter
  • Nyheter i TFS 2008
  • Power Tools
  • Alternativa lösningar
m l med tfs

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
Funktioner
  • Grundläggande funktioner
  • Workspace
  • Changeset
  • Shelving
  • Labels
changeset
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
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
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
Labels
  • Markör kopplad till kod som referens
  • Identifierar filer i repositoryt
  • Är inte versionshanterade
  • Innehåller en singel version av varje fil
slide21
Demo
  • Källkodshantering med TFS
parallellutveckling
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 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
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 för feature
  • Branch skapas för feature
  • Feature integreras till main när komplett
anpassning
Anpassning
  • Custom checkin policies
  • Notifieringar
  • Processanpassning
check in policies
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
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
Processanpassning
  • Hela TFS projektet kan anpassas
    • Ärendehantering
    • Rapporter
    • Dokumentation
    • Behörighet
    • ...
  • Använd Process Template Editor
klienter
Klienter
  • TFS är ett stort tält – alla får plats
  • Team Explorer
  • Kommandorad
  • MSSCCI
  • Team System Web Access
  • Teamprise
nyheter i tfs 2008
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 20081
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
Kompatibilitet 2005 / 2008

VSTS 2005

TFS 2005

VSTS 2008

TFS 2008

team build 2008 2005
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
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
Kommandoradsverktyg
  • Annotate
  • DestroyWI
  • DestroyWITD
  • GetCS
  • History
  • Online
  • Query
  • Review
  • Rollback
  • Treeclean
  • Treediff
  • Unshelve
  • Uu
  • Workitem
  • Workspace
visual studio ut kningar
Visual Studio utökningar
  • Find in source control
  • Open folder in Explorer
  • Quick label
custom checkin policies
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
Alternativ till TFS

Skalbart

Administration

Integration

Enkelhet

Atomära incheckningar

Prestanda

Analys

Distribution

Omogna verktyg

Åldrande lösning

agenda3
Agenda
  • Introduktion
  • Källkodshantering med TFS
  • Scenarios för migrering
  • Byggautomatisering
planering inf r migrering
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
Scenarios för migrering
  • Nystart
  • Migrering
  • Samexistens
  • Till TFS från...
    • VSS
    • Subversion
    • CVS
    • ClearCase
nystart
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
slide44
Demo
  • Importera källkod till TFS
migrering
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
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
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
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
Migreringsprocess
  • Förkrav
  • Förbered migrering
  • Analys
  • Konvertering
f rkrav
Förkrav
  • Medlem av Team Foundation Administrators
  • Installera SQL Express på dator som kör konvertering
    • OBS: SQL Express hanterar max 4GB. SQL Server kan användas men kräver uppstättning i migreringsfil.
  • Måste vara system administratör för SQL Express
  • Visual Source Safe 2005 på dator som kör konvertering
  • Minst 5GB diskplats på SQL Server datorn
f rbered migrering
Förbered migrering
  • Identifiera målstruktur i TFS
  • Skapa Team Projekt i TFS
  • Identifiera användare i TFS
  • Skapa settings fil för mappning av strukturer
  • Skapa users fil för mappning av användare
    • Skapas tom efter analys
settings xml
Settings.xml
  • VSSDatabase: pekar ut VSS databas
  • ProjectMap
    • Project
      • Source: VSS folder att analysera
  • Settings
    • Output: resultatfil från analys
analys settings xml exempel
Analys settings.xml exempel

<?xmlversion="1.0"encoding="utf-8"?>

<SourceControlConverter>

<ConverterSpecificSetting>

<Sourcename="VSS">

<VSSDatabasename="\\server\VSS"></VSSDatabase>

</Source>

<ProjectMap>

<ProjectSource="$/FolderA"></Project>

<ProjectSource="$/FolderB"></Project>

</ProjectMap>

</ConverterSpecificSetting>

<Settings>

<Outputfile="Analysis.xml"></Output>

</Settings>

</SourceControlConverter>

analys
Analys
  • Kör VSSConverter Analyze settings.xml
  • Resultatfil i xml, innehåller stylesheets så öppnas i browser för bästa resultat
  • Rapportern innehåller summering, lista på kritiska fel, fel och varningar
usermap xml
Usermap.xml
  • Skapas under analysen och innehåller alla konton som påträffats
  • Ej mappade konton sätts till samma namn i TFS
  • Tips: koppla guest i VSS till Windows gästkonto för att inte tappa historik

<?xmlversion="1.0"encoding="utf-8"?>

<UserMappings>

<UserMapFrom="Admin"To="domain\tfsservice"></UserMap>

<UserMapFrom="guest"To="domain\guest"></UserMap>

<UserMapFrom="Mathias"To=“mathias"></UserMap>

</UserMappings>

settings xml1
Settings.xml
  • VSSDatabase: pekar ut VSS databas
  • UserMap: fil med användarmappning
  • ProjectMap
    • Project
      • Source: VSS folder att migrera
      • Destination: TFS projekt och folder
  • Settings
    • TeamFoundationServer: TFS att migrera till
    • Output: resultatfil från migrering
migrering settings xml exempel
Migrering settings.xml exempel

<?xmlversion="1.0"encoding="utf-8"?>

<SourceControlConverter>

<ConverterSpecificSetting>

<Sourcename="VSS">

<VSSDatabasename="\\server\VSS"></VSSDatabase>

<!-- option för att ange användarmappning -->

<UserMapname="usermap.xml"></UserMap>

<!-- option för att ange annan SQL Server -->

<SQLServer="SQL_Server_name"></SQL>

</Source>

<ProjectMap>

<ProjectSource="$/FolderA"Destination="$/TeamProjectA"></Project>

<ProjectSource="$/FolderB"Destination ="$/TeamProjectB/FolderB"></Project>

</ProjectMap>

</ConverterSpecificSetting>

<Settings>

<TeamFoundationServername="My_TFS_Server"port="8080"protocol="http"></TeamFoundationServer>

<Outputfile="Migration.xml"></Output>

</Settings>

</SourceControlConverter>

migrering1
Migrering
  • Kör VSSConverter Migrate settings.xml
  • Motsvarande rapport som för analys produceras
vssconvertergui
VSSConverterGUI
  • UI för hantering av xml filer
  • Måste köras från samma folder som VSSConverter.exe
  • Ännu ej uppdaterad för TFS 2008
  • Ladda ner från CodePlex
    • http://www.codeplex.com/VssConverterGui
slide61
Demo
  • Migrera VSS till TFS
subversion
Subversion
  • CS-Converter från Component Software
    • Komplett migrering
      • Även branches
    • Verifierar migrerade filer
    • Återskapar changesets
    • Mappning av användare
    • Stödjer även synkronisering
    • http://www.componentsoftware.com/Products/Converter/download.htm
subversion1
Subversion
  • SVN-2-TFS
    • Migrerarkompletthistorik
    • Hanterar branches
    • Gränssnittförmappningavanvändare
    • http://www.kyrosoft.com/products.htm
slide64
CVS
  • Migrera via SVN
    • Relativt enkelt att migrera CVS till SVN
  • CS-Converter från Component Software
    • Direkt import till TFS
clearcase
ClearCase
  • Olikheter i synsätt/arbetssätt en utmaning
  • Hitta lämplig branchstruktur i TFS
    • CC skapar brancher dynamiskt
    • Försök följa TFS branching best-practices
  • Migreringsverktyg från Microsoft
    • Migrerar VOBs
    • Återskapar branchstruktur
      • Använder en config spec för mappning
    • För CC 5.0 och 6.0, stödjer inte CC LT
      • http://www.microsoft.com/downloads/details.aspx?familyid=999220ed-3d11-411a-bb54-71dddb724e15&displaylang=en&tm
agenda4
Agenda
  • Introduktion
  • Källkodshantering med TFS
  • Scenarios för migrering
  • Byggautomatisering
byggautomatisering
Byggautomatisering
  • Byggautomatisering
  • MSBuild
  • Alternativ till MSBuild
  • Team Build
  • Alternativ till Team Build
byggautomatisering r
Byggautomatisering är...
  • Integration av utvecklingsarbetet
    • Automatisera kompilering
    • Köra tester
    • Automatisk deployment
    • Rapportering av resultat
  • Genomförs kontinuerligt
    • Vid varje inchecking
    • Vid givna intervall
byggautomatisering1
Byggautomatisering...
  • Sparar tid
  • Reducerar fel
  • Ersätter dokumentation
  • Byggautomatisering gör det enkelt att ta pulsen på projektet
msbuild
MSBuild
  • Utbyggbart byggsystem som är en del av .NET Framework 2.0
  • Integrerat med Visual Studio 2005+
  • Använder XML för att beskriva ett projekts egenskaper, delar och byggprocess
  • För detaljer:
    • C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\*.targets
    • C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.Tasks
alternativ till msbuild
Alternativ till MSBuild
  • NAnt
  • FinalBuilder
  • Visual Build
slide73
NAnt
  • Styrkor
    • Bättre än make/nmake
    • Kräver inte Visual Studio
    • Många .NET tasks
  • Svagheter
    • Manuell hantering av XML
    • Omogna verktyg
    • Svårunderhållet
finalbuilder
FinalBuilder
  • Styrkor
    • Visuell editering
    • Lättanvänt
  • Svagheter
    • Propritär lösning
visualbuild
VisualBuild
  • Styrkor
    • Visuell editering
    • Stöd för många aktiviter
    • Bra integration
  • Svagheter
    • Propritär lösning
    • Svårunderhållna script
    • Procedurellt
team build
Team Build
  • Automatiserad bygglösning
  • Stödjer end-to-end byggnation
  • Välintegrerad med TFS och Visual Studio
  • Uppdaterar projekt nyckeltal
  • Producerar rapporter
  • Fullt utökningsbar
slide81
Demo
  • Byggautomatisering med TFS
  • BuildNotification
alternativ till team build
Alternativ till Team Build
  • FinalBuilder
  • Nant, CruiseControl.NET, CC.NET
cruisecontrol net
CruiseControl.NET
  • Open-source baserad automatiserings- server
  • Initialt porterad av Thoughworks
  • Integrerar med många källkodshanterare, Nant, MSBuild, FxCop, NUnit, NCover
migrering av byggprocess
Migrering av byggprocess
  • Nant  MSBuild
  • CruiseControl.NET  TeamBuild
    • CCTray  BuildNotification
  • CruiseControl.NET och TFS
    • Samexistens genom TFSCCNetPlugin
    • http://www.codeplex.com/TFSCCNetPlugin
  • Resten får konverteras
summering
Summering
  • Utnyttja möjligheterna i Team System
    • TFS är en komplett CM miljö
    • Versionshantering en viktig del men inte allt
  • Automatisera
    • Bättre integration = mindre smärta
  • Planera för migrering
    • Vilket scenario passar bäst?
alm live
ALM Live
  • Pågående initiativ kring förbättring av Application Lifecycle Management
  • SCRUM och Team System
    • 21/2 Stockholm
    • 27/2 Malmö
    • 28/2 Göteborg
  • Senaste event finns på Svenska MSDN
    • http://www.microsoft.com/sverige/msdn/almlive/default.mspx
fr gor
Frågor?
  • Svar!
  • Diskussion...
referenser
Referenser
  • ALM Live
      • http://www.microsoft.com/sverige/msdn/almlive/default.mspx
  • Team System Web Access
  • Team Foundation Power Tool
  • MigrationSyncToolkit
    • http://www.codeplex.com/MigrationSyncToolkit
  • CS-Converter
    • http://www.componentsoftware.com/Products/Converter