Today, Scott Willhite announced the release of a C# version of DotNetNuke in a blog post entitled DotNetNuke source in C#. Yeah, Really. If you haven’t read it yet, then I suggest you do so now. Then come back and continue reading this post to find out what my opinion is on the subject.
Now that the announcement is official, I wanted to also make my opinion public, here on my blog.
Prior to this announcement, the core team had been discussing this move in a private forum. Opinions on the subject were many and on both sides of the fence.
DotNetNuke in C#
Let’s be clear though, the main motivation for this move is to increase adoption of the platform. Having a C# version will not only encourage C# developers to take a hard look at DotNetNuke. But it would also imply that there is a pretty good chance of having DotNetNuke work in Unix environments through the compilation of the framework in mono. The SQL Server requirement would still be an issue here, as well as other environment compatibility differences (such as file system) that are yet to be worked out, but for the most part it is a very plausible endeavor. The problem here is that the effort to get all this fleshed out is yet to be scoped, which is where I start to get opinionated. Read on.
Several team members have voiced their own opinions. Initially i sat quietly and watched the thread, but ultimately decided it was time for me to share my opinion. So, here was my honest take on it (slightly modified to remove any private & sensitive data):
[box type=”note” style=”rounded”] … If I may chime in here also… I would be saddened to see the VB version become the 2nd class citizen. For all these years DotNetNuke was living proof that you could do great things with VB and it was a great way [to showcase and ] to tell people: look at DotNetNuke, it is written in VB, so shut yer trap with all that “C# is better than VB” rhetoric.
Furthermore, with .NET 4.0 and language parity, the whole C# VS VB.net discussion is moot, which is why I am even more surprised by this move. As to the Unix argument, well, suck it mono! … I mean come on, what is the market share of mono/unix users? And is it worth such a paradigm shift just to go after that demographic when there are still millions of Windows boxes out there yearning for DotNetNuke?
As [Removing name for anonymity] rightly pointed out, it won’t work out of the box anyway. All that means is that focus will yet have to shift to make that work rather than improving the framework.
Anyway, this is just my opinion on the matter and I’d hate to see good efforts wasted on maintaining two versions of the platform rather than see those same efforts applied where the product really needs it.. UI, UX, performance, and feature set.
For the record, I am VB guy, always have been. I am a VB MVP as well, so naturally my tendency is to defend the language, but the truth is that I also write code in C#. Furthermore, if DotNetNuke was originally written in C#, I would be having the same sentiments and opinions about translating it into VB. The issue here is purely one of efficiency. I would rather see efforts go into improving the product rather than spending the time managing two code-bases. As simple as that.
One more point here to make is that not too many people modify the core source of DotNetNuke anyway. Doing so simply denies one an upgrade path. Without, of course, the pain of retrofitting the changes made during each upgrade. The way to extend DotNetNuke is through modules, extensions, skin objects, skins and providers. all of which you can do with either C# or VB. This is nothing new, and has been the case all along.
That all being said, I do not control the future nor DotNetNuke’s actions. So I will keep an open mind and watch how this goes. I hope that I was wrong in my assessment all along.
Scott has also made a forum thread available for an open discussion with the community (http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/160/threadid/369100/scope/posts/Default.aspx). There are already a few posts which you’ll notice are mixed in opinions. Some really like the idea and some do not; after all, this is the beauty of open source and community based applications.