.NET Survival Guide: Application Lifecycle Development


Application Lifecycle Development
Application Lifecycle Management (ALM) is a critical measure of a team's maturity and development effectiveness. Even teams of only two and three can benefit from a good ALM process and the tools to support it. Fortunately, modern day development has some excellent tooling for all phases of ALM -- both on the developer workstation side and on the server side -- enabling data sharing between team members.

Tool Box

  • Team Foundation Server
  • Visual Studio 2010

Not surprisingly, Microsoft offers excellent solutions at both locations.

On the workstation, Microsoft leads the tooling with a well-established, best-of-breed IDE in Visual Studio 2010. It not only includes a fantastic code editor, but also a strong suite of additional functionality (how much functionality varies depending on which Visual Studio SKU you purchase). Additions include unit testing, code coverage, coded UI testing, static code analysis, code metrics, performance profiling, architecture design tools and IntelliTrace.

With such a plethora of excellent tools to increase the quality, perhaps the most challenging part is having the discipline -- especially with unit testing -- to use them all. In spite of the vast list, there's still room to consider additional third-party tooling such as TypeMock, NUnit, NDepends, Resharper, CodeRush, Reflector and other solutions.

Team Foundation Server (TFS) is well-established in the mainstream when it comes to sharing and collaborating with other team members. It includes several main pillars: source-code control, project tracking, automated build, collaboration software, reporting and ALM guidance (Capability Maturity Model Integration [CMMI], Agile and Scum are available via download).

As a group, TFS has one of the best offerings because of the integration between each of the pillars. For example, when checking in code you can associate a requirement (work item) with a set of code changes (changeset), triggering an automated build to verify the work and even reject the check (through gated check-in) if the build doesn't succeed. Collaboration is supported through Microsoft SharePoint, which includes support for a knowledge base in the form of a wiki and provides a launching pad to access the SQL Server reporting system, allowing team members to review ALM quality for the team project. In summary, TFS offers a best-of-breed solution for the full suite of functionality with perhaps only one contender -- a product from Atlassian Pty Ltd. -- that matches the breadth of what's available in TFS.

Even if a development team only needs a portion of the TFS suite, the individual pillars certainly have a lot to offer. However, teams willing to invest the time and energy in setup, configuration and integration may find they prefer to select from the plethora of alternative applications in the same space:

  • Source-code control: Mercurial, GIT, Subversion
  • Project tracking: Bugzilla, TFS, Mantis, JetBrains
  • Collaboration: ScrewTurn Wiki, PHP Wiki, Cloud
  • Build server: TeamCity, Cruise or CruiseControl

Most of these turnkey solutions have established mainstream status in the industry.

In Summary
Visual Studio 2010 and TFS offer a formidable array of tools and capabilities to support team-based development, with third-party tooling providing valuable ways to fill gaps.

About the Author

Mark Michaelis ( is the founder of IntelliTect and serves as the Chief Technical Architect and Trainer. Since 1996, he has been a Microsoft MVP for C#, Visual Studio Team System, and the Windows SDK and in 2007 he was recognized as a Microsoft Regional Director. He also serves on several Microsoft software design review teams, including C#, the Connected Systems Division, and VSTS. Mark speaks at developer conferences and has written numerous articles and books - Essential C# 5.0 is his most recent. Mark holds a Bachelor of Arts in Philosophy from the University of Illinois and a Masters in Computer Science from the Illinois Institute of Technology. When not bonding with his computer, Mark is busy with his family or training for another triathlon (having completed the Ironman in 2008). Mark lives in Spokane, Washington, with his wife Elisabeth and three children, Benjamin, Hanna and Abigail.

comments powered by Disqus


  • Uno Platform Ports Windows Calculator to Linux

    Uno Platform has ported the famed Windows Calculator, open sourced last year, to Linux as part of a continuing "proof point" effort to demonstrate the reach of what it describes as the sole UI offering available to target Windows, WebAssembly, iOS, macOS, Android and Linux with single-codebase applications coded in C# and XAML.

  • ASP.NET Core OData 8 Preview Supports .NET 5, but with Breaking Changes

    ASP.NET Core OData, which debuted in July 2018, is out in a v8.0 preview that for the first time supports the upcoming .NET 5 milestone release.

  • VS Code Java Team Details 5 Best Dev Practices

    Microsoft's Visual Studio Code team for Java development added a new Coding Pack for Java installer and detailed best practices for setting up a development environment.

  • Binary Classification Using PyTorch: Defining a Network

    Dr. James McCaffrey of Microsoft Research tackles how to define a network in the second of a series of four articles that present a complete end-to-end production-quality example of binary classification using a PyTorch neural network, including a full Python code sample and data files.

  • Blazor Debugging Boosted in .NET 5 RC 2

    In highlighting updates to ASP.NET Core in the just-launched second and final Release Candidate of .NET 5, Microsoft pointed out better debugging for Blazor, the red-hot project that allows for C# coding of web projects.

Upcoming Events