Eric Nelson, a Developer Evangelist for Microsoft and Technical Editor of MSDN UK Flash, has compiled a list of 23 .NET open source projects mostly based on recommendations sent by UK developers. Other great projects did not make it into the list, while Microsoft’s contribution include: ASP.NET MVC, DLR, IronRuby, IronPython, MEF.
Eric tried to incorporate only one testing framework, one mocking framework, etc., even though more than one were submitted. His list contains the following projects:
- [TEST] xUnit.net - One of several very good testing frameworks to aid with TDD.
- [TEST] RhinoMocks mocking framework - Ease testing by allowing the developer to create mock implementations of objects.
- [TEST] White for automation of Windows applications - Programmatically drive Windows applications.
- [TEST] Gallio Automation Platform - Works with many testing frameworks including MSTest, xUnit, NUnit and MbUnit.
- [DATA] Fluent NHibernate - Fluent NHibernate lets you write mappings in strongly typed C# code.
- [OOP] StructureMap Dependency Injection/Inversion of Control - Enable looser coupling between classes and their dependencies.
- [OOP] Managed Extensibility Framework - Make the shift from applications being statically compiled to dynamically composed.
- [APPFX] s#arp architecture for web applications - Foundation for rapidly building web applications using ASP.NET MVC with NHibernate.
- [APPFX] OpenRasta REST based framework for building web applications - Simplify exposing a REST based API to your application.
- [APPFX] CSLA.NET Application Framework - A comprehensive framework for .NET development.
- [APPFX] Spring.NET Application Framework - A comprehensive framework for building web applications.
- [RUNTIME] Mono enables .NET on Linux and Mac - Use those .NET skills to target Linux, BSD and OS X.
- [UTIL] Sandcastle Help File Builder - Create MSDN-style documentation from .NET assemblies.
- [HELPER] EasyHook for Windows API Hooking - Extend unmanaged code (APIs) with managed code.
- [HELPER] Json.NET for working with JSON formatted data - R/W using the JsonReader and JsonWriter or serialize your .NET objects with a single call.
- [HELPER] Excel Data Reader for Excel 97 to 2007 - Read Excel files straight into a dataset.
- [HELPER] #SNMP Library - A natural API interface to encapsulate SNMP functions.
- [HELPER] DotNetZip Library - A great ZIP library plus samples.
- [HELPER] Visio Automation Library - Automate Visio from C#, Visual Basic and more.
- [HELPER] PHPExcel is not just about Excel! - PHP classes to r/w Excel 2007, PDF, HTML and more.
- [HELPER] Argotic Syndication Framework for RSS, Atom, OPML and more - Makes the reading and writing syndicated content in common formats very easy.
- [HELPER] NLog logging library - Easily write diagnostic traces from your application.
- A great directory of C# Open Source software - Nicely indexed directory of libraries, frameworks and tools.
Other great projects submitted which did not make it into the final list:
Some substantial contributions from Microsoft under the MS-PL license are:
- ASP.NET MVC Open Source
- .NET Dynamic Language Runtime (DLR)
- IronRuby
- IronPython
- Silverlight Toolkit
- Ajax Control Toolkit
- Managed Extensibility Framework (MEF)
MS-PL is an OSI approved license and characterized by GNU as a free software license which allows anyone to see the source code, modify it and share the modifications with others. Furthermore, the license does not limit the code to run only on Windows, opening the possibility to port it to other operating systems. Two such examples are Mono (.NET on Linux) and Moonlight (Silverlight on Linux). A plug-in has been created for MonoDevelop to use ASP.NET MVC on Linux and Mac OS X.