Open Source Partner
DotNetNuke's Shaun Walker offers advice for .NET open source developers.
Shaun Walker is the creator of the popular DotNetNuke open source Web application framework for the .NET platform, a Microsoft MVP and a frequent speaker at industry conferences and events.
Redmond Developer News Editor in Chief Michael Desmond spoke at length with Walker about the genesis of DotNetNuke, his success in partnering with Microsoft on the open source project and how he thinks Microsoft can adapt to further support the burgeoning market of .NET-based open source development.
How did DotNetNuke get started?
Way back in 2001 Microsoft released a sample application called the IBuySpy Portal. It was a reference application that was written in both C# and VB.NET, and it was intended for developers to come up to speed on the new .NET platform at that time. Basically Microsoft thought that some functional samples provided good learning opportunities for classic ASP legacy developers to dig in and see some of the benefits of the new platform. I downloaded the IBuySpy Portal and began to get my feet wet.
I started adding enhancements to that app, and after about a year of doing that and sharing some of my enhancements with other members of the Microsoft developer community through the forums of the ASP.NET site, I decided that I was just going to release the entire application as a new application-an open source application. And I called that the IBuySpy Workshop.
||"In my opinion, the actual Microsoft Open Source Group seems to be more of a marketing division. They seem to be more focused on attracting some of the more popular open source solutions-that are primarily running on the Linux platform-to the Microsoft platform."
|Shaun Walker, President, Chief Architect and Co-Founder, DotNetNuke Corp.
After about three months Scott Guthrie [the corporate VP for Microsoft's Developer Division] contacted me, basically inviting me down to Redmond for a meeting with him about the application. At the meeting he explained that he saw potential in terms of building a larger community on the .NET platform among developers.
Scott was keen on providing some support to the DotNetNuke project. By support I mean establishing a more formal relationship where they included DotNetNuke in a number of their more visible marketing channels, so that it got more visibility, which really helped drive the downloads in those earlier years.
From there it just grew. Today we have about 600,000 registered users on our site and five and a half million downloads of our application. We get about 150,000 downloads per month from www.dotnetnuke.com. So it's one of the most popular open source applications in terms of downloads, regardless of platform. It's certainly the largest open source project native to the Microsoft platform at this point.
Can you talk a bit about what it was like working actively with Microsoft as a partner? What went really well and what were some of the challenges?
The DevDiv [Developer Division] at Microsoft is very open, and specifically Scott Guthrie is a visionary when it comes to emerging software dev trends. At that time he saw the benefit in having a larger, more loyal, more passionate developer community around the .NET platform and, based on its success in the J2EE community, the open source model had demonstrated it was capable of accomplishing this goal.
As part of the sponsorship of DotNetNuke, I was given a direct communications channel with the DevDiv. Obviously Scott is very busy, so at that point the community liaison assigned to me was Rob Howard. I had weekly conference calls with Rob about the status of the project, how it was progressing, and any challenges-especially technical challenges. I could bounce those off Rob as well.
So that went on for about a year and the project grew very rapidly. Obviously, Microsoft paid attention to what was happening in terms of the growth and the number of developers that were getting involved with the project, monitoring whether the open source model was something that would work on the Microsoft platform as it had on the Linux platform.
How would you describe your interactions with the various groups at Microsoft?
Microsoft has a lot of different divisions in the company, and each division treats open source a little differently. In my opinion, the actual Microsoft Open Source Group seems to be more of a marketing division. They seem to be more focused on attracting some of the more popular open source solutions-that are primarily running on the Linux platform-to the Microsoft platform. Working closely with the leaders of some of those open source projects, they work with them on compatibility and technology issues to ensure they run optimally on Windows.
But because of the focus I just mentioned, they have largely ignored the native open source solutions on the Microsoft platform like DotNetNuke. We've had very little interaction with them over time, but I guess it's not their primary focus. We're already running on Windows. So at this point we're probably not as interesting to them as trying to encourage some of the more high-profile Linux open source solutions to run on the Windows platform.
We're hoping that over time that attitude will change and that they'll provide more support for native Microsoft open source application vendors. But it doesn't seem to be within their mandate at the moment.
Do you think Microsoft is missing something important here?
I think if they truly want to develop a larger open source ecosystem on the Microsoft platform, then they do need to throw a little more support behind the vendors and developers who are building open source applications on their platform. And support can be many different things. It can be just more visibility for some of these open source solutions, more acceptance within the sales teams, financial support. I mean, there are numerous ways they could provide better support.
Another division within Microsoft obviously is the DevDiv, and that's Scott Guthrie's group. They seem to be the one that is sort of leading the charge within Microsoft, in terms of adopting some of the benefits of open source philosophy.
For example, they do a lot more public betas now. They do 'out of band' releases of some of their components, so that you don't have to wait the full release cycle of an entire product family to get access to some of the bits. Getting things out of the door quicker is definitely one of their mandates.
I really believe that Scott Guthrie understands the benefits of the open source development model and he has applied some of those techniques to his own teams internally. If you look, for example, at the MVC framework, which is currently under development, you'll notice that they recruited a number of the more prominent open source developers on the Microsoft platform. Guys like Scott Hanselman, Phil Haack, Scott Galloway and Rob Conery. Those guys were all brought into Microsoft to work on MVC. But they're all very fluent in the open source development model, because all of them had their own projects that they had developed over the last three or four years, which were open source projects on the Microsoft stack. They're applying some of these more transparent development techniques to the MVC framework.
Can Microsoft on one hand be this open source engine for developers, and on the other hold onto what it's got in all these other business areas?
Yes, I think that it's possible. Open source makes the most sense in the Developer Division, because it's developers who are most interested in getting early access to source code. Those aspects of the open source model work very well in the DevDiv group.
But nobody should think that the entire company has to adopt a completely open source philosophy. It's really a technique that should be applied to the specific areas that reap the most benefit from it. I think that it's a little bit judgmental to think that the entire company has to shift to a whole new paradigm.
Can you offer advice for open source developers looking to develop on the .NET platform?
Really, when you're starting an open source project, it has to be a solution for a fairly large problem, a problem that a large number of people are facing. It has to be a relevant project to tackle to begin with.
And it's definitely not just about throwing some code up on the Internet for people to download. It really is a lot of work managing an open source project. It's definitely as much work as it would be to manage a proprietary software product. So there shouldn't be any illusions about that.
It's definitely not as simple a process as it might seem. There's this romantic notion of open source, and then there's the practical reality of the open source development model.
How healthy is the open source outlook on the .NET platform?
In terms of the Microsoft ecosystem and whether open source is a viable option, I'd say there's a huge community on the Microsoft platform that's very interested in open source solutions. DotNetNuke has certainly identified this fact in terms of the size of our community and the number of downloads. Open source solutions are definitely just as popular as they are on the Linux platform, even though the underlying components in the stack are proprietary. What I mean is, we run on top of a proprietary Windows OS as well as a series of proprietary Microsoft infrastructure components, like SQL Server for the database.
What's it like working in SharePoint's very large shadow?
We don't cross paths with SharePoint from a competitive perspective as often as people think. In terms of the business implications, SharePoint was really designed to be more of an intranet solution, with great Microsoft Office integration capabilities. And that is still its fundamental strength today.
Although DotNetNuke can be used in an intranet environment, it was more designed as a solution for building highly functional Web sites and applications which have a presence on the public Internet. They're fundamentally very different things.
Microsoft has definitely enhanced SharePoint to be more of a developer platform in its most recent incarnation, in MOSS 2007. Honestly, I think that some of that occurred because they saw the traction that DotNetNuke was getting as a Web application framework. Developers don't want to build everything from scratch anymore, they want to use frameworks that help them deliver solutions more efficiently and take advantage of common underpinnings so that they don't have to reinvent the wheel on every project. Both SharePoint and DotNetNuke provide these capabilities to varying degrees.
If you look ahead about four years, do you think we can expect a more supportive and proactive environment for developers under .NET?
I think that given some of the changes in attitude we've seen from various units at Microsoft in recent years, there's definitely a more friendly atmosphere that's being created in regards to open source development. I do think that open source on the Microsoft platform is going to gain more acceptance over time. And I think that, like anything that's somewhat immature, it does take some time to figure out how to coexist peacefully and how to work together collaboratively.