When I lived in Seattle I was a member of a group of software geeks that played poker the evening of the full moon every month. The group has been in existence for well over a decade and still exists today. One of the founding members of the group, Bob Wallace, was one of the original employees of Microsoft (you can see him in that old 70s disco-looking picture that many readers are familiar with) and he was one of the proponents of a movement known as shareware. In the early 80s, Bob and a number of software developers released applications like PC-File, PC-Talk, and in Bob's case, PC-Write, in trial form. These trial applications were functional enough that a user could get a feel for the product before actually purchasing it. Generally they were not time locked but had functionality that would be enabled should the user decide to buy. The “share” part of shareware allowed users to copy these applications for other users to try.

Around the same timeframe, Richard Stallman announced the GNU Project to promote the concept of free software. This free software would go one step further than just the release of compiled binaries. The GNU Project shared the source code as well. This was an almost unheard of concept back in the primordial ooze that was the early PC software business. This movement started with the goal of creating software development tools and finally in 1992 the movement came up with a full blown software kernel known as Linux.

Open Source Software Development in 2009

Now in 2009 there are literally hundreds (if not thousands) of open source software projects ranging from operating systems (Linux), to Web application frameworks (Rails) and even .NET Web portals (DotNetNuke). The world of open source software couldn't be better.

This issue of CODE Magazine represents a small window into the world of open source applications that you may find valuable in your everyday development practices. Tom Opgenorth introduces Mono, which is an open source version of the .NET Framework and compilers that will run on multiple platforms including Windows, Linux, and OSX. Rick Strahl continues his article on jQuery, which has been adopted into Visual Studio by Microsoft. Alongside these articles you'll find articles on the open source ORM-NHibernate, the continuous integration server Hudson, and the IoC container, Castle Windsor.

I could have filled this issue with articles on tons of other high quality open source applications but we only have so many pages. The following table lists some of the other high quality open source projects you may want to consider:

Other Applications

Other applications to consider (which we've discussed in CODE Magazine) include: NAnt (http://nant.sourceforge.net/) a build tool, NUnit (http://www.nunit.org/index.php) a testing framework, and Subversion (http://subversion.tigris.org/) a software source code control system.

Open source software has reached great heights and awareness among the software development community and the consumer community as well. One big benefit of open source software has been its competition with the closed source world. Applications like FireFox helped drive Microsoft to create Internet Explorer 7 and 8. Another example is the Web installer framework underneath Microsoft's Web App Gallery (http://www.microsoft.com/web/gallery/). This installation tool reminds me a lot of the package managers found in Linux distributions. Some closed source companies are recognizing the value of open source. For the CODE Magazine audience, you can see the value that Microsoft puts on open source in different ways. Microsoft supports jQuery as a contributor and with full-fledged customer support. In addition, Microsoft released the AJAX Control Toolkit with full source code. These are just two areas where a history of closed source is becoming more open.

I hope you find some useful tools in this issue of CODE Magazine and hopefully it opens your eyes to the rich open source software landscape out there.

Product URL Description
SharpZipLibhttp://www.icsharpcode.net/OpenSource/SharpZipLib/SharpZiplib is an open source compression library that supports the Zip, Gzip, Tar and Bzip compression formats.
PDFSharphttp://pdfsharp.com/PDFSharp is a library you can use to create or manipulate PDF documents from your applications. I like this library because it has a lot of similarities with the System.Drawing namespace.
DotNetNukehttp://www.dotnetnuke.com/ DotNetNuke is an open source Web portal built on the .NET Framework. This project has a community that would rival any of the largest open source projects.
Blogengine.nethttp://www.dotnetblogengine.net/ Blogengine.net is a small yet powerful blog engine. This application has a rich ecosystem including theme and extension developers.
Seleniumhttp://seleniumhq.org/ Selenium is a great tool for automating the testing of Web applications.