DotNetNuke is switching to C#, uh oh

If you didn’t see Shaun’s blog post earlier this week you should give it a good read through. The post announced the fact that starting with Version 6.0 (targeted for Q2 2011) DotNetNuke will no longer be developed/released as a VB.NET Application. All development of the core platform will be in C# (this does not mean that the community modules for the platform will change languages).

Most of the feedback I have seen so far has been rather positive, most folks who use DotNetNuke on a regular basis understand that the language that the framework itself is written in really doesn’t make a bit of a difference to 99.9% of all DotNetNuke based websites. The framework is there for you to build on top of, and while it is open source, it is actually recommended by all experts that you don’t modify the “core” code of the framework, if you need to make changes you do it through the use of modules and custom providers.

Extensions (modules, providers, skins, etc) for DotNetNuke have always been language independent, you can develop your extensions in whatever language you want. I personally have developed all modules for the past 4-5 years (besides the Wiki module) in C# rather than VB.NET out of personal preference.

So the framework being VB.NET or C# shouldn’t make a difference to most people.

People have questioned the decision still, why would DotNetNuke Corporation bother spending time with the conversion? Aren’t there plenty of other things in the platform that could use the attention? What about all the “bugs” this will introduce into the platform? That is the biggest question I have seen from people so far, and I’ll be honest with you. I was one of those people, I had the very same concerns.

When the discussion to convert to C# began I was very much against it. Every one of those folks listened to me and heard my arguments. Having worked at DNN Corp for a year now, and having been part of the community for 8+ years, I know there are plenty of things in DotNetNuke that could use attention to make them better, easier to use, etc. I told Shaun, I told Rob (VP of Engineering), and I told Navin, our CEO.

Before the final decision to convert was made I made some phone calls to engineering and got myself a copy of the C# version of the upgrade package, with VERY VERY early DotNetNuke 6.0 code. I wanted to test this code out myself, I wanted to prove that moving to C# at this point in time was a bad idea.

So I downloaded one of my production websites, I got it up and running locally, and then I upgraded from v5.6.1 6.0.

Do you want to know what happened? The damn website worked….. The upgrade worked. I was very surprised. Sure there were a couple of very minor issues, a problem with the ADMIN pages, but digging through the website, my custom modules worked, my pages worked, my content was all there. My event viewer (event log) was fine, it wasn’t throwing errors, things were working.

This was very early code, sure there were a few things that still needed to be worked on (removing old VB files, etc) but the website was working, and it was working far better than I had expected it to be.

I was sold. I called Rob, I called Shaun, I apologized, I told them I was wrong, and I told them I supported the move to C# because I knew the ultimate benefits would be worth it (see Shaun’s post for those).

So, for all of you doubters out there, I totally and 100% know where you are coming from, I’ve been there, but I think that you will ultimately find that this move is going to be great for DotNetNuke.

That’s not to say there won’t be issues, there are always issues, but DotNetNuke Corporation strives to make each and ever release of the platform better, future releases won’t be any different.

If I haven’t eased your mind, or even if I have, I would encourage you to check out the CTP for V6.0 when it is available later this month. Test out the C# version, run some of your production websites through upgrades in a test environment.

We definitely need your help making sure things work, I will sure be doing a lot more testing of my websites before the official release, far more than I typically do as I generally am limited in time. I will make the time over the next month or two to make sure that I can do all that I can to make 6.0 the best release yet.

3 Comments

  • I'm a long-time C# dev; have done a little VB in my time, and given that, even after reading your article, this makes no sense to me.

    Once the code is written & compiled, does VB not become the same IL as C#?

    Your only explanation is, "I doubted, then I tried what they'd written, and it worked!" That's all well and good, but doesn't begin to explain why lay down the expense of converting a (fairly large) codebase wholly over to another language. I'm sure that qualified developers could rewrite it in IronPython or F# or (actual) Ruby on Rails, that doesn't mean you should.

    I'm not trying to be critical, I'm trying to learn from you. Is there a performance improvement by going to C# that I'm not aware of? Is it a more maintainable language for your developers? What's the actual business case for the switch? I feel like your article was going to cover that, but didn't.

    Thanks

  • Paul,

    I think you read my post from the wrong perspective. I wasn't writing it to justify WHY we were switching to C#, just that it wouldn't be as bad a thing as I (and others) thought.

    For reasons why, read Shaun's blog post (linked from mine)

  • ah, thanks. I definitely misunderstood the point of your post, and I'm sorry. Shaun's post does clear up what I was curious about, thanks.

Comments have been disabled for this content.