Vítejte na blog.vyvojar.cz Přihlásit | Registrovat | Pomoc

JJ Blog

Blog Jardy Jindřicha o MS software a věcí kolem...

Syndication

Snadné zadávání WorkItems přes Outlook

Tak jsem si tak po delší době pročítal seznam různých doplňků a komponent do Team Foundation Serveru. Musím říci, že jsem se nestačil až divit, kolik nových věcí vzniklo. Svědčí to o tom, že by TFS mohla být stabilní a hlavně perspektivní platforma pro týmovou spolupráci. Držme jí palce ;)

Nejvíce mě vedle "hraček" typu gadget do Visty apod. zaujal plug-in do MS Outlooku. Určitě také často potřebujete rychle to TFS propsat nějaké zadání (i když samozřejmě všichni používáme strukturované analýzy :)) nebo popis chyby. Je trapné pro to vždy otevírat Visual Studio (a čekat) a prokopírovávat co potřebujem.

Pomocí tohoto doplňku snadno budete plnit workitemy do TFS.

http://blogs.microsoft.co.il/blogs/srlteam/archive/2007/03/04/Team-System-Outlook-2007-Addin-_2D00_-v1.0.aspx

Hodně štěstí.´

PS: Na zadávání bugů je to super...

Posted 27. června 2007 21:54 by jjindrich | 11 Comments

Vystavení TFS na web

Pokud používáte Team Foundation Server (TFS), tak jste asi časem narazili na to, že by se vám hodil přístup k němu z internetu.

Existuje možnost vystavit ven webové rozhraní (jako je např. TeamPlain (,který je už MS :)) nebo si napsat nějaké vlastní rozhraní (pracné :(. Nicméně pro plnohodnou práci potřebujete i přístup k zdrojovým kódům, historii, workitemům, reportům apod. a to z Visual Studio. Všechny dříve zmíněné možnosti jsou dobré, ale jsou to vlastní aplikace, kde se nedá očekávat moc integrace s Visual Studio.

Tak si tak říkám, jestli vystavit nebo nevystavit ven přímo webové služby TFS. Přiznám se, že jsem ještě nehledal dokumenty, jestli je někde postup co a jak vystavit. Spíš mě zajímá, jestli s tím má někdo reálnou zkušenost - bezpečnost služeb apod. Přiznám se, že se toho tak trochu bojím...

Další možností je VPN připojení do firmy, ale to má zas jiné nevýhody, jako obvykle to nedostává každý vývojář, problém s firewally atd. atd.

Řešil (a vyřešil) jste někdo něco takového ?

Posted 26. března 2007 21:27 by jjindrich | 171 Comments

Dojmy z konference TFS - rozšiřitelnost a customizace

Dnes se pořádal v MS akvárku zajímavý seminář o rozšířených scénářích využití a přizpůsobení TFS.

Musím říci, že se tam i pokročilý uživatel dozvěděl několik zajímavých věcí.

Nejvíce mě zaujalo toto:

1. Chcete dostávat upozornění, pokud uživatel poruší check-in policy ?

Dá se to zařídit velmi snadno, stačí si zapsat event určitého typu.

bisSubscribe.exe /eventType CheckinEvent /address test@email.cz /deliveryType EmailHtml /filter "PolicyOverrideComment <>''"

2. Chybí vám hezký sumář všech možných pluginů a utilit k TFS ?

Je to snadné, na webu www.teamsystem.cz nejen že je spousta užitelných informací, ale je zde odkaz na "magickou" stránku http://accentient.com/widgets.aspx, kde je příslušný seznam. Je opravdu z čeho vybírat. Bohužel musím potvrdit konstatování Michala, že u mnohých z nich (hlavně free) narazíte na chyby. Např. Template Editor se mi nepodařilo použít na našem projektu, spadnul chudák na Object reference...

A zaznělo tam toho mnohem více :) 

Takže závěrem díky Michalovi Juřkovi za přípravu a prezentaci semináře a užívejme TFS efektivně :)

Posted 17. října 2006 20:41 by jjindrich | 2 Comments

Přejmenovaní projektu v TFS

Pokud někdo aktivně pracujete s Microsoft Team Foundation Server, nebo vás firma poveřila jako správce projektu nad TFS, tak vás určitě nepotěšila stejně jako mě nemožnost přejmenovat projekt. Prostě jak si projekt při vytvoření pojmenujete, tak už zůstane.

