One of the topics that Scott Guthrie and I discussed in our early conversations was the issue of product branding. IBuySpy Workshop achieved its early goals of providing a public reference to the IBuySpy Portal community. This resulted in an influx of ASP.NET developers who were familiar with the IBuySpy Portal application and were interested in this new open source concept. But as the code bases diverged, there was a need for a new project identity - a unique brand that would differentiate the community and provide the mechanism for building an internationally recognized ecosystem. Research of competing portal applications on other platforms revealed a strong tendency toward the "nuke" slogan.
A secondary issue that was not addressed during the early stages of the project was licensing. The original IBuySpy Portal was released under a liberal Microsoft EULA license that allowed for unrestricted usage, modification, and distribution. However, the code base underwent such a major transformation that it could hardly be compared with its predecessor. Therefore, when the IBuySpy Workshop application was released, I did not include the original Microsoft EULA, nor did I include any copyright or license of my own. Essentially this meant that the application was in the public domain. This is certainly not the most accepted approach to an open source project and eventually some of the more legal-savvy community members brought the issue to a head. I was forced to take a hard look at open source licensing models to determine which license was most appropriate for the project.
The next major milestone in the project's open source evolution occurred in the summer of 2003. Up until this point, I had been acting as the sole maintainer of the DotNetNuke code base, a task that was consuming 110 percent of my free time as I feverishly fixed bugs and enhanced the framework based on community feedback. Still, I felt more like a bottleneck than a provider in spite of the fact that I was churning out at least one significant release every month leading up to this point. The more active community members were becoming restless due to a lack of direct input into the progress of the project. In fact, a small faction of these members even went so far as to create their own hybrid or "fork" of the DotNetNuke code base that attempted to forge ahead and add features at a more aggressive pace than I was capable of on my own. These were challenging times from a political standpoint because I was eventually forced to confront all of these issues in a direct and public manner - flexing my "benevolent dictator" muscles for the first time - an act I was not the least bit comfortable performing. Luckily for me, I had a number of loyal and trustworthy community members who supported my position and ultimately provided the backing to form a strong and committed Core Team.
Early in the project history, I was approached by an individual from Germany with a request to maintain a localized DotNetNuke site for the German community. I was certainly not na�ve to the risks of another source code distribution at this point, and I told him that it would be fine so long as the site stayed consistent with the official source code base, which was under my jurisdiction. This was agreed upon, and in the coming months I had periodic communication with this individual regarding his localization efforts. However, as time wore on he became critical of the manner in which the project was being managed, in particular the sole maintainer aspect, and began to voice his disapproval in the public forum. There was a group who believed that there should be a greater degree of transparency in the project - that developers should be able to get access to the latest development source code at anytime, and that the maintenance of the application should be conducted by a team rather than an individual. He was able to convince a number of community members to collaborate with him on a modified version of DotNetNuke, a version that integrated a number of the more popular community enhancements available, and called it DotNetNuke XXL.
Emerging from the XXL dilemma, I realized that I needed to establish some legal protection for the long-term preservation of the project. Because standard copyright and the MIT license offered no real insurance from third-party threats, I began to explore intellectual property law in greater detail. After much research and legal advice, I decided that the best option was to apply for a trademark for the DotNetNuke name. Registering a trademark protects a project's name or logo, which is often a project's most valuable asset. After the trademark was approved it would mean that although an individual or company could still create a fork of the application, they legally could not refer to it by the DotNetNuke name. This appeared to be an important distinction so I proceeded with trademark registration in Canada (because this was the country in which Perpetual Motion Interactive Systems Inc. was incorporated).
In August 2003, I came to an agreement with Microsoft regarding a sponsorship proposal for the DotNetNuke project. In a nutshell, Microsoft wanted DotNetNuke to be enhanced in a number of key areas with the intent being to use the open source project as a means of demonstrating the strengths of the ASP.NET platform. Because these enhancements were completely congruent with the future goals of the project, there was little negative consequence from a technical perspective. In return for implementing the enhancements, Microsoft would provide a number of sponsorship benefits to the project including web hosting for the www.dotnetnuke.com website, weekly meetings with an ASP.NET Team representative (Rob Howard), continued promotion via the www.asp.net website, and more direct access to Microsoft resources for mentoring and guidance. It took five months for this sponsorship proposal to come together, which demonstrates the patience and perseverance required to collaborate with such an influential partner as Microsoft. Nonetheless, this was potentially a one-time offer, and at such a critical stage in the project evolution it seemed too important to ignore.
In September 2003, with the assistance of the newly formed Core Team, we embarked on an ambitious mission to implement the enhancements to DotNetNuke suggested by Microsoft. The problem at this point was that in addition to the Microsoft enhancements, there were some critical community enhancements, which I ultimately perceived as an even higher priority if the project should hope to grow to the next level. So the scope of the enhancement project began to snowball, and estimated release dates began to slip. The quality of the release code was also considered to be so crucial a factor that early beta packages were not deemed worthy of distribution. Ultimately, the code base evolved so much that there was little question the next release would need to be labeled version 2.0. During this phase of internal development, some members of the Core Team did an outstanding job of supporting the 1.x community and generating excitement about the next major release. This was critical in keeping the DotNetNuke community engaged and committed to the evolving project.
In January 2004, another interesting dilemma presented itself. I received an email from an external party, a web application security specialist who claimed to have discovered a severe vulnerability in the DotNetNuke application (version 1.0). Upon further research, I confirmed that the security hole was indeed valid and immediately called an emergency meeting of the more trusted Core Team members to determine the most appropriate course of action. At this point, we were fully focused on the DotNetNuke 2.0 development project but also realized that it was our responsibility to serve and protect the growing DotNetNuke 1.0 community. From a technical perspective, the patch for the vulnerability proved to be a simple code modification.
After six months of development, including a full month of public beta releases and community feedback, DotNetNuke 2.0 was released on March 23, 2004. This release was significant because it occurred at VS Live! in San Francisco, California, a large-scale software development event sponsored by Microsoft and Fawcette publications. Due to our strong working relationship with Microsoft, I was invited to attend official press briefings conducted by the ASP.NET Team. Essentially, this involved up to eight private sessions with the leading press agencies (Fawcette, PC Magazine, Computer Wire, Ziff Davis, and so on) where I was able to summarize the DotNetNuke project, show them a short demonstration, and answer their specific questions. The event proved to be spectacularly successful and resulted in a surge of new traffic to the community (now totaling more than 40,000 registered users).
To demonstrate the effectiveness of the skinning solution, I commissioned a local web design company, Circle Graphics in Abbotsford owned by Brad Haima, to create a compelling design for the www.dotnetnuke.com website (see Figure 1-8). As an open source project, I felt that I could get away with an unorthodox, somewhat futuristic site design and I was impressed by some of Circle Graphics' futuristic, industrial concepts I had seen.
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 Partner and CTO at Arrow Digital.