Despite the considerable time and resources Microsoft and the .NET community have invested in open source initiatives in recent years, it’s surprising how often the two camps are treated as antithetical to one another.
Yet the reality is that reliance upon open source development tools within the Microsoft community is significant and growing. In this article we’ll shed some insight into this widespread practice, introducing seven open source solutions embraced by millions of .NET developers around the globe.
AJAX Control Toolkit
.NET developers have a particularly rich solution at their disposal in the ASP.NET AJAX Control Toolkit. Jointly developed by Microsoft and the developer community, the AJAX Control Toolkit offers dozens of powerful controls such as a starred rating widget, modal popup window, password strength validator, and a draggable panel.
Check out the project’s page on the ASP.NET AJAX Control Toolkit for a comprehensive list of control demos, in addition to dozens of tutorials which show you how to take advantage of the toolkit’s many features.
The MVC architecture plays a central role in the modern website development, with solutions such as Ruby on Rails and the Zend Framework using MVC as the fundamental basis for framework-driven development. Thanks to the ASP.NET MVC Framework, .NET developers also have a powerful open source framework solution at their disposal. Supporting MVC tier separation, test-driven development, and a series of best practices typically summarized as the “convention over configuration” paradigm, the ASP.NET MVC Framework offers .NET developers a powerful solution for building complex websites. Further, because it’s .NET-based, developers can continue taking advantage of other ASP.NET features such as data caching and forms authentication. You’ll also find a number of other projects created to further enhance the ASP.NET MVC Framework’s capabilities, including notably MvcContrib, which extends the ASP.NET MVC framework to include features such as UI helpers and model binders.
The ASP.NET MVC Framework website provides newcomers with an impressive array of learning resources, including a video-based tutorial series which guides viewers through the creation of a sample web application.
The complex nature of today’s software has required the software development community to reconsider the development process, introducing practices which both reduce development time and increase quality. This reevaluation has led to numerous best practices which have become widespread within enterprise environments, notably test-driven development and continuous integration. The latter practice attempts to minimize the time and effort involved in integrating a complex project’s many pieces by regularly and rigorously integrating the project’s components throughout the entire development process. This allows the developers to detect and resolve integration issues quickly rather than allow the problem’s complexity to grow over time.
CruiseControl. Offering tools for automating the build process, browsing the build results, and producing build reports, CruiseControl has become such a popular continuous integration solution that a large extension ecosystem has emerged.
With businesses busy migrating all aspects of their operations online, the need for powerful web-based content management tools stretches far beyond those used to update a website’s marketing copy. Indeed, today’s website is often a conduit for not only selling a business’ products and services, but also managing sales leads and other contacts, maintaining documentation, and serving multimedia such as pictures and video. The most effective way to manage and organize these myriad types of content is through a centralized content management tool. One of the most popular such solutions is DotNetNuke, a powerful .NET-driven content management platform used by hundreds of thousands of small businesses and Fortune 500 corporations alike around the globe.
The 2002 release of .NET Framework 1.0 represented a watershed in the history of software development, as among other features it provided developers with the ability to create applications using any language which supported the .NET Common Language Runtime. Not surprisingly, Microsoft understandably targeted the Windows operating system as the sole platform for running .NET applications, leaving those running Linux or OS X in the dark. Yet because .NET was based on a series of published standards, a group of enterprising developers created the Mono project which brought .NET capabilities to non-Microsoft platforms.
Be sure to check ut the Mono project website for more information, in addition to links to developer resources such as Mono-specific tools for Microsoft Visual Studio.
Even novice Java and .NET developers are well acquainted with the code and compile development cycle, a process which becomes increasingly time consuming and tedious as the project grows in size and complexity. Tired of dealing with a growing jumble of build difficulties, developer James Davidson created Ant, a build tool for Java projects which subsequently became the most diffuse build solution for the Java community. A subsequent tool named NAnt brings similar capabilities to the .NET community.
Using NAnt you can create build scripts which automate all aspects of your .NET project’s build process, ranging from executing tests to creating documentation. See this list for a complete breakdown of natively supported tasks.
Despite the ubiquitous use of relational databases within all sectors of software development, the relationship between developer and database is often a rocky one. The friction arises due to the difficulties involved in effectively transforming data passed between the application and database into formats supported by the respective components. Developers have gone to great lengths to create solutions which do much of the heavy transformative lifting for them, notably within object-relational mapping (ORM) frameworks such as Hibernate.
The NHibernate website offers an enormous number of useful resources which can help you get started using this powerful ORM solution, including a detailed manual.
Are you using a .NET open source project not listed here? Tell us about it in the comments!