Advertisement
To print: Select File and then Print from your browser's menu
-------------------------------------------------------------- This story was printed from ZDNet Australia. --------------------------------------------------------------
Inside Visual Studio 2005 Team System

By Scott Robinson, TechRepublic
November 23, 2005
URL: http://www.zdnet.com.au/insight/software/soa/Inside-Visual-Studio-2005-Team-System/0,139023769,139223675,00.htm


TechRepublic
Consider the real productivity gains you can achieve with the upcoming Team System version of Visual Studio 2005.

Everybody talks about collaborative development tools, and heaven knows you can't surf the major developers' for 10 minutes without getting hit by banners trumpeting the latest. We can't fault Microsoft for wanting a piece of that action; but we need more than just a collaborative environment. For most IT shops, collaborative development is something in the future, something not yet being done. What is needed is a collaborative solution that:

  • is tightly integrated with tools already in use
  • is highly intuitive, and
  • offers a new development methodology that doesn't represent abandonment of every process already in place.

Visual Studio Team System is Microsoft's response. The concept is very articulately defined, the up-side being that it will provide all the structure a team might require, all the tracking tools needed to manage the effort, and tools for every collaborative purpose. The downside is that Microsoft is once again going several steps too far in deciding how we should do things. Will it work for your team? It's well worth a look. For myself, I'm hoping it gets a serious audition in my current assignment, since the collaborative tools in place at the moment aren't getting the job done by a long shot.

The concepts driving Team System need some fairly elaborate exposition in and of themselves, and aren't undertaken here: instead, here's an overview of noteworthy features -- some, new and innovative, and some expected but improved -- to stir your thinking on Team System as a possible direction for your shop.

1. Architectural diagrams
IT developers (and managers, and executives), write this word on your foreheads: ARCHITECTURE. The single biggest missing link in IT development today, platform aside, is the lack of proper architectural thinking in application development. This is why the world makes jokes about us involving woodpeckers.

There are far, far too many nuts-and-bolts geniuses out there who can rewrite DaVinci's Codex in T-SQL, but who think two-dimensional client-server architecture is good enough for Internet apps. To build decent apps today, and Internet apps in particular, you need more than an idea, more than good tools, more than an application-level design; you need an application architecture, a high-level framework that carefully addresses your applications' intended functionality within the context of your hardware, network, and data-source infrastructure -- and, worse yet, too many IT managers who know the buzzwords but don't yet really understand this. Too many IT development teams crash and burn, becoming full-time firefighters, because increasing user traffic chokes their database access to nothing, and because their apps simply can't be modified and enhanced within timeframes acceptable to their users.

Team System is addressing this shortfall in its Team Edition for Software Architects with a tool called Application Designer, a graphical workhorse for solution architecture. It enables users to create diagrams of application system solutions including many components of different types (i.e., apps, Web services, interfaces) and generate skeletal code in your language of choice (note that the Team Edition for Software Developers gives you the diagramming capability but not the code-generating capability). The diagram defines the connections between diagram components and allows you to constrain them as needed.

The idea (and it's a good one) is to address the different developmental needs of the architect, as opposed to the needs of managers and developers. The architect's toolkit gets more here than it is usually given, built on the VS/TS concept of "distributed application diagrams." This kit strives to capture all of the process, not just the workflow and coding, and includes architectural diagramming tools for System diagrams, Application diagrams, Deployment diagrams and Logical Datacenter diagrams (more on this last one below).

2. Leveraging the Microsoft Solutions Framework 4.0
The Microsoft Solutions Framework 4.0 (MSF) describes methodologies by which application development can be planned and implemented according to best practices. Version 4.0 is implemented in Team System, and provides you with two ready-to-go system development life cycle (SDLC) models, one for agile development and one for process improvement.

The implementations of these methodologies, Microsoft hastens to point out, are prescriptive; that is, they are not simply generalised methodologies implemented for the sake of giving you general pointers, but are instance-specific, giving your team specific action guidance based on the particulars of the application you are implementing.

Created very much with team activity in mind, MSF 4.0 provides a meta-model mechanism for detailed methodology development and implementation, put into practice by an advocacy group (fancy term for team + interested parties). Such an ambitious jump can't be perfect, and we don't expect it to be, but it's a step in the right direction, especially for an IDE software solutions provider that is notably non-agile.

3. Team role definitions and constraints
The MSF implementation invokes a Team Model that assigns all project participants a role, or combination of roles, upon which a project participant's tasking, privileges, responsibilities and constraints are based. In Team System, these roles include Project Manager, Architect, Developer, Tester, and the optional roles of Release Manager and Business Analyst.

Perhaps the single biggest consequence of a team member's role as defined in Team System is the edition of Team System they will use, which by definition constrains what they physically can and cannot do within a project or development effort. Other consequences of role include project permissions (which also enable and constrain) and advocacy assignment.

4. Project/Excel integration
Not long ago, I tried to argue a project manager into giving Microsoft Project a try. "Show me something Project can do," he replied, "that Excel can't." My response, which was not at all brief, will wait for another day -- because, whether you're a Project manager or an Excel manager, Team System will accommodate you.

The Team Foundation Server communicates directly with Microsoft Project and Excel. Managed add-ins let you launch Excel or Project from Visual Studio 2005 Team Explorer, and pass work item lists between them and the Team Foundation Server. This hand-off occurs within the context of an open project, and allows a manager to pull work item lists from the project and handle them off-line as a matter of convenience, as a spreadsheet or a project plan. (Note that in the case of Project, you need Project 2003 Pro Edition.)

5. Application designer
I've spent lots of time with BizTalk Server 2004 and its orchestration designer, and I'm sure many have spent hours with Visio, scooting shapes around and connecting them as if doodling on a conference room whiteboard. Team System's Application Designer takes it up a notch, with the ability to integrate Windows forms apps, Web services, BizTalk orchestrations (if they're deployed as Web services), databases, ASP.NET Web services and apps, external Web services, and generate code to implement the integration. Designs can be saved and are source-controlled.

