Click here to Skip to main content
15,900,461 members
Articles / Web Development / ASP.NET
Article

A conversion of the popular DotNetNuke web application to C#

Rate me:
Please Sign up or sign in to vote.
4.16/5 (23 votes)
11 May 20072 min read 185K   69   62
In an attempt to open DotNetNuke to a wider audience, I have converted the original VB code into C#

Introduction

DotNetNuke is an open source web application framework ideal for creating, deploying and managing interactive web, intranet and extranet sites. It is very well supported; just take a look at Snow Covered. Unfortunately, VB and C# programmers don't cooperate as best they should, and take a mutually exclusive choice between the languages. This is unfortunate because DotNetNuke is a very well developed framework for ASP.NET that a lot of C# programmers do not want to look at.

Purpose

In an attempt to open DotNetNuke to a wider audience, I have converted the original VB code into C#. On Oct. 28, 2006 I released the first successful build in C#. Today, Jan 2, I have fixed most of the bugs and have a decent workable copy of DNN in C#.

Lessons Learned

Throughout the course of translating the code I learned many lessons. At first guess, you might think that translating the VB code would be easy, as did I. It wasn't more than ten minutes into this project that I learned otherwise. First, I attempted to translate the code using VB Conversions and compiled the resultant source code with over 3,000 errors. This obviously wasn't going to work out. Second, I tried to use Lutz Roeder's Reflector to look at the code from the compiled binary. Although this resulted in slightly better results, it wasn't a viable solution. If I was ever to complete this in time to be deemed useful I needed an alternative route. Finally I came up with a solution that was a combination of the first two methods, and some specialized tools I made specifically for this project to get it done.

Results

As a result of converting the code, the new C# version runs incredibly much faster than its VB cousin. I was also able to increase its speed by compiling and generating a single named assembly for all pages + classes in the website. This wasn't that easy due to ASP.NET not allowing App_GlobalResources in pre-compiled websites, but I was able to get around this bug by embedding the GlobalResources and SharedResources into the DotNetNuke.Library library, and using a ResourceLoader to extract the strings from the embedded resources in the assembly. The remaining config files were then placed into the config directory.

Conclusion

I converted this project to make it more readable by myself and other C# programmers and open the DotNetNuke to a larger audience.

Google Code

The project is hosted on Google Code. Please visit Project's Google Code website for the latest bug fixes and releases.

Important Links

  • This is the project home at Google code.
  • This is the SVN repository.

News

Jan. 5, 2007: New bug fixes, modules all load during install, user registration works, and most obvious bugs have been fixed.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer myspace
United States United States
Its a passion, why else would we be doing this? Everyday it feels like gold fever, wouldn't you agree? With the boom of the internet and an ever decreasing world, programming today feels a lot like the wild wild west of the past. Its so wide open, filled with tremendous opportunities. Its more than a passion, its a forming of the ideas that later generations will use.

With over ten years experience, I've earned the right to say that. The majority of my career has focused on enterprise application development. I earned my BS in CS from UCI, hi everybody. My fondest memories as a child was working with the 8mhz IBM AT my daddy brought home for us. Yeah, I'm a geek, and proud of it. We're at the forefront of something huge, enjoy it.