V konferencích je častá odpověď typu, nelze nebo přemigrujte si projekt (vyexportovat ven + načíst znovu). Ani jedno z toho pro mě nebylo uspokojivé. Rozhodl jsem se tedy hledat vlastní cestu.

Produkt je naštěstí natolik otevřený, že je přístupná i databáze. Takže se mi podařilo napsat "jednoduchý" script, který provede přejmenování. Předem upozorňuji, že to není bezpečná akce a neznamená to spuštění jedné storky :) a chce to u toho přemýšlet :)

 Postup je následující:

  1. odstavte uživatele 
  2. zastavte IIS a službu TFSScheluler na aplikačním serveru
  3. zazálohujte si databáze
  4. spusťte SQL script na databázovém serveru - viz. níže
  5. spusťte IIS a službu TFSScheluler
  6. spusťte rebuild warehouse (nejlepe smazat a nechat vytvořit znovu)
  7. zkuste si načíst přejmenovaný projekt pomocí studia - ověřte že fungují všechny odkazy (reporty, portál apod.)

SQL Script:

-- Reporty
-- rucne prejmenovat na webu
SELECT * FROM ReportServer.dbo.Catalog

-- prime zmeny do Sharepointu
SELECT * FROM STS_Config_TFS.dbo.Sites where UrlPath LIKE '%OldName%'
UPDATE STS_Config_TFS.dbo.Sites
 SET UrlPath = REPLACE(UrlPath, 'OldName', 'NewName')
 where UrlPath LIKE '%OldName%'

SELECT * FROM STS_Content_TFS.dbo.Deps where FULLURL LIKE '%OldName%'
UPDATE STS_Content_TFS.dbo.Deps
 SET FullUrl = REPLACE(FullURL, 'OldName', 'NewName'), DepDesc = REPLACE(DepDesc, 'OldName', 'NewName')
 where FULLURL LIKE '%OldName%'

SELECT * FROM STS_Content_TFS.dbo.Docs where DirName LIKE '%OldName%'
UPDATE STS_Content_TFS.dbo.Docs
 SET DirName = REPLACE(DirName, 'OldName', 'NewName')
 where DirName LIKE '%OldName%'
SELECT * FROM STS_Content_TFS.dbo.Docs where LeafName LIKE '%OldName%'
UPDATE STS_Content_TFS.dbo.Docs
 SET LeafName = REPLACE(LeafName, 'OldName', 'NewName')
 where LeafName LIKE '%OldName%'

SELECT * FROM STS_Content_TFS.dbo.Links where DirName LIKE '%OldName%'
UPDATE STS_Content_TFS.dbo.Links
 SET DirName = REPLACE(DirName, 'OldName', 'NewName')
 where DirName LIKE '%OldName%'

SELECT * FROM STS_Content_TFS.dbo.Links where TargetDirName LIKE '%OldName%'
UPDATE STS_Content_TFS.dbo.Links
 SET TargetDirName = REPLACE(TargetDirName, 'OldName', 'NewName')
 where TargetDirName LIKE '%OldName%'

SELECT * FROM STS_Content_TFS.dbo.Sites where FullUrl LIKE '%OldName%'
UPDATE STS_Content_TFS.dbo.Sites
 SET FullUrl = REPLACE(FullUrl, 'OldName', 'NewName')
 where FullUrl LIKE '%OldName%'

SELECT * FROM STS_Content_TFS.dbo.Webs where FullUrl LIKE '%OldName%'
UPDATE STS_Content_TFS.dbo.Webs
 SET FullUrl = REPLACE(FullUrl, 'OldName', 'NewName')
 where FullUrl LIKE '%OldName%'

-- prime zmeny do TFS
SELECT * FROM TFSBuild.dbo.Builds where ConfigurationFileURI LIKE '%OldName%'
 
SELECT * FROM TFSBuild.dbo.FileDirectory where FilePath LIKE '%OldName%'

SELECT * FROM TFSIntegration.dbo.tbl_projects where project_name LIKE '%OldName%'
UPDATE TFSIntegration.dbo.tbl_projects
 SET project_name = REPLACE(project_name, 'OldName', 'NewName')
 where project_name LIKE '%OldName%'

SELECT * FROM TFSIntegration.dbo.tbl_subscription where expression LIKE '%OldName%'

