Bygg VS2010-projekt, men behåll TFS 2008

clock juni 16, 2010 21:22 by author Daniel Hognert

För oss som börjat migrera vissa projekt till Visual Studio 2010, men ännu inte fått klartecken (eller licens) till att uppdatera Team Foundation Server 2008 till nästa version, finns det några väldigt enkla steg att följa för att få igång dina automatiska byggen och tester (Continuous Integration). På egen risk förstås.

Följ bara instruktionerna på http://www.richard-banks.org/2009/11/how-to-build-vs2010-solutions-using.html



Ta bort gamla TFS-projekt

clock december 1, 2009 09:43 by author Daniel Hognert

För att ta bort gamla TFS-projekt du inte längre har någon användning för, kör följande i en kommandoprompt som Administratör:

cd C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
TfsDeleteProject /server:SERVERNAME "PROJECTNAME"

SERVERNAME - Servernamn
PROJECTNAME - Projektnamn



Automatisk uppdatering av versionsnummer i TFS bygge

clock november 18, 2009 17:53 by author Magnus Härlin

Om man har en automatiserad byggprocess i TFS och vill att versionen på alla assemblies ska uppdateras automatiskt för varje bygge kan man ta hjälp av MSBuild Community Tasks som har många bra tasks för MSBuild. I mitt exempel så tar jag och lägger in Build numret som ÅÅMM och sen tar jag changeset numret från TFSen. På så sätt är det lätt att spåra tillbaks en specifik release till en kodbas. Vill man ändra Major och Minor versionen är det bara gå in och göra det i byggscriptet.

 

För att lägga in versionshanteringen i byggprocessen går man in i projektfilen och lägger till:

 <Import Project="..\MsBuildTasks\SetVersion.targets" /> 

Pathen ska förstårs vara till den plats där man skapar SetVersion.targets filen i förhållande till projektet.

 

Har man flera projekt lägger man till referensen i alla projektfilerna som man vill ha versionen uppdaterad på. I den katalogen där man har SetVersion.targets filen behöver man även lägga in MSBuild.Community.Tasks.dll. Man får lägga till en fil som heter AssemblyVersion.cs i projekten man vill ha versionen också. Den populeras automatisk av bygget men måste vara med i projektet för att den ska komma med i kompileringen. 

 

 <Project InitialTargets="SetVersion" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">     <UsingTask AssemblyFile="MSBuild.Community.Tasks.dll" TaskName="MSBuild.Community.Tasks.AssemblyInfo" />   <UsingTask AssemblyFile="MSBuild.Community.Tasks.dll" TaskName="MSBuild.Community.Tasks.Tfs.TfsVersion" />

   <PropertyGroup>

           <Major>1</Major>

           <Minor>0</Minor>

           <Build>0</Build>

           <Revision>0</Revision>

  </PropertyGroup>

   <Target Name="SetVersion" Condition="'$(IsDesktopBuild)'=='false'">

            <TfsVersion LocalPath="$(SolutionDir)" TfsLibraryLocation="$(SolutionDir)\Dependencies">

             <Output TaskParameter="Changeset" PropertyName="Revision"/>

           </TfsVersion>

           <Time Format="yyMM">

             <Output TaskParameter="FormattedTime" PropertyName="Build" />

           </Time>

            <Message Text="%0a%0dMaking files writeable" />

           <Exec Command="attrib Properties\AssemblyVersion.cs -R" />

                      <AssemblyInfo CodeLanguage="CS" OutputFile="Properties\AssemblyVersion.cs" 

    AssemblyVersion="$(Major).$(Minor).$(Build).$(Revision)"

      AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)"

             Condition="$(Revision) != '0'" />

            <Message Text="%0a%0dMaking files readonly" />

           <Exec Command="attrib Properties\AssemblyVersion.cs +R" />

   </Target>

 </Project>

 När byggservern bygger projekten så kommer den sätta variabeln $(IsDesktopBuild) till false. Lägger man inte in det conditionet kommer versionen uppdateras varje gång och det finns ingen anledning att göra det när man bygger på klienten. Skulle man jobba offline och inte ha tillgång till TFSen när man bygger får man ett exception. På det här sättet kan man bygga offline men när byggservern gör bygget så läggs versionnumret in.



Spela upp acceptanstest med Camano

clock november 13, 2008 13:24 by author Magnus Härlin

