Having just inherited a TFS installation to manage, I received a request to add some values to a global list. I got a little nervous about this when I saw that the server had many (MANY) global lists in it already and I wanted to be very careful not to break anything during this change. Of course the first thing I did was consult the master book on the subject of TFS, Rich's Working with Microsoft® Visual Studio® 2005 Team System. This was a great start to groking the whole Global List thing. The steps needed to do this are pretty simple and documented well from Microsoft. The step to export your current global lists is to use the glexport command line tool. From the Visual Studio command line prompt (this works fine on a client), do this: glexport /f AllGlobalLists.xml /t myTfsServerName Credentials used are the local login credentials. This gives me one big file containing all the global lists in the server. Now the question I had was this, "Should I edit this master global lists file and import the whole thing, or should I just try to import changes to one list?" Obviously I wanted to work only on the one list I needed to change, but what effect would it have if I pulled out all the other lists from the file and uploaded just a single list in a smaller XML file? I was scared to death of deleting all the other lists in the file. I saved a copy of the master, and then took out all the global lists except the one I was interested in, changed the values, and ended up with something like this: <?xml version="1.0" encoding="utf-8"?> <gl:GLOBALLISTS xmlns:gl="http://schemas.microsoft.com/VisualStudio/2005/workitemtracking/globallists"> <GLOBALLIST name="Teams - Product Backlog"> <LISTITEM value="Team A" /> <LISTITEM value="Team B" /> <LISTITEM value="User Experience" /> <LISTITEM value="Team C" /> </GLOBALLIST> </gl:GLOBALLISTS>
So, on a wing and a prayer I ran this command:
glimport /f TeamList.xml /t myTfsServerName
And guess what happened: It worked great! All of my other lists were intact and my new team names showed up just fine. So I learned 2 things in this little exercise.
- You can import a single global list XML file into your TFS server without affecting other lists.
- glimport and glexport work just fine on a VS2008 client talking to a 2005 TFS server.
Martin Woodward has done his magic again! For those of you who don't know Martin, he is the primary developer of Teamprise, a fantastic suite of client applications that gives Java developers cross-platform access to Team Foundation Server from the command line, a stand-alone GUI or an Eclipse plug-in. In his blog, Martin announced the release of Teamprise 3.0, updated to take advantage of the new features in Team Foundation Server 2008. This release contains some many impressive new features including check-in policy support, recursive folder compare, single sign on support on windows clients, and gui support for version control undelete and destroy commands. Perhaps the most impressive new feature is the full Team Build integration and the brand new Teamprise Extensions for Team Foundation Build, which allows developers to use Ant scripts with Team Build - amazing! Even better, Teamprise Extensions for Team Foundation Build, including source code, is available free of charge to everyone. For more information, see Martin's announcement.
Last year I posted a note about how to integrate VSoft Technology FinalBuilder with Team Build. I really like FinalBuilder and think it's easy to use, compared with having to hand-jam the XML of MSBuild. With the upcoming version 6.0 of FinalBuilder, this integration becomes a snap, even including a Visual Studio add-in for configuring Team Build. Read this article for more information.
It's generally known that if you want to run any tests, code analysis, or database project build/deployment that you need to install one or more Team Edition of VSTS on your build server. What's not so well known are the licensing ramifications around these scenarios. Fortunately Jeff Beehler, Team System Chief of Staff, has posted on this subject. To summarize: If the users creating the builds are licensed users of the edition in question (or Team Suite), that license extends to Team Foundation Build and you don't need to purchase an additional license. One way to think about it is: the people that are using the Team editions need to be properly licensed which in turn ensures the that the build machines are covered as well. Users who merely queue (execute) and review the automated builds are only required to have a Team Foundation Server CAL.
Have you ever had a production application in the data center act up, and you spend countless hours hunting down the source of the problem? If so, then then you might be interested in a new project on CodePlex called Design for Operations (DFO). For years now engineers have been designing physical products with ease of manufacturing in mind. Called Design for Manufacturability (DFM), this technique takes fabrication and assembly into consideration early in the design process. DFM has a significant impact by improving the cost and quality of a product. Well, a variant of the technique has finally found its way to the world of software. Called Design for Operations, this technique allows software architects and developers to design their applications with built-in, real-time health monitoring, giving the operations staff much better operational information and improving the quality of service. According to William Loeffler, a Microsoft program manager: It’s a recent effort from patterns & practices to provide tooling for architects and developers with a means to model their application in terms meaningful to operations. Once modeled the tool can be used to create a Health Model for the application and once the Health Model has been completed at the architect and development roles the tool can be used to generate platform instrumentation as defined in the model. All that’s necessary for the developer is to call the generated API within their solution for each instance of instrumentation. The tool will also generate a Management Pack for System Center OpsMgr 2008 from the model that matches the generated instrumentation. For more information see: http://www.codeplex.com/dfo Hopefully DFO will become mainstream in the software development discipline, in the same way that unit testing has become popular.
Since first seeing the Code Metrics feature in the Development Edition of Visual Studio Team System 2008, I've been on a quest for bad (read: unmanageable) code. Rather than face the tool towards my code, I thought I would pick on Microsoft.
... and it looks like the EntLib has a maintainability index between 77 and 89.
Thanks to Ajoy krishnamoorthy for actually doing the hard work on this.
Back home now, and I have a moment to get the photos downloaded from my camera and uploaded to my blog. Next time I'll take my SD card reader with me. As you can see, registration was quite busy. I heard that there were 4000 people there, but didn't count them myself. The long lines delayed the keynote by about an hour: Douglas McDowell and I snuck into the press area. Well, he was officially press (SQL Server Magazine), but I wasn't - still I took more notes than most of the other pressies there. The main screen was huge, and 3D. We estimated about 80' wide and 20' tall. When no slides were on the screen, there was a spinning 3D Earth enclosed in curley brackets. Hey, what about VB? After the keynote, there was a short walk to the LA convention center, where the breakout sessions, chalk-talks, exhibitor area, etc. Fortunately, we had these interpretive dancers along the way to keep us from getting lost. The line to lunch was too long, so we ducked inside to check out the exhibitor area. I was there (where it says "You Are Here") Attendees attending one of Doug Seven's chalk talks on Team System. Doug was all about the writing quality code and the 3 C's in his talk (Code Coverage, Code Analysis, and the new Code Metrics) After I turned in my evaluation form, I picked up the attendee bag, which had lots of goodies, including a hard-bound, coffee-table style book called "Heroes Happen Here" which contains IT heroes from all around the world, photographed by Carolyn Jones. And yes, I got my book signed! 
It's not much, but we heard that call that there "wouldn't be free coffee" at the Boise Code Camp 3.0 this coming March 8, so we're kicking in, so that we can enjoy free coffee. Ahem. This way, we don't have to walk around with one of these things on our backs: 
In this, my first post of (hopefully) several today, I'm sitting in the keynote session (next to Douglas McDowell), listening to Tom Brokaw warm up the audience. What a nice surprise. It definitely stopped all the geeks in their tracks, to listen to his wise words, gathered from years of experience in all matters mankind. I loved his opening line "I'm not here to write code, or wire this room". He did, however, wax poetic on the future of technology, the spirit and energy of the types of people who will drive it, and how we must handle it to get their safely." Some of his quotes during the keynote (some paraphrasing): - "The test or our place in this world is not yet complete. We don't want to become Easter Island or the Mayan civilization. The use of this technology is not just a virtual experience. If we develop capacity and leave out common sense, what then is the reward to each of us, collectively or individually? If speed overruns reason, what else gets trampled?"
- "We will not solve climate change by hitting backspace. It will do us little good to wire the world if we short circuit our consciousness, our souls and if we don't use this technology to advance mankind."
- "When I left Nightly News I said that I'm not only going to spend my time at suites in the four seasons ... but to spend time in the trenches to meet people who make a difference"
- "One day I woke up in Pakistan in a packing container with Americans who had been there for six months, trying to assess medical and health needs. When they hiked out, they put their hands on the keyboard and distilled what they had learned ... and in so doing, made a big impression ... of those of us in the West who have so much, while they (people in Pakistan) have so little."
- "This technology takes a guiding hand, an imaginative approach, and a hope ..."
- "We have the opportunity to become the next, greatest generation."
Steve Ballmer came on stage next to thank the many platinum sponsors, and discuss how "Dynamic IT" can help manage complexity and achieve agility (especially in the realm software development) I heard the term "Agile" about 10 times in the span of 3 minutes. More to come ...
10:35 AM (Los Angeles) A fictitious developer, from the fictitious company "Fourth Coffee" is demonstrating the new, agile development features in Visual Studio 2008. She's showing off how to manage team development projects (a.k.a. team projects and work items), giving her tasks to make some changes to her code. Mostly she is showing off the split-screen editor, synchronization of code and designer, integrated design tools, and the new JavaScript debugger. Oops, she just called it "Team Services" as she closed out her work item. Well, we get the idea. 
I know. I know. This doesn't sound like a very interesting post, but it saved me time, and hopefully it can save you some too. When you install Visual Studio 2008, Microsoft creates a "Visual Studio 2008 Command Prompt" shortcut, under that program group.  I like to take this shortcut and drop it on my Quick Launch toolbar:  The problem is that when you install the Team Foundation Server Power Tools (or other new command line utilities) you need to put them in the path. Well, if you look at the file the shortcut calls, it's vcvarsall.bat, but don't bother editing that file because it calls vcvars32.bat, but don't bother editing that file, because it calls vsvars32.bat. If you go ahead and edit that file, you can find where the PATH is getting set, and add the Power Tools path to it: @set PATH=C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN;C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools;C:\WINDOWS\Microsoft.NET\Framework\v3.5;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 9.0\VC\VCPackages;C:\Program Files\Microsoft Team Foundation Server 2008 Power Tools;%PATH%
|