Visual Studio Team System Beta 2 First Looks
A bit of a mouthful for a blog title but I got the whole meal deal running yesterday with Visual Studio Team System. It took 2 server setups, 1 client, a few gallons of coffee, and several dozen installs, uninstalls, re-installs and compiles to make sure everything worked correctly. And boy is it nice. I installed the Suite version which gives you all the tools that the Developer, Architect, and Test flavours have so I could give everything a run for it's money. Bear with me as it's been over 24 hours since I saw B1 and I may remember things that were there and others that were not.
First off, it's visually a little more slicker. I can't put my finger on it but overall it's looking more polished and user-friendly. The install runs more like the Express product installs and has less clutter yet more information than Beta 1. During the install you see the list of what is being installed which is nice. I think the previous one just told you from time to time what it was doing, but this shows what's going on (okay, maybe it was too many coffees for me and it's been there all along). Once inside the product, again small visual tweaks just make it look a little better. They must have some ergonomic design team measuring every pixel and trying RGB(243, 210, 120) instead of RGB(242, 210, 120) for the toolbar colours. Overall it looks nice (but then you would hope it's visually appealing considering how much money you're going to outlay for this puppy).
The install took an average amount of time, maybe faster than B1 (once you uninstalled your previous version). Now I'm running on a 3Ghz Xeon with 2GB of RAM so adjust your numbers accordingly. It was about 45 minutes for a full install from start to finish (including a reboot after the Framework was installed). If you just want Visual Studio without the other goodies then it should take about 30 minutes. I installed the full MSDN Library as well which took another 10 minutes then 5 minutes to watch it "optimize" everything else. So give yourself a couple of hours and relax. Some days I wish these guys would include a short film or maybe an episode of CSI (Las Vegas, not the crap ripoff versions) to watch while you're installing.
Warning! Uninstalling Beta 2 will uninstall all previous versions of .NET. Yup, while Beta 2 and the 2.0 Framework run side-by-side no problem, uninstalling it another matter. When you uninstall Beta 2 (as I had to do once during my setup fiasco) it wiped out, removed, and decided that I shouldn't have version 1.1 anymore either.
The IDE comes up quickly (quicker than B1 anyways) and has some small but nice changes. There's a new Community menu (at least I think it's new) that takes you (via the Microsoft Document Browser) to the feedback site to ask questions, check on a question status, or go to the new Starter Kits that are being created for 2.0. The Code Snippets are still plentiful for VB and very few for C# (which strikes me as odd but I'm sure that will change).
I only looked at the Class Designer for now (as I still can't realistically represent a SharePoint application or site in the other Designers). The biggest change here was the ability to export to an image. You don't know how much trouble I would have to go through to screen cap a model then paste it into Paint.NET just to show it to someone. There's also a Layout Diagram option that re-arranges the diagram (works for the most part) and a couple of other little things like setting auto-width on the class so all method names are visible. I wish some of these things could be set in the options but the only Designer I could see was the Domain Model Designer but it had an error on the property page. The two big things I saw with the Class Designer was showing a property as a Collection Association (which will tell you that it can't do it if it's a weakly typed collection) and showing Abstract Classes (previously abstract classes would just show as classes but with dotted borders around them). There's also a nice shortcut on the menu to show/hide member types which is handy when you're looking at the overall diagram.
I didn't notice any new refactorings avaiable however when I was doing a quick TDD test, the infamous squiggly line would appear saying my method didn't exist and if I right clicked on it there was an option to generate a method stub. It couldn't introduce a new class but would add a method/property/etc to an existing class. When calling methods/classes that didn't have a reference (but were in the solution) there was now an option called Resolve. This gave me a couple of options to either add the using statement or fully qualify the class name. Still not as slick as ReSharper but better than nothing. Hopefully we'll see the ReSharper for VS2005 soon.
The big thing I found is that the Team Foundation Server now allows you to do single or dual deployment installs. Previously each part of Foundation had to reside on a separate computer so I had to consume 3 virtual machines for this (each with 1GB of RAM allocated). Now you can do a single server deploy with the data and application tier all in one. This does require SQL Server 2005 and won't install alongside some products (for example you have to uninstall Portal Server but you still need Windows SharePoint Services for the project sites).
The Team Server stuff is just plain sweet. Once you're connected to Team Server, anytime there's a warning or error you can right click and choose to create a work item which then creates a task in SharePoint assigned to someone. Very slick to assign work this way to your team (and play a king of bughill game). Test results will be posted to the associated SharePoint site and show up in graphs depicting success to failure rates, code coverage, etc. All that neat stuff that execs and PMs want to see and that we architects and developers loathe to create.
The Test Manager is great and while some people are against generating tests after the fact, it's a nice thing to quickly get a stub created from your Domain Entity into a test project. Each run of the tests is done and results are saved. You can create your own test lists and load other test lists (like ones created for common assemblies) into your test manager to run along with it. This allows you to split up, divide and conquer any view of how you want to test your system.
Basically the test manager being built into the system can support programmer unit tests, manual tests, automated web tests, and generic tests of any kind. I see this as giving products like QuickTestPro and even TestDirector a run for their money. Combine this with the Team Server features and connectivity and you've got yourself a full suite of tools in one package. Crunch the numbers and I think you'll find that while most people gasp at the $10k/seat price tag of the Suite, add up all those other licenses you have for the various products out there (bug tracking, test management, source control) and you'll find it's about the same in the grand scheme of things.
All in all, an excellent product with lots of new possibilities with the Domain Specific Lanugage modellers and designers. I'm looking forward to poking at it over the next few months as we wait in antici....pation for the final release.