Imorse passade jag på att leka lite i hands on labs med Camano. Det är klart att det låter bra när någon står och pratar om inspelade test och möjlighet till att debugga i efterhand som jag skrev om igår.

 

Det går att lägga in acceptanstest (manuella test) i TFS som har steg för steg instruktioner hur man ska utföra testet och vad man ska använda för värden, precis som vilket vanliga acceptanstest som helst. Personligen tycker jag det är ganska tråkigt att sitta och utföra acceptanstest men får man tillbaks en bugg från ett så måste man ju fixa den, kolla att den går igenom och checka in ändringen. Nu har det gjorts lite lättare. När man har fixat buggen kan man med hjälp av Camano välja om man vill spela upp valda eller alla delar av testet igen. Det som händer då är att den replikerar dom stegen som testaren gjorde med att fylla i värden och sen så får man snabbt bara verifiera att slutresultatet är det förväntade.

 

Jag blir glad över alla manuella tester och steg jag kan slippa som utvecklare och det här är bara ännu ett steg i rätt riktning J



PDC 2008 - Los Angeles

clock november 11, 2008 22:32 by author Janne Hasslöf

Microsoft är proffs på stora evenemang.
Det märks redan vid hotellet med veckoagendan på ett stort uppslag i lobbyn och tidtabeller för bussar till pdc och evenemang. Det är bara att gå ut på trottoaren på morgonen så kommer en funktionär och tar hand om en och visar till bussen.
Efter en kort stund sitter jag på andra raden i den stora key-note-salen.  Rockmusiken dunkar. Rökmaskinerna jobbar och alla är spända. Snart....snart börjar det.....Nu tar kameramannen på sig lurarna. Det är mycket tv-kameror här och säkert plats för 100 journalister....spännande. Visst låter man lite som ett barn på julafton, men så är det :-)

Det första Microsoft lanserade på PDC var Windows Azure, Microsofts nya plattform för att drifta och koppla samman tänster på nätet, eller i molnet som man säger numera.
Windows Azure tillhandahåller idag 4 tjänster som utveklare och driftavdelningar kan använda sig av:

Service Bus
En klassisk buss som knyter ihop tjänster i molnet enligt samma principer som en vanliga företagsbuss knyter ihop tjänstebaserade applikationer på ett intranät.  

SQL Data Services
Enklare databastänst som håller en applikations data tillgängligt i molnet.  Kommer sannorlikt att bygas ut till en kraftfulare version i kommande releaser.

Workflow Service
Här kan man utvekla och drifta sina flöden av aktiviterer som skall ske när applikationer postar meddelanden på service-bussen .

Access Control Service
Denna tjänst styr behörigheten i de övriga tänsterna och har möjlighet att hämta behörighetsinformation från en mängd olika identites och behörighetssystem. Så som Microsoft LiveID, ett företags Active Directory, etc.  

För att lära dig mer om Windows Azure, gå in på http://www.microsoft.com/azure/default.mspx. Här kan man även anmäla sig till att vara med i ett utvecklarprogram. Jag kommer att återkomma till Azure i kommande inlägg när jag gett mig på att testa lite mer. 

Andra ämnen som jag tycker var speciellt intressanta och som jag kommer att återkomma till är 

Dublin
Den nya runtime-miljön för WCF och WF som är en utbyggnad av WAS som finns i dag.  Prestanda, enklare konfiguration och möjlighet till övervakning har varit fokus i denna version som Dan Eshner beskriver med orden "It just works!" 
Kolla Dublin här: http://channel9.msdn.com/pdc2008/BB18/

B2B
Kolla in hur man kan utnyttja Azure till att bygga en ny typ av Business-To-Business applikationer
http://channel9.msdn.com/pdc2008/BB59/

REST
Mycket av kommunikationen i Azure och andra ställen i molnet kommer att baseras på  REST-protokollet framöver. Här visas det hur man bygger WCF-tjänster som utnyttjar REST.
http://channel9.msdn.com/pdc2008/TL35/

Skalbarhet
Många siter växer ur sin kostym och designen kan inte längre leverera de responstider som förväntas. Här är en dragning om hur Microsoft ser på skalbarhet i framtiden och vilka principer som man kan sikta in sig på i framtiden.
http://channel9.msdn.com/pdc2008/BB54/