SELECT * FROM TFSVersionControl.dbo.tbl_identity where displayname LIKE '%OldName%'
UPDATE TFSVersionControl.dbo.tbl_identity
 SET displayname = REPLACE(displayname, 'OldName', 'NewName')
 where displayname LIKE '%OldName%'

SELECT * FROM TFSVersionControl.dbo.tbl_Namespace where fullpath LIKE '%OldName%'
UPDATE TFSVersionControl.dbo.tbl_Namespace
 SET fullpath = REPLACE(fullpath, 'OldName', 'NewName')
 where fullpath LIKE '%OldName%'

SELECT * FROM TFSVersionControl.dbo.tbl_PendingChange where targetserveritem LIKE '%OldName%'
UPDATE TFSVersionControl.dbo.tbl_PendingChange
 SET targetserveritem = REPLACE(targetserveritem, 'OldName', 'NewName'),
  committedserveritem = REPLACE(committedserveritem, 'OldName', 'NewName')
 where targetserveritem LIKE '%OldName%'

SELECT * FROM TFSVersionControl.dbo.tbl_Permission where resourcename LIKE '%OldName%'
UPDATE TFSVersionControl.dbo.tbl_Permission
 SET resourcename = REPLACE(resourcename, 'OldName', 'NewName')
 where resourcename LIKE '%OldName%'

SELECT * FROM TFSVersionControl.dbo.tbl_PermissionNoInherit where resourcename LIKE '%OldName%'

SELECT * FROM TFSVersionControl.dbo.tbl_ReleaseNoteDefinition  where associateditem LIKE '%OldName%'
UPDATE TFSVersionControl.dbo.tbl_ReleaseNoteDefinition
 SET associateditem = REPLACE(associateditem, 'OldName', 'NewName')
 where associateditem LIKE '%OldName%'

SELECT * FROM TFSVersionControl.dbo.tbl_Version  where fullpath LIKE '%OldName%'
UPDATE TFSVersionControl.dbo.tbl_Version
 SET fullpath = REPLACE(fullpath, 'OldName', 'NewName')
 where fullpath LIKE '%OldName%'

SELECT * FROM TFSVersionControl.dbo.tbl_WorkingFolder  where serveritem LIKE '%OldName%'
UPDATE TFSVersionControl.dbo.tbl_WorkingFolder
 SET serveritem = REPLACE(serveritem, 'OldName', 'NewName')
 where serveritem LIKE '%OldName%'

SELECT * FROM TFSWorkItemTracking.dbo.BuildUri  where project LIKE '%OldName%'

SELECT * FROM TFSWorkItemTracking.dbo.TreeNodes  where name LIKE '%OldName%'
UPDATE TFSWorkItemTracking.dbo.TreeNodes
 SET name = REPLACE(name, 'OldName', 'NewName'),
 newname = REPLACE(newname, 'OldName', 'NewName')
 where name LIKE '%OldName%'

SELECT * FROM TFSWorkItemTracking.dbo.xxTree  where [team project] LIKE '%OldName%'
UPDATE TFSWorkItemTracking.dbo.xxTree
 SET [node name] = REPLACE([node name], 'OldName', 'NewName'),
 [team project] = REPLACE([team project], 'OldName', 'NewName')
 where  [team project] LIKE '%OldName%'

SELECT * FROM TFSWorkItemTracking.dbo.xxTreeOld  where [team project] LIKE '%OldName%'
UPDATE TFSWorkItemTracking.dbo.xxTreeOld
 SET [node name] = REPLACE([node name], 'OldName', 'NewName'),
 [team project] = REPLACE([team project], 'OldName', 'NewName')
 where  [team project] LIKE '%OldName%'
 

Důvod, proč jsou to jednotlivé selecty-updaty je ten, že je lepší si je spouštět postupně a sledovat, co to vlastně provedlo. Jinak se to dá určitě napsat lépe...

Samozřejmě platí, že toto přejmenování děláte na vlastní nebezpečí :) Ale už jsem takto přejmenovat 3 projekty a je to ok (víc než měsíc je dál používáme).

Na závěr snad jen uklidnění, v nové verzi TFS by už tato funkce měla být.

Přeji hodně štestí...

Posted 16. října 2006 19:42 by jjindrich | 0 Comments

Vyvojar.cz na prodej!