6. Logical datacentre and data source management
The worst disasters in Web app design that we come across are usually the result of either a user interface design that took its data source connections for granted, or vice versa. Developers are often too much about logic and wow-factor and not enough about the logistics of data access. We need to be digging deep into the network side of things if we want a clean and efficient application.

Team System's response to this problem is a Logical Datacenter Designer, which integrates clients, Web servers, SQL Servers and any other servers into constrained, schema-driven models that permit solution architectures to truly embrace the big picture with proper attention to networking and its impact on interface with data sources. This concept is especially welcome as Web services become increasingly central to integrated application systems.

7. Software configuration management (SCM)
As projects grow more complex, the size of the disastrous pile-ups that result when code is poorly managed grows as well. Poor team communication makes it all the worse, and the lack of a well-constructed, high-level integration plan can lead to embarrassing compromises with requirements and user expectations, if not outright project failure. Software configuration management (SCM) is critical to project success today, and thankfully Team System includes it.

Source control is a given these days, but the extras included here are tracking of the work items and build management mentioned earlier. Work items covers tasks, bugs, requirements, risk, and the high-level scenario. These work items can be defined in your methodology (see #2), and have properties, making them rich objects for detailed project definition as you move through the development cycle. Your tracking of these items can be customised. Build management -- called Team Build, and based on MSBuild -- gives you a build customisation tool with compile, source control, unit testing, static analysis, binary routing, build reporting and test result reporting.

8. SharePoint Services -- create a team portal
More than a few IT shops are using SharePoint Services for team collaboration, for project tracking, sharing of documentation, even source control. Team System is a good fit for SharePoint. Versioning, check-in and -out, and security are built-in, and SharePoint is friendly to the other MS clients mentioned above.

9. Integrated testing
If you're going to design and implement from an architectural level, you need to be able to test from top to bottom. Unit testing we've already mentioned, but testing at the integration and system levels is usually done manually. Team System allows you to create and implement high-level tests and bug-tracking from Word templates that can be launched from Visual Studio 2005; there's still a human in the loop, but you can now give that process the continuity and depth that you have at the unit-test level. You also have a Generic Test Designer for creating tests that wrap other testing tools and record the results. You also have Web Test Recorder, which launches from Visual Studio and runs on Internet Explorer and captures a tester's navigation when testing Web sites.

10. System Designer
Lest it seem as though the whole point of VS/TS is to immerse you in the big picture, you can take comfort in the System Designer, which breaks an integrated application down into the Smallest Deployable Unit, whatever that might be in your particular project. The idea is to keep the components of a large application system manageable -- hard to do under the best of circumstances, in a multi-tiered system -- and yet maintain project-wide continuity throughout development.

The increased granularity at the System Designer level allows you to develop and test between components forming subsystems, in the process overriding configurations and definitions at the higher project level, if need be, and then disseminating those changes at the application level. Or, if needed, you can store the overrides for later comparison and examination, until ideal deployments at the subsystem level emerge.

TechRepublic is the online community and information resource for all IT professionals, from support staff to executives. We offer in-depth technical articles written for IT professionals by IT professionals. In addition to articles on everything from Windows to e-mail to firewalls, we offer IT industry analysis, downloads, management tips, discussion forums, and e-newsletters.

Ã,©2005 TechRepublic, Inc.


Copyright © 2009 CBS Interactive, a CBS Company. All Rights Reserved.
ZDNET is a registered service mark of CBS Interactive. ZDNET Logo is a service mark of CBS Interactive.