mojoPortal vs DotNetNuke

People often ask me how mojoPortal compares to DotNetNuke, I've responded with my opinions here a while back, but for a long time I've wanted to do some actual load test comparisons between mojoPortal and DotNetNuke. I've always thought the performance of mojoPortal was good and a number of people have told me mojoPortal is faster and uses less resources than DotNetNuke but I haven't been using DNN myself for any real sites so I still wondered in the back of my mind how mojoPortal would stack up in actual tests.

I've been load testing mojoPortal recently to test whether caching would improve performance and to make sure it didn't use too much memory. So this morning I decided to download and setup the latest 4.3.4 version of DotNetNuke and try some testing. I realize I'm not a neutral party so I would say if you have any doubts try some tests yourself, but I tried to make the tests as comparable as possible and tried to get the best performance I could out of both. I created the same number of pages and the same content in each site. You can see the results I posted in this forum thread.

I should note that this was with my version from svn/branches/joesandbox2 not from the current release files. I have made some improvements recently by caching the SiteSettings (thanks to a suggestion from Bo Rey) and tweaking the module cache feature that already exists in mojoPortal and hope to make a release with these improvements soon. Hopefully tomorrow I will update this site with the latest code so we can test in the real world a bit before the release.

Source Tree Solutions

I blogged about it on my personal site, but thought I should at least have some mention on this site too. I've formed a company, Source Tree Solutions, LLC, and beginning around mid October or so I will be going full time working on mojoPortal and taking on projects building custom applications on mojoPortal.

I think my main value proposition is that I can implement applications quickly because I don't have to spend any development time implementing important things like security, navigation, skinning, and other things already implemented in mojoPortal. I can start right in on the functionality needed. So keep me in mind if you need to implement an application for your company.

I also really hope to see other developers take the time to become familiar with mojoPortal and do value added consulting building projects on top of the existing mojoPortal infrastructure. Part of my plan is to beef up the documentation with tutorials to help developers get up to speed quickly.

Exciting times ahead, its going to be a lot of fun.

Request for Feedback

I've started to work on the feature to allow site members to send private messages to other site members, but in addition to the typical implementations I've seen for forums that allow this, I've decided to be a bit more ambitious. I really want mojoPortal to evolve to something you can run a business on so I'm envisioning site mail as just the first feature of a more elaborate SiteOffice feature.

All registered users will be able to use the SiteMail element of SiteOffice to send messages to other site members but in addition to that I will have roles that allow users to also access external email accounts, send and recieve mail from those accounts, maintain personal contacts separate from site member contacts etc.
Later I plan to add a role to alow users to store files, eventually we will hopefully see open source editors for OpenDocument format and ultimately the whole office experience can be had in the browser. You can see how this could progress with nice calendaring for users and groups and other typical office like features.

So far I've just stubbed out some UI using jsObjects TaskBar and TreeView with some MagicAjax Panels. Registered users who login can get a sneek peek at the UI using this link http://www.mojoportal.com/SiteOffice/Default.aspx and I invite your feedback whether you think this is a good direction to go. Its pretty similar to older versions of Outlook. I've experimented some trying to make a UI more like newer versions of Outlook using the Rico Accordian panel and some of the dojo layout widgets. dojo has an accordian but it seems broken in IE. The idea would be to have the treeview inside the accordian panel which would be more similar to the newer versions of Outlook and you can see my experiment here http://www.mojoportal.com/SiteOffice/Office.aspx. I'm just not sure yet if I can get a hook in to handle client side clicks to the accordian that I need to show and hide things like I am using the dsObjects stuff. I got a good chunk of work done already using jsObjects so not sure if its worth the effort to pursue the accordian thing and this is what I'm asking feedback about. I'm at apoint where I see clearly how to implement things with jsObjects whereas the other stuff is going to require more digging and experimenting. I'm kind of leaning toward sticking with the jsObjects approach and maybe trying to integrate the dojo feature that allows re-sizing the layout elements. The only problem so far I've had with the jsObjects is in Firefox the height of the taskbar seems to want to go a little longer than the page height no matter what I try though their sample page doesn't have this problem. I'm thinking it might be all the hidden Ajax panels are somehow taking up space in Firefox even when they are hidden.

Some of the things I plan to use for the external email functionality are DotNetOpenMail, sharpmimetools, and the mono.net.POP3 classes. I also found sharpwebmail which has the POP3 functionality but I can't use it because it is licensed under the GPL. Luckily I remembered reading Zac Bowling's blog that he had contribute some POP3 feauteres to the Mono project and I can use that.

Nothing is functional yet but you can see by clicking some of the buttons how the Ajax partial postback is nicer than normal postback.

So login, have a peek and let me know your opinion.

Thanks,

Joe

2 Years of Development

Just a quick post to mark a chronological milestone.

It was August of 2004 when I began work on mojoPortal so this month marks 2 years of development. Of course this has been 2 years of only nights and weekends since I have been working full time doing other development during that period.  Coming up on November 1, will mark 2 years since the first release.

Its been a lot of work but also a lot of fun. I think the next 2 years will be even better. Since January most of the work has been re-architecting to take advantage of 2.0 .NET but now we are past that and I am focusing on feature additions and improvements to existing features to take it to the next level.  I was excited when I started the project but I'm even more excited now. The project is being used by people and companies all over the world and interest in the project is building momentum. Its very rewarding to work on something and to see it become popular.

So thanks to all who have contributed in large and small ways and those who have downloaded and are using mojoPortal and those who have helped spread the word about this project!

Release 1.0.4 and 2.1.1 Now Available

Version 2.1.1 includes the new 2.0 .NET localization model which detects the browser language and uses resource for that language if available. So anyone visiting this site using one of the languages we currently have translations for should see the labels and buttons in their own language.

Currently mojoPortal is translated into:
English
Spanish-Mex
German
Dutch
Turkish
Russian
Czech
Italian
Portuguese (Brazil)


Also this release features a new help system making it easy to add contextual help links anywhere in a page or module with an editing system to make it easy to update or translate the help files.

The Image Gallery also uses a new modal dialog to show images. I've added an image gallery to the MyPage page on this site, click one of the thumbnails there to see how cool the new modal dialog is. The same dialog is also used in the help system.

This will be an easy upgrade as there are no changes to db tables. Users of MS SQL and PostgreSQL will need to run the stored procedure scripts to get the latest procedures.

Access/shortcut keys for all important buttons is another new feature this release. It can be disabled from the web.config file if you don't like it but its pretty convenient not having to grab the mouse for everything.

Version 1.0.4 includes the newest version of npgsql driver for PostgreSQL and a few minor bug fixes.

This release (both 2.1.1 and 1.0.4) is able to run in Medium trust hosting environments.