When it comes to software configuration management (SCM), .NET developers have a wide array of choices ranging from free, open-source solutions to expensive, proprietary products. Choosing the right tool for the job can make the difference between hitting project milestones in a timely manner and slipping far past the intended ship date. Most SCM solutions differentiate themselves with exclusive features such as robust, scalable distributed capabilities and highly secure change management triggers. Specifically for .NET programmers, one key ingredient in whatever product is selected is its tight integration with the Visual Studio environment. Additionally, such integration must work seamlessly by making the check-in/check-out, merge, diff, and branching functions as intuitive as the standard Save As file option. Finally, such a product shouldn't get in the way of a developer's productivity by saddling the developer with unnecessary modal dialogs, menus, and nonstandard workflows. PureCM (www.purecm.com) is a cross-platform SCM solution that meets many of these criteria.
PureCM is sold in two editions, Standard and Professional. The Standard edition supports server-centric tracked revisions, fast client file distribution via compression, atomic commits, CVS/SVN–style copy-modify-merge and rollback functions, pre/post commit triggers for autonomous workflow scripting needs, private multiuser workspaces for better code isolation, a three-way merge tool to resolve code conflicts, granular ACL-based user/group management with built-in Windows Active Directory (AD) support, and integration with Visual Studio, Eclipse, and some third-party products.
The Professional edition adds automated merging between streams (aka branches) for facilitated parallel development, caching servers for distributed teams, and most importantly, an integrated issue tracking and reporting solution. Although PureCM's issue tracking capabilities aren't as extensive as other commercial dedicated issue tracking products, the tight integration with PureCM-managed code streams adds a valuable amount of efficiency to problem identification, code assignment, and issue resolution. Likewise, the reporting module is straightforward and contains the most pertinent information most project managers and developers need when assessing a project's state in the overall application life cycle. For additional comparisons between the Standard and Professional editions, go to PureCM's comparison page, at www.purecm.com/compare_editions.php.
Installation and Use
Because PureCM is a client/server-based SCM solution, the installation is a two-phase process to install each component. The server installation is painless and can be done on the same machine as the client. This configuration is useful for testing or evaluation purposes. Client deployment is just as easy; the setup process automatically installs and configures Visual Studio integration if the IDE is already installed on the client machine. PureCM's Visual Studio integration, which Figure 1 shows, provides effortless source-control functionality within the IDE.
Working with PureCM is very intuitive, especially for developers who have experience with other source-control systems. In addition to the easy GUI-based navigation, other features are just as quick to comprehend. Features such as group project folders make setting broad-stream permissions obvious and straightforward. Merges are easy as well, involving only a few mouse clicks. Like many commercial products, PureCM uses its own naming conventions for familiar operations. Fortunately, these terms make sense (e.g., Repository, Streams) and are quickly accessible. Figure 2 shows PureCM's Repository and Streams organizational elements.
Third-party plug-in support is also available. Current support includes integration for ThoughtWorks' CruiseControl.NET continuous integration server and Axosoft's OnTime project management suite. In addition, PureCM's own deployment service allows non-PureCM clients to access PureCM server-hosted files.
In addition to supporting the .NET platform, PureCM also provides cross-platform functionality via its Java implementation and Eclipse plug-in offerings. Although not as attractive as its Visual Studio counterpart, the Eclipse plug-in is just as feature-rich and functional. Thus, for development shops that deliver both Java and .NET solutions for clients, PureCM's multisystem, multilanguage support is a welcome benefit that minimizes not only administrative overhead but also the hassles of dealing with a different SCM interface—and possibly even back-end administration, depending on the type of project being managed.
Give It a Whirl
To assist in the evaluation process, the PureCM website provides a quick tour of the product (www.purecm.com/quicktour.php), several video demonstrations (www.purecm.com/videos.php), and online product documentation (www.purecm.com/documentation.php). PureCM customers can also access the company's online knowledge base and online support ticket and contacts at support.purecm.com.
Of course, if a .NET application development team requires only a simple source-version-control system, free alternatives such as Subversion or Git are more than adequate for the job. In fact, one of the criticisms against PureCM is its lack of import capability of more recent source-control systems, such as SVN or Git. One could argue that such an import is unnecessary because the files can simply be targeted for inclusion. Unfortunately, this approach negates any previous revisions. At least the product has import facilities for older version-control solutions, such as Visual SourceSafe, CVS, and Perforce.
If broader functionality, regulatory adherence, and robust Visual Studio IDE integration are paramount, PureCM delivers the goods at a reasonable per-seat price ($499 per concurrent user). Interested developers can visit www.purecm.com/downloads.php to download the client and server installers for their target OS. The installation includes a 30-day trial license for 5 users. The setup also includes a demo project formatted for Visual Studio 2005, which also works with Visual Studio 2008. Overall, developers looking for a commercially supported, inherently secure, easy-to-manage, and fair-market-priced source-control management solution should take a closer look at PureCM.
Mike Riley ([email protected]) is an advanced computing professional specializing in emerging technologies and new development trends. He is also a contributing editor for DevConnections.
Editor's note: PureCM has announced that it will add release planning capabilities to its solution with its 2010-1 release in spring 2010. You can preview the upcoming release and get the beta download on the PureCM website.