When I started the DotNetNuke project back in 2003 I needed a website for managing the open source community. I was determined to "eat my own dogfood" so I used the very early versions of DotNetNuke to launch www.dotnetnuke.com and then upgraded the site through each successive release. This approach allowed me to experience the product in a real world environment... which, of course, was a double-edged sword.
Last week I attended the //build conference in San Francisco. On one of the evenings, Microsoft extended an invitation to user groups around the Bay Area to come to their new open space for developers at 680 Folsom Street known as the Reactor. The party was focused on open source and community engagement and I was privileged to kick off the Lightning Talks with a short presentation about the .NET Foundation. The goal of my presentation was to promote the Foundation and try to clear up any misconceptions which may exist about its purpose or mission. I also used the opportunity to share a story about how a presentation that I did for a Bay Area user group ultimately led to the initial round of funding for DotNetNuke.
To set the stage it was important to note that there would be no need for a .NET Foundation if Microsoft had not created the .NET Framework. Since its release in 2001, the .NET Framework has had tremendous adoption - with current estimates of more than 1.8 billi ...
As much as DNN is an open source software application written for the Microsoft ASP.NET platform, it is also an online community with developers, end users, vendors, and volunteers - all working together collaboratively in a rich and diverse ecosystem. This chapter attempts to capture the essence of the project, expose its humble beginnings, provide insight into its evolution, and document its many achievements, but not shy away from some of the hard lessons learned in the process. The lifeblood of any community is its people; therefore, it is a distinct honor and privilege to be able to share some of the emotion and passion that have gone into the DNN project so that you may be able to establish a personal connection with the various stakeholders, which may ultimately motivate you to join this vibrant ecosystem.
In 1979, when I was 9 years old, my family relocated from Kelowna, British Columbia, Canada, to Ashcroft, a tiny community in the south-central interior of British Columbia with a population of approximately 1500 people. We relocated with a grand vision - to start a commercial vineyard. My grandfather had owned a vineyard in Kelowna and he had sold it with the idea that the hot arid climate in Ashcroft, combined with cheap abundant land, would be a perfect environment for him and his children to establish a large, successful vineyard.
In 2001-2002, I was working for a medium-sized software consulting company in Abbotsford, British Columbia, that was providing outsourced software development services to a variety of large U.S. clients specializing primarily in e-Learning initiatives. The internal push was to achieve CMM 3.0 on a fairly aggressive schedule so that we could compete with the emerging outsourcing powerhouses from India and China. As a result there was an incredible amount of focus on process and procedure and somewhat less focus on the technical aspects of software engineering. Because the majority of the client base was interested in the J2EE platform, the company primarily hired resources with Java skills - leaving me with my legacy Microsoft background to assume more of an internal-development and project-management role. The process improvement exercise consumed a lot of time and energy for the company, attempting to better define roles and responsibilities and ensuring proper documentation throughout the project life cycle. Delving into CMM and the PMBOK were great educational benefits for me - skills that would prove to be invaluable in future endeavors. Ultimately, the large U.S. clients decided to test the overseas outsourcing options anyway, which resulted in severe downsizing for the company. It was during these tumultuous times that I recognized the potential of the newly released .NET Framework (beta) and decided that I would need to take my own initiative to learn this exciting new platform to preserve my long-term employment outlook.
Realizing the educational value of sample applications, Microsoft built a number of source projects that were released with the .NET Framework 1.0 Beta to encourage developers to cut their teeth on the new platform. These projects included full source code and a liberal End User License Agreement (EULA), which provided nearly unrestricted usage. Microsoft co-developed the IBuySpy Portal with Vertigo Software and promoted it as a "best practice" example for building applications in the new ASP.NET environment. Despite its obvious shortcomings, the IBuySpy Portal had some strong similarities to both the Microsoft SharePoint Portal, Content Management Server, as well as other open source CMS applications on the Linux/Apache/mySQL/PHP (LAMP) platform. The portal allowed you to create a completely dynamic website consisting of an unlimited number of virtual "tabs" (pages). Each page had a standard header and three content panes - a left pane, middle pane, and right pane (a standard layout for most portal sites). Within these panes, the administrator could dynamically inject "modules" - essentially mini-applications for managing specific types of web content. The IBuySpy Portal application shipped with six modules designed to cover the most common content types (announcements, links, images, discussions, html/text, and XML) as well as a number of modules for administrating the portal site. As an application framework, the IBuySpy Portal (see Figure 1-1) provided a mechanism for managing users, roles, permissions, tabs, and modules. With these basic services, the portal offered just enough to whet the appetite of many aspiring ASP.NET developers.
The second critical item that Microsoft delivered at this point in time was a community forums page on the www.asp.net website (see Figure 1-2). This forum provided a focal point for Microsoft developers to meet and collaborate on common issues in an open, moderated environment. Prior to the release of the forums on www.asp.net, there was a real void in terms of Microsoft community participation in the online or global sphere, especially when compared to the excellent community environments on other platforms.
On December 24, 2002, I released the full open source application by creating a simple website with a Zip file for download. The lack of foresight of what this would become was extremely evident when you consider the casual nature of this original release. However, as luck would have it, I did do a few things right. First, I thought I should leverage the IBuySpy brand in my own open source implementation so that it would be immediately obvious that the code base was a hybrid of the original IBuySpy Portal application, an application with widespread recognition in the Microsoft community. The name I chose was IBuySpy Workshop because it seemed to summarize the evolution of the original application. Rather than assume individual responsibility for the project, I released IBuySpy Workshop as a product of Perpetual Motion Interactive Systems Inc., my personal consulting company. Ironically, I did not even have the domain name resolution properly configured for www.ibuyspyworkshop.com when I released (the initial download links were based on an IP address, http://18.104.22.168/ibuyspyworkshop). The second thing I did right was to require people to register on my website before they were able to download the source code. This allowed me to track the actual interest in the application at a more granular level than simply by the total number of downloads. Third, I publicized the availability of the application in the IBuySpy Portal Forum on www.asp.net (see Figure 1-3). This particular forum was extremely popular at this time; and as far as I know, nobody had ever released anything other than small code snippet enhancements for general consumption. The original post was made on Christmas Eve, December 24, 2002, which had excellent symbolism in terms of the application being a gift to the community.
Shaun Walker has 25+ years professional experience in architecting and implementing enterprise software solutions for private and public organizations. Shaun is the original creator of DotNetNuke, a Web Application Framework which is one of the pioneering open source software applications native to the Microsoft platform. He was one of the original founders of DNN Corp, a commercial software company providing products, services, and technical support for DotNetNuke, which raised 3 rounds of venture capital from top tier Silicon Valley investors. Based on his significant community contributions he has been recognized as a Microsoft Most Valuable Professional (MVP) as well as an ASPInsider for over 10 consecutive years. He was recognized by Business In Vancouver as a leading entrepreneur in their Forty Under 40 business awards, was a founding member of the Board of Directors of the Outercurve Foundation, and is currently the Chairman of the Advisory Council for Microsoft's .NET Foundation. Shaun is currently a Technical Director and Enterprise Guildmaster at Cognizant Softvision ( Arrow Digital ).