Today IWeb reached 1000 members. This is not a big number because the DotNetNuke project can grow by 1000 members in a single day. However, IWeb is just a small project that provides code to call web service methods inside DotNetNuke. It is not really designed for end-users. When a project with such a small user base reaches 1000 members it says a lot about the health and growth of the main DotNetNuke project.
This milestone sticks out for me personally because IWeb started as a small idea. It has grown and taken a life of its own. Eventually it has grown bigger than me and taught me a lot about what Open Source is really about.
Initially IWeb was just a code sample. Nearly two years ago, I needed to call a web service that was inside a DotNetNuke module. I found an article on wwwcoder.com. My example used the new (at the time) WSP dynamic compilation model so I decided to publish the code.
After I published the code a lot of discussion with Shawn Mehaffie, Andrew Nurse, and Rutger Buijzen led to the creation of a method to secure the web service methods. IWeb allows you to secure each individual method by role and to optionally encrypt the transmission.
Then I had what I thought was a brilliant idea. I could create a “mini-framework” that would allow developers to create web service methods and share them with other developers. This “bright idea” stands out because it was a total failure. Ian Lackey is the only person to ever contribute any web service methods to the project. However the methods he contributed were for file management. His web service methods, together with a Windows Forms client he also provided, allow you to upload and download files into your DotNetNuke site through web services.
It was Ian’s contribution which took the project from about 200 members in its first year, to 1000 members 9 months later. “Web service methods” is an abstract idea, but moving files without FTP using a windows forms client is useful and exciting.
In his desire to allow for large file uploads via web services, Ian started work on IWebCF which is a version of IWeb that uses Windows Communication Foundation. His expert grasp of the complexities of implementing WCF led me to the decision to step aside and name him the project leader of the IWeb project.
The experience of the IWeb project and its unanticipated evolution has led me to two conclusions:
- It’s not the code it’s the people. IWeb grew not because I wrote a good module; it grew because of the influence of its members. I would not have put in the role based security had Shawn not suggested it. I considered a simple file upload but it was Ian who decided to make a full featured file manager and took the time to make it a reality.
- An Open Source project can only survive when its team uses the project regularly themselves. We take for granted that the DotNetNuke team uses DotNetNuke not only for DotNEtNuke.com but in their personal and professional projects. This allows you to be constantly dedicated to a project and to continually fix it. With IWeb, I needed to constantly update the security methods because I needed them for my DotNetNuke AJAX projects and later my Silverlight code. The last major addition I made was a C# version of IWeb because... well basically *I* needed it for my own use. Ian spent a massive amount of time working on IWebCF challenges because he wanted to use WCF with DotNetNuke.
Today the majority of my time is spent working on a DotNetNuke module of SilverlightDesktop.net. This is a project that borrowed all of its web service code from the IWeb project. This web service code represents about 30% of its current code. I have another project in the planning stages that may need to use WCF certificates so don’t be surprised if you see me “getting my hands dirty” with IWebCF in the future.
A small idea now has 1000 people joined in a common purpose and desire. I find that exciting.