As you know, Visual Studio 2008 and Team Foundation Server 2008 Service Pack 1 was released earlier this month. Most of SP1 was about bug fixes and performance, but it seems that the profiler team snuck in several new features as well: - Adding support for instrumenting 64-bit managed C++ applications
- Improved instrumentation experience with pre-compiled web sites
- Shipping the 64-bit performance SDK (VSPerf.h, VSPerf.lib)
- Ability to load a previously saved filter on non-English VS installations
Here is a link to the VS2008SP1 readme and a page listing all of the SP1 downloads.
My final talk at VSLive! San Francisco this week was on one of my favorite topics - parallel development. In other words, dealing with the real-world situations where multiple developers are coding away on the same project, and even the same file. The first order of business was to have a few of the ex-Visual SourceSafers lay down on my couch so we could discuss their phobias and irrational urge to run to their "safe place" - a.k.a. locking. In all seriousness, we discussed the two locking models of TFS and then explored the many wonderful benefits of not using locks by default, known as shared check out. Most in the audience agreed that the benefits of not blocking each other with their routine development (for example, not locking .csproj files when somebody adds a new file) greatly outweighs the detriment of having to deal with a conflict that requires manual intervention. Of course, arguments can be made either way. I pointed out that there are four situations where conflicts can occur that may require auto/manual merging: - CHECK-IN - the most obvious; somebody else may have just checked in competing changes just before you
- GET - you may already have pending changes on one or more of the files you are trying to download
- MERGE - by definition; when you merge changes from one branch to another, the chances are good that you will have to resolve conflicts
- UNSHELVE - not so obvious, but this is basically like a GET, just coming from another location in TFS; unfortunately, Team Explorer doesn't know how to handle the detection/resolving of these types of conflicts, so look to the TFPT UNSHELVE power tool for help
Finally, we looked at setting up a source control folder structure that will support your teams promotion model (a.k.a. staging environment). I proposed a simple structure, that looks somewhat like this: Some explanations - Code holds code artifacts - C#, VB, SQL, WiX, etc.
- Documents holds snapshots of the SharePoint site archived at the end of each iteration, release/version, build, etc. (whatever your term is)
- Active development occurs in "Current", which you could name "Dev" or "Main" (although I prefer "Main" for integration)
- Under the "Current" folder you'll have folders for each high-level application/component in the system, including common, database scripts, build definitions, and even setup projects
- "Branches" are just that - QA, UA, RC, Release, and private branches (Bridges), etc.
If you'd like to have a look at my slide deck, you can find it here. 
That was the topic of our discussion today at VSLive! San Francisco. Unfortunately, in the short amount of time (75 minutes) we didn't get too deep into all of the tools and techniques, but I did get my point across: I feel that Team Foundation Server (TFS) can do it all, and you should strive to migrate your source/revision control system, requirements and defect tracking system, document managing system, automated build and deployment system, and even your custom process workflow over to TFS. That said, there are certainly situations where existing systems must be used. I identified two categories of such legacy software: - Politicalware - somebody important in the organization bought or built the system and you there are strong feelings about migrating away from it
- Guiltware - the organization spends oodles (that's a lot) of cash on said software, maintenance/support, training, etc. and they haven't seen their ROI (and they may never see it)
I don't know what to tell you about the above situations, except that running in parallel (not good) or integration (better) would be an option. That lead us to the discussion of building custom software to do one-way and two-way synchronization with said systems. We briefly walked through the TFS Migration and Synchronization Toolkit (found on CodePlex) and I demonstrated the TFS to TFS Migration Tool (also found on CodePlex) which uses the toolkit. I see Team Foundation Server as yet another great "grassroots" platform. Just like .NET was for the developers, TFS is for the team. So, I say get it installed no matter what, even if just for source control, which is the no-brainer. Once it's in-house, then work on migrating the work items, automated builds, and other systems over sooner, rather than later, so you can enjoy the end-to-end traceability, product quality reports, and process quality reports. If you'd like to have a look at my slide deck, you can find it here and my demo files here (you'll need to download the SDK and CodePlex toolkit and tool separately). 
For those of you who joined me at VSLive! this week in San Francisco, I had fun sharing many worst (or un-preferred) practices I've run into over the years. My talk broke them down into several areas: TFS installation, TFS configuration, team projects, work items, and version control. Hopefully I didn't make anyone feel tool uncomfortable when I highlighted your practice on the big screen! Actually, it was all in good fun. By highlighting Team System worst practices, we were able to define Team System best practices and preferred practices. If you'd like to have a look at my slide deck, you can find it here and my demo files here. Feel free to let me know about any other worst or worster practices you may know of. 
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! 
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%
Last week I had a chance to meet some of the brains behind gridGISTICS - a .NET development company in Atlanta that gets it. Not only are they up to speed on the latest .NET 3.x technologies, but they have some killer products as well. The one that struck me as the coolest was their Aware Server product, which is a grid-computing based deployment and management environment. In other words, the missing pieces to Team Foundation Server's build and (ahem) deploy automation. Packaging up applications by system and version into manifests, these binaries can be automatically deployed, registered, launched, and monitored by various Aware Agents installed around a company's environment. From the development side, they provide many Visual Studio 2008 templates and add-ins to help generate Aware-compatible applications very quickly. Follow their story here.
Come chat with the Visual Studio Team System group on Wednesday, December 5th. Join members of the Visual Studio Team System product group to discuss features available in Team Foundation Server, Team Suite, Architecture Edition, Development Edition, Database Edition, and Test Edition. In addition, discuss what's new for these editions for Visual Studio 2008. There will be two sessions that day:
Microsoft has released a new version of VSTS Web Access Power tool. This release is a Community Technology Preview (CTP) of what will ultimately be the 2008 version of the VSTS Web Access Power Tool. - Built against the TFS 2008 object model - In previous versions of Web Access you had to install Team Explorer 2005 on any machine you were installing Web Access on. With this version, you will now be installing Team Explorer 2008 instead. In some future version, Microsoft hopes to remove the requirement to install any version of Team Explorer.
- Custom control support - added support for web based work item custom controls and have included a folder of documentation and samples on how to create them.
- Build queuing - added UI for the new TFS 2008 feature of build queuing. You can start new queued builds and view the build queue (in addition to the preexisting abilities - like viewing build details).
- Localization support - added support for localizing the web interface. Microsoft will also be localizing text for the final 2008 Power Tool release.
- Bug fixes & Performance improvements - Microsoft has received a number of reports and done more testing on the current version of the Power Tool, and has fixed everything thus far.
This release (and the final 2008 release) can be used with either a TFS 2005 or a TFS 2008 server. In either case, you will need to install a TFS 2008 Team Explorer on the machine you install Web Access on. Since TFS 2005 did not support build queuing, that functionality will not be available when this and future versions of Web Access are used with a 2005 server. You can download it here and read more about it at Brian Harry's blog posting.
The great news just keeps on coming from Microsoft. After a flurry of Team System announcements and downloads recently, we have yet another set of Power Tools to play with. These tools are designed specifically for the Visual Studio Team Edition for Software Architects and provide the following capabilities: - View class library projects on the Application Diagram (AD)
- View references to class library projects as connections on the Application Diagram
- Create class library projects from the Application Diagram
- Create references to class library projects from the Application Diagram
- Synchronize properties between class library projects and their representative applications on the Application Diagram
- Create and use class library applications and references on the System Designer (SD)
Fantastic. We haven't seen much out of the Architect tools, except for the SDM SDK in quite some time. I'm looking forward to it. Download the CTP here. Note: you will also need to download Visual Studio 2008 Beta 2. If you have any feedback on these tools, please visit the Architecture & Design forum.
|