VS2010
Det händer massor i VS2010 tillsammans med TFS och det är riktigt kul att se alla nya features som man ju helst vill ha redan nu! Vill du tex. lära dig att analysera hur man skall angripa en befintlig applikation som akritekt så kolla på:
http://channel9.msdn.com/pdc2008/TL15/
Om du vill se hur man kan använda nya VSTS för att höja kvaliten på kod och applikationer så kolla på:
http://channel9.msdn.com/pdc2008/TL03/

Vill du själv botanisera i föreläsningar på PDC så bandades nästa alla och ligger uppe på
http://sessions.microsoftpdc.com/timeline.aspx
http://channel9.msdn.com/pdc2008/

Vi Hörs!
-Janne



TFS 2008 the never ending story

clock augusti 14, 2008 17:01 by author Magnus Härlin

När jag kom så långt att jag hade installerat TFS på den nya servern och fått det att funka så gjorde jag en restore av dom gamla databaserna och körde en Data Tier upgrade av dom för att dom skulle funka med nya versionen, helt enligt guiden. Efter det fungerade det inte att uppdatera Application Tier servern för att den gnällde på att det var något fel med med DT. Ska ni uppgradera från TFS 2005 till TFS 2008 rekomenderar jag följande tillvägagångssätt...

1. Installera SQL Server, Reporing Services och WSS

2. Migrera över allt data om ska man göra en WSS uppgradering från 2.0 till 3.0 gör man det.

3. Kopiera över alla TFS databaser från gamla servern och öppna tfsIntegartion databasen och uppdatera tbl_registration_extended_attributes och tbl_service_interface. I Dom ska samtliga referenser till den gamla servern och gamla sökvägar bytas ut till nya servernamnet och sökvägarna på den.

4. Installera TFS 2008 och välj att göra en uppgradering.

Det var inte så svårt när man väl kom på i vilken ordning allt skulle göras och vilka små hack man var tvungen att göra i databasen för att det skulle erbjudas uppgraderingsmöjligheter under installationen.

När installationen var slutförd och jag tyckte att jag kunde få belönas med att uppgradera SQL Servern upptäckte jag att det som skulle varit en standard edition fortfarande bara var en workgroup edition även om den hade blivit uppgraderad. Efter lite googlande så hittade jag lite postningar om det på Dag Königs blogg och microsoft forum. Problemet är att man med volumlicenser inte får någon nyckel men för att komma förbi buggen att uppgradera från Work group till standard edition måste man ha en nyckel... Vi får se om tipsen i forumet löser problemet för mig när jag förhoppningsvis får en nyckel av Microsoft.

 



SQL Server 2008 är släppt!

clock augusti 11, 2008 15:13 by author Magnus Härlin

Jag har inte hunnit testa nya versionen av SQL Server men är väldigt sugen och ska se till att försöka få lite tid till det nu under veckan. För att göra det lite mer spännande ska jag installera nya SQL Servern på samma server där jag installerade TFS för några dagar sen. Om några dagar kommer jag troligen med lite spännande uppdateringar om hur det har gått också :-)

 



Team Foundation Server 2008 Installation

clock augusti 7, 2008 13:03 by author Magnus Härlin

När man läser om hur det ska gå till att installera TFS 2008 kan man tro att det inte ska vara så illa när man har en helt ny och ren Windows Server 2008 maskin... Men vad man kan missta sig.

Först gör man alla standardgrejjer som att installera WSS och SQL Server med Reporting Services och sen till sist själva TFS installationen. Dessvärre tog det på olika sätt stopp vid den delen där TFS skulle kolla om Reporting Services var installerat och installationsanvändaren hade alla rättigheter som behövdes. Den stoppade konstant webapplikationen där ReportingServices kördes. Jag googlade på problemet och såg att någon hade löst det genom att byta bindingen (porten) för default webb applikationen och ändra i rsreportserver.config så att <UrlRoot> pekar till rätt ställe. Det gjorde att man kom lite längre fram och fick klagomål om att man inte hade tillräckligt med rättigheter för att konfigurera ReportingServices. Kollade man i installationsloggen vid det steget insåg man att den egentligen klagade på att ReportingServices inte längre var installerat på default url:en. När man ändrar tillbaks bindningen, utan att starta om installationen, och trycker på retry så fungerade installationen!

Jag hoppas att det här var ett kryptiskt problem som inte brukar hända för det känns lite avigt att vara tvungen att ändra konfigurationen för ReportingServices under installationen för att komma förbi olika steg i installationsprocessen.