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.

Open Source Project Hosting Options- Should we move?

Currently the source code repository and file downloads for mojoPortal are hosted on Novell Forge. Several years ago I chose Novell Forge because they were offering Subversion aka svn repositories and at the time SourceForge was limited to cvs. Over time my satisfaction with Novell Forge has declined and now I am considering whether to move the project to a different provider. The current options to consider are:

1. Stay with Novell Forge, its been fairly reliable but there was a week long outage last year and currently I am not able to add a user to the project due to some issue in their system and when I send a message to the mailing list I get nothing but crickets chirping. Novell Forge seems almost abandonded and certainly a very low priority effort by Novell though I'm a big fan of Novell and their work with Mono and openSuse. I don't really blame Novell as it seems like providing this kind of infrastructure is a cost center with little if any benefit to their bottom line. The whole Novell Forge plan seems to be in flux maybe it will eventually settle down but if you look at the 2 newest news items on the old Novell Forge, they migrated everything to Media Wiki in 2006, so that site is here and now they seem to be in the throws of moving to yet another wiki engine here which you can only get to with a Novell login. Presumably there will be some benefit to it but it looks a lot like the current wiki and there wasn't much response on the mailing list when the new beta site was announced so it makes the impression on me that the Novell Forge community is not exactly a thriving one. Staying with Novell Forge would be the easiest choice in terms of effort but I don't seem to be getting any help adding a user to my project so staying may not be a viable option.

2. Google Code - I'm a big fan of Google and I wish it were an option but unfortunately the company that would do no evil has an agenda when it comes to open source licenses and does not offer Common Public License as an option so moving there would require a license change which is not something I'm inclined to do as it would require permission from all previous contributors. It also rubs me wrong that they have this agenda which would coerce me into changing my chosen license. I understand their goal of reducing the proliferation of open source licenses but their list is too short and leaves out established OSI approved licenses. No-one should have to change their license just to get project hosting.

3. CodePlex - Microsoft is putting a lot of effort into hosting open source projects and CodePlex seems to be gaining popularity in the .NET world. There might be some benefits to mojoPortal if it were a member of the CodePlex community, we are still very unknown compared to things like DotNetNuke which everyone knows about. I'd like to be able to consider Codeplex but they use Team Foundation I believe for source code. They have a client side utility called svnbridge that allows users to access the repository using svn and they are working on a server side svn bridge so no client bridge is needed. If that were ready today I'd seriously consider going with Codeplex but I'm less inclined at the moment because I don't want any difficulty checking out the code on linux and I really like svn and not sure I would like it as much if its not working the same in the back end as svn.

4. SourceForge - the first major player in open source project hosting and probably still the biggest. They have long since added svn to their list of services. They seem very committed to what they are doing and they seem to have a thriving community. This is the option I'm leaning towards. It would be a bit of work moving the code but it would probably be worth it in the long run.

Any thoughts or opinions?

Joe

UPDATE: Since posting this I did get a response from Cory Aitchison from Novell on the Novell Forge mailing list and he is helping me with the immediate problem of adding a user so for now I think we will stay with Novell Forge and see how things look after the new migration. In hindsight my comment about no reply except crickets chirping was probably not fair. I did get a response to the message I sent today and I fear it may have been my own fault that I did not get a response yesterday because I sent it from gmail but my message may have bounced because I'm registered on the list with my yahoo mail account. It all forwards to my gmail but I think I forgot yesterday that I needed to specify my Yahoo account in the from box. I applogise for that and thank Cory for his help.