The battle between Microsoft and the open source community has been well documented over the years. Microsoft seems to be embracing the open source movement with its CodePlex Web site, which provides a community for sharing code and collaborating on projects. Microsoft includes its own projects on the site as well.
I offer tips for using CodePlex and discuss the type of code and projects that live on the site.
A site for sharing code and collaborating
Microsoft describes the site as "a forum to bring together developers from around the world and gives them tools, source code, and an advanced platform for designing and building software." The site was built on Microsoft Visual Studio 2005 Team Foundation Server.
CodePlex provides source control, issue tracking, discussion forums, and RSS feeds in and out of each project. This allows site members to stay in tune with the development issues that are most important to them.
Shared Source Initiative
CodePlex is just one part of Microsoft's Shared Source Initiative. Microsoft describes it as sharing source code with customers, partners, developers, academics, and governments worldwide. The Shared Source Initiative includes various licensing schemes that are beyond the scope of this article; the goal is to provide a way to easily share source code and collaborate along the same line as open source projects. It makes me wonder why Microsoft didn't just use the existing approach of the open source community, but the software company explains its relation to the open source community on the site.
You may choose to create and host a project on the site; contribute to a project; or simply use an application hosted on the site. A significant feature of the CodePlex site is the ability to host projects that do not utilize Microsoft technology. The simple requirements for a project are that it is ongoing, the source code is included, and a license type must be selected. You can use any open source license type that is currently available.
While interacting with the site as a developer (accessing source code), you must use a source control client. The list of supported clients includes a custom CodePlex Source Control Client, along with Teamprise, Team Explorer, and MSSCCI Provider.
An important aspect of using CodePlex is becoming a registered user of the site. This includes a username/password that is used to access the site. You only need to register to create or work with existing projects.
Current projects on CodePlex
The CodePlex site was launched with a handful of projects, and the numbers continue to increase. The following list provides a sampling of current projects on the site:
- AJAX Control Toolkit: A good example of Microsoft contributing to the CodePlex site. It offers Web-client components built with Microsoft's ASP.NET 2.0 AJAX Extensions.
- IronPython: A version of the popular Python programming language for the .NET platform. It simplifies the transition to .NET for Python developers.
- BlogEngine.NET: A full-featured blog engine built with ASP.NET 2.0. The current edition requires no database backend as it uses XML for data storage.
- Community Kit for SharePoint: Working with SharePoint can get confusing in a hurry as you dig deeper into the product. The Community Kit for SharePoint provides a set of best practices, templates, Web Parts, tools, and source code to simplify getting SharePoint to do what you want.
- Sandcastle Help File Builder: It fills in the gaps with Microsoft's Sandcastle documentation engine. It incorporates some NDoc-like features and provides graphical and command line-based tools to build a help file in an automated fashion. This is just one of the Sandcastle-related projects on the site.
- Flickr.Net API Library: The Flickr.Net API is a .Net Library for accessing the Flickr API. It allows you to easily include Flickr functionality in a .NET application.
- CodePlex Source Control Client: Creating new projects and contributing to existing projects requires a source control client. The CodePlex development team created their own client, which is available via this download.
- Phalanger: The PHP Language Compiler for the .NET Framework with a current version of 2.0. It allows you to develop .NET applications with the popular PHP language.
- XML Notepad: Working with XML is tedious and often confusing. XML Notepad 2007 provides an easy-to-use interface for editing and creating XML documents.
- .NET Reflector Add-Ins: A list of powerful add-ins for the .NET Reflector tool. This includes tools for code review and metrics, version comparing, and much more.
- Tower Defense: An addictive game built with the .NET Framework.
Do you think Microsoft is truly embracing the open source movement? Do you use open source applications or code in your projects? Share your thoughts.
Tony Patton began his professional career as an application developer earning Java, VB, Lotus, and XML certifications to bolster his knowledge.
---------------------------------------------------------------------------------------Get weekly .NET tips in your inbox TechRepublic's free .NET newsletter, delivered each Wednesday, contains useful tips and coding examples on topics such as Web services, ASP.NET, ADO.NET, and Visual Studio .NET. Automatically subscribe today!
Tony Patton has worn many hats over his 15+ years in the IT industry while witnessing many technologies come and go. He currently focuses on .NET and Web Development while trying to grasp the many facets of supporting such technologies in a production environment on a daily basis.