A Noteworthy Bug with an easy fix

The new release has a bug that I thought I should mention as its easy to workaround. I plan to release a fix for it very soon but its trivial to solve for those who are working with the current release.

The bug is that if you try and save content after a clean install you get an error. The bug was introduced by my re-working of the search index. The cause of the error is that it tries to index the saved content but the index has not been initialized yet. The quick solution is just to do a search before you edit any content because the first time you do a search the index is built. After that there is no error.

I'm going to add a routine in the setup process to initialize the search engine so this bug doesn't happen and put out a fix for it in the next few days.

mojoPortal 2.2.3.7 Released

I'm happy to announce the release of mojoPortal 2.2.3.7, available now on the download page.

This release fixes a few bugs reported in 2.2.3.6 and also adds full integration for MS AJAX so that developers can easily use it in their custom features. We've used the UpdatePanel in the blog and also in the Poll feature. The Poll Feature by Christian Fredh is included in the release files for MS SQL but hasn't yet been ported for the other data layers.

Note for Mono users:

I did not make a 2.2.3.7 release for Mono but instead left the 2.2.3.6 release for those running Mono 1.2.4 or higher. The reason for this is that the release versions of Mono (1.2.4 and 1.2.5) do not yet support the MS AJAX framework. However, if you can build Mono from svn it does work. I figure if you can build Mono from source code then you can also easily build mojoPortal from source code and the latest mojoPortal source code does work with the latest Mono built from svn. If you do build mojoPortal against the latest Mono, you also need to replace the Web.config file with the one from the _mono_errata folder. I think we can expect to see support for MS AJAX in Mono 1.2.6 since it is there and working in svn.

Also new this release

Improved pager control is now used on Memberlist, forums and other places where there are pages to browse through. The pager handles large numbers of pages in a visually graceful way.

I revamped the search engine creating a provider model for the search index builders so that its easy to plug in new ones. Now it is possible for developers to make their custom features searchable by implementing an IndexBuilderProvider with just 2 methods. I will be writing a tutorial on that in the next few days. I will also be documenting the steps to integrate features into the setup process which is also very easy now. We've done a lot lately to make it easy for 3rd party developers to implement features and hopefully this will lead to more interest in developing features that plug into mojoPortal.

As always, be sure and backup your site and db before upgrading, review the upgrading tips, and post in the forums if you run into any troubles.

We've been making rapid progress with mojoPortal and it has led us to release early and release often which I think is a good thing. There are a lot of exciting things going on in the planning and early development stage that I ill blog more about later.

Design Resources for mojoPortal skins

I just discovered (via Francisco's blog) http://www.opendesigns.org/ and http://www.openwebdesign.org/ , a couple of good places to find designs that could be converted to mojoPortal skins. I'm going to look through there and find a few designs to convert myself, but thought I would point out these sites for anyone else interested.

I'm not much of a designer myself but I can usually make a skin pretty easily from existing designs.

MS AJAX and Mono - Heads Up to svn users

For a while now I've held off on fully utilizing the MS AJAX framework in the core of mojoPortal because it was not yet supported in Mono but recently, at least in Mono built from svn head quite a bit of the System.Web.Extensions stuff is working. In the past I had an AJAX Extensions pak which could be used to add MS AJAX support for Windows in case developers wanted to use it in their custom features. It also allowed for making the WebPart drag and drop work in Firefox by using the Microsoft.Web.Preview namespace. The Microsoft.Web.Preview stuff is not working in Mono yet but since WebParts are also not working in Mono yet its not needed. However in svn trunk I've modified (or will have soon, merge is in process) the Solution so that these things are referenced and no extension pak is needed. Since some web.config settings are needed to use these things I made a custom Web.config for mono that comments out these things otherwise errors happen on Mono. So heads up to any Mono users who are working with mojoPortal from svn.

If you are working with Mono compiled yourself from svn, you'll need to replace the Web.config file in the Web folder with the one from the _mono_errata folder

If you are working with Mono 1.2.4 or 1.2.5 release versions you will need to either just use the current zip download or use svn/branches/2.2.3.6 because the System.Web.Extensions stuff is not yet available in these versions.

One of the changes to add more general support for MS AJAX was to add the ScriptManager to the layout.master file of each skin so if you are using a custom skin you will need to copy this from one of the included skins into your custom skin.

I may go ahead and make another release with this soon as I know some developers are anxious to start using MS AJAX in mojoPortal and this will make it easier. I used the UpdatePanel in the BlogEdit.aspx page so Categories can be added to a post nice and smooth with no full postback.

Another thing I did recently that is in svn is I implemented a ProviderModel pattern for the IndexBuilders used to build the Lucene.NET seach engine index. This will make it much easier for developers to make their own features participate in Search by implementing an IndexBuilderProvider (which only requires implementing 2 methods). I plan to write a tutorial on that soon but I think most developers could figure it out just by looking at the included providers for existing features.

I'm still a fan of some of the other AJAX frameworks included with mojoPortal, especially dojo which I plan to use more of but its nice to finally be able to use the MS AJAX stuff. UpdatePanel makes things very easy.