Comments and Discussions

 
GeneralRe: What a complete and utter waste of time and effort Pin
Jeffrey Scott Flesher11-May-07 17:46
Jeffrey Scott Flesher11-May-07 17:46 
GeneralRe: What a complete and utter waste of time and effort Pin
emission6-Aug-08 11:51
emission6-Aug-08 11:51 
GeneralRe: What a complete and utter waste of time and effort Pin
Edward DeGagne22-Mar-11 5:24
Edward DeGagne22-Mar-11 5:24 
GeneralRe: What a complete and utter waste of time and effort Pin
Furty12-May-07 2:48
Furty12-May-07 2:48 
GeneralRe: What a complete and utter waste of time and effort Pin
dde17-May-07 7:25
dde17-May-07 7:25 
GeneralRe: What a complete and utter waste of time and effort Pin
jonavi25-May-07 4:06
jonavi25-May-07 4:06 
GeneralRe: What a complete and utter waste of time and effort Pin
emission6-Aug-08 11:59
emission6-Aug-08 11:59 
GeneralRe: What a complete and utter waste of time and effort Pin
Jeffrey Scott Flesher6-Aug-08 14:32
Jeffrey Scott Flesher6-Aug-08 14:32 
I agree; which is why I spent a year working on a VB to C# program; but never did get 100%; nor have I seen one that did; close; but on complex classes they all fell short of useful. I gave up on DNN and .Net; I switched to PHP and Joomla 1.5. I would still like to see a C# version of DNN; maybe it would be worth looking at; but not the VB version; I lost all respect for VB; PHP has a lot of short comings also; it looks like C; but has variables like VB; and some funny idea's about concatenation with the dot operator; but I'm getting use to it. I like C# language; but I don't like Microsoft anymore or any less; and I never had much luck with mono. I want a web site that will run under Linux; this is kind of off point; but it makes my point about the language war; VB vs C#; C# wins hands down; now the OS war; Microsoft vs Linux; Linux wins; don't get me wrong; I'm running Microsoft 2008 Server x64 on the machine I'm writing this on; and I still have a DNN portal running on Microsoft 2003 Server; but all my new sites are on Linux using Joomla; I write Templates, Modules and Components for Joomla; I don't miss DNN at all. But I stand my ground; this effort was worth the time; too bad it didn't win.

Lessons learned from 911:

1. United We Stand.

2. United’s We Fall.

Gulf War Syndrome survivors never have a good day. http://www.vetshelpcenter.com/




GeneralRe: What a complete and utter waste of time and effort Pin
emission7-Aug-08 2:15
emission7-Aug-08 2:15 
GeneralRe: What a complete and utter waste of time and effort [modified] Pin
Jeffrey Scott Flesher7-Aug-08 5:52
Jeffrey Scott Flesher7-Aug-08 5:52 
AnswerRe: What a complete and utter waste of time and effort Pin
JakeSays17-May-07 14:34
JakeSays17-May-07 14:34 
GeneralRe: What a complete and utter waste of time and effort Pin
RGTSS26-Oct-07 20:06
RGTSS26-Oct-07 20:06 
GeneralGood job! Pin
Rocky Moore8-Jan-07 14:09
Rocky Moore8-Jan-07 14:09 
GeneralRe: Good job! Pin
jyjohnson9-Jan-07 6:33
jyjohnson9-Jan-07 6:33 
GeneralRe: Good job! Pin
Rocky Moore9-Jan-07 7:31
Rocky Moore9-Jan-07 7:31 
GeneralRe: Good job! Pin
jonavi25-May-07 4:10
jonavi25-May-07 4:10 
Questionan Academic exercise only? Pin
jyjohnson8-Jan-07 8:32
jyjohnson8-Jan-07 8:32 
AnswerRe: an Academic exercise only? Pin
jonavi25-May-07 4:11
jonavi25-May-07 4:11 
GeneralSpecialized tools Pin
jeffb424-Jan-07 11:15
jeffb424-Jan-07 11:15 
GeneralRe: Specialized tools Pin
andrewcates4-Jan-07 14:58
andrewcates4-Jan-07 14:58 
GeneralRe: Specialized tools Pin
aaava21-Feb-07 9:51
aaava21-Feb-07 9:51 
QuestionWhat version Pin
scottpdotnet2-Jan-07 16:58
scottpdotnet2-Jan-07 16:58 
AnswerRe: What version Pin
andrewcates3-Jan-07 4:26
andrewcates3-Jan-07 4:26 
GeneralRe: What version Pin
Ashley van Gerven4-Jan-07 12:06
Ashley van Gerven4-Jan-07 12:06 
GeneralRe: What version Pin
andrewcates4-Jan-07 14:56
andrewcates4-Jan-07 14:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.