Posts in Category: Development

mojoPortal 2.1.4 Released

I've been continuing to polish things up before my push into the next major features so lately its been little incremental releases.

Release 2.1.4 is now available on the download page

There are no database schema or stored procedure changes, 2.1.4 is the same in the db as 2.1.2 and 2.1.3. (and 2.1.2 only had stored procedure changes since 2.1.1)


Added new Setup page for initial data creation. It will give a warning if the Data folder is not writable and won't allow data creation until this is configured correctly. This also
ensures no partial data gets created which was happening for some users before. It would create the home page but then error out on writing a module cache dependency file which would prevent the rest of the pages from being created.

Implemented new SiteMap feature and added SiteMapLink to skin layout.Master files, you can see the Site Map link at the bottom of this page

Implemented Skip Links navigation in skins for improved accessibility

Implemented PageMenuControl and 2 sample skins splitmenu1 and splitmenu2 which illustrate using 2 menus, a top horizontal menu with just one level and per page vertical menu for pages with child pages. This would be good for a top horizontal main menu with just a few items, but rather than a dynamic menu dropping down, there is a second menu on the left side for sub pages of the selected main menu item. These skins aren't very pretty, I just modified a couple of the existing skins to show the mechanics of using the split menu. I'm sure with a little CSS love they could look a lot better.

Moved DatePicker .js files from ClientScript to ClientScript/DatePicker

Bug Fixes:

Fixed bug where button labels were blank on ChangePassword page if not using shortcut keys
Fixed bug in Forum Notification Subscription manager, button events had become unhooked from some recent change
Fixed bug in MySQL/SQLite Data layers where Forum unsubscribe was broken due to incorrect sql
Maybe fixed bug in Search that was happening occassionally on this site, couldn't produce error on dev machine
Fixed issue where login from forum would not clear ssl on redirect
Fixed issue with using Forums module on home page caused bad links when the .aspx pages was not part of the url, ie using the default document for /

As always be sure and back up your site and db before doing an upgrade and post in the forums if you need help getting mojoPortal working.

Support for Firebird Coming Soon

In the near future we will have support for using Firebird Relational Database.

Thanks to Gareth Goslett from South Africa who is the developer/maintainer of this new Data Layer.

We will first have this in the 1.x version of mojoPortal for 1.1 .NET/Mono and will follow up after that with a version for 2.x mojoPortal

Initial code has already landed in svn/trunk

Lots of other good things happening with mojoPortal that I will blog about soon.

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 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 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 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.