mojoPortal Released

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

Important Upgrade Notes

We added a feature to combine and minify the CSS files in the skins. Those using custom skins should modify their skins as described here after upgrading.

This release also contains Oomph, as described in my previous post.

We have a new Croatian language translation thanks to Slaven Brumec.

Other than the above and a few bug fixes and feature tweaks as discussed in the forums since the last release, the main focus of this release is changes to make developers happy as discussed below.

Source Code Project Re-Organization

All of the content features like Blog, forum, Gallery, Maps, etc, have been moved out of the core mojoPortal projects into the mojoPortal.Features.* projects. This makes it possible to build and package a leaner version of mojoPortal without any features except Html Content. I will still continue to make the official mojoPortal releases with all the features, I have no plans to package separate mojoPortal lite packages myself, but the idea is that developers can package their own application with mojoPortal without having to include all the features we have. If you work with the mojoportal-core.sln Visual Studio Solution, it will build without any of the extra features and you can package it with UnLeashIt. If you build the mojoportal-complete.sln solution, post build events will copy the extra features up to the core Web project, so you don't want to do that if you plan to package without those features. Once they are copied up to the Web project UnLeashIt will include them, so you need to keep it clean by not building that solution if you want to package without those features.

As a result of this, features are now basically self contained within folders, like the Blog is in the siteroot/Blog folder and forums are in the siteroot/Forums folder and so on. For backward compatibility I created pages with the old names that will do a 301 redirect to the new pages. I also was careful to make sure friendly urls for existing blog posts would continue to work correctly.

The only thing site owners need to change is if they previously submitted a blog site map to google using siteroot/BlogSiteMap.ashx, you need to change that to siteroot/Blog/BlogSiteMap.ashx

When Should We Target .NET 3.5?

I'd like to gather input and opinions about when we should change the target platform to .NET 3.5. I'm eager to start playing with Silverlight in mojoPortal and it seems to need the 3.5 versions of ScriptManager to host the <asp:Silverlight control

The issues I see are:

  • We need to be careful to keep compatibility with Mono. I think we can move forward with using .NET 3.5 on Windows and continue to build for .NET 2.0 for the MonoDevelop solution. We really won't add non-supported features in the core projects but we need to be able to specify 3.5 settings in Web.config of the core Web project. We already maintain a different Web.config file for Mono packages so this should not be a problem. We can put 3.5 functionality like Silverlight into separate projects and use post build events to deploy them into the main web for runtime as we do with most features. So these projects can be left out of the MonoDevelop Solution until they are supported. In summary I think we can workaround all issues relating to Mono and should be able to move forward while still maintaining Mono compatibility.
  • Hosting - This is the issue I'm not entirely sure of and would appreciate any input. If the next release of mojoPortal for Windows targets the 3.5 runtime is that available at your hosting or will it pose a barrier to upgrade? It seems like most of the big name hosts have .NET 3.5, they don't like to be left behind by the competition.
  • Visual Studio 2005 Issues? - As far as I know VS 2005 can target 3.5 without problems except maybe for Windows Workflow development and it doesn't have some of the built in project templates for 3.5 .NET projects. We already maintain separate VS 2005 solution files so we could leave out any projects if they don't work.


Forgot to mention that I updated the project road map yesterday.

Gravatar Joe Audette is the founder of the mojoPortal project and was the primary developer until February 2017.



re: mojoPortal Released

Monday, November 17, 2008 9:53:47 PM

Hi Joe,  I continue to download all of the current releases and extend thanks and great Kudos for your excellent contributions.   Aside from your stated issues for moving into .Net 3.5; I am hooked on MVC and RESTful WebServices. I was going make my own sandbox in developing MP with MVC and RESTful Services but I was curious to hear your considerations first. .  I know it's beta, but I have tinkered with Omar Al Zabir samples and Shoulders of Giants Blog from Piers Lawson.  Very cool stuff.    Thanks again Joe!!


re: mojoPortal Released

Tuesday, November 18, 2008 5:37:35 AM

I hope Mojoportal is moved to 3.5. There is a lot of new stuff in 3.5 which makes life much easier. Great progress on mojoportal!




re: mojoPortal Released

Tuesday, November 18, 2008 6:08:07 AM

Keep in mind that even if I change the build target to 3.5, in the core projects I can only use things in those projects if they are already working in Mono. But doing this will enable us to use any of the 3.5 features in external projects.

I'm glad so far no-one is saying not to move to 3.5, I may do it very soon if there is no blow back on the idea.

Regarding the MVC beta stuff, in addition to concerns about using it before its implemented in Mono, from my little investigation of it it seems quite a different model than web forms and I fear that to try and switch to that model would mean throwing away a lot of good working code in order to change to this pattern. If someone can show a way to use it within mojoportal smoothly with the exsisting webform code then I would be more keen on the idea. I know its wildly popular among the blogosphere especially within the test driven development crowd, but I am not of that ilk. I'm one guy working passionately on something artful. It would be foolish of me to do test driven development. Time is money and writing 2x as much code takes twice as long, and I'm investing my own time in mojoPortal trying to build a business while living on my own savings, so anyone who insists I ought to be doing TDD doesn't pursuade me. While I see some value in the formality of approach with test driven development for herding cats, I'm not herding any cats so the easier testability of MVC has only slight appeal to me. I also don't find the MVC pattern to be extremely intuitive, I fear it would raise the barrier of entry for some developers compared to the easy to get started with a UserControl situation we have now. So in short, my impression is there are a lot of people in love with MVC as a solution. To me it seems like a solution in search of a problem, it doesn't solve any big pain points for me as I'm not really experiencing pain points with the WebForm model. So if there is a way to integrate so those who want to use it can that would be great but if it means re-architecting a bunch of things and breaking a bunch of working code I won't be going there in a hurry.




re: mojoPortal Released

Tuesday, November 18, 2008 6:09:19 AM

I will add that I'm very interested in RESTful web services, but I'm more interested in using Silverlight on top of it than MVC.




re: mojoPortal Released

Wednesday, November 19, 2008 5:08:55 AM

There is a good article by Scott about MVC, Dynamic data and webforms in the same web application.

I agree with Joe in that it would be hopeless to convert from webforms to mvc. For a new project that might be a point of discussion but Webforms have proven that it can scale well well even with its problems with viewstate etc.

For my part I want to use 3.5 and have had to modify the solution to make it work, but then I get some problems when upgrading. Not a good solution but it works. Would be great if one could write extension in 3.5



Mono support for 3.5 (was mojoPortal Released)

Friday, November 21, 2008 3:54:49 PM

I am not sure what all 3.5 features people are looking for but Mono is probably closer to being ready than you think.  Mono is currently at version 2.0 and already MS AJAX for ASP.NET 3.5 runs on top of it fine.  In fact, I had to change the references to System.Web.Extensions to the 3.5 versions to compile mojoPortal on Mono 2.0.  I use several C# 3.0 features on Mono and they work great.

Mono 2.2 is due out next month (December) and supports ASP.NET routing which I believe is one of the big chunks required for MVC.  Mono 2.4 is due March 2009 and full ASP.NET 3.5 API support is one of the stated goals of this release.  ASP.NET MVC support is a stated objective for June and Silverlight support is slated for September.

This is from the Mono roadmap:

Other than Silverlight, Mono will probably keep up pretty well with any changes you make to mojoPortal.  Targeting MS AJAX on 3.5 would actually make mojoPortal easier to compile on the stable release of Mono (version 2.0).



re: mojoPortal Released

Friday, November 21, 2008 6:31:00 PM

I guess it will be wise to keep 2.0 profile. Moonlight for FF is in its infancy and  Mono compatability inevitably dies without   it. As I can see Mono doesn't support normally all 2.0 features and transition will be all pain in the back.  

But if it's a temptation: in my opinion it can be done at the moment than Moonlight plugin and stable Mono package(tarball) will work fine for 1.0 at any rate in all cases.


re: mojoPortal Released

Saturday, November 22, 2008 5:11:32 AM

Hi Justin,

MS AJAX for ASP.NET 3.5 runs on top of it fine

That's encouraging but surprising. When I open a monodevelop project on Mono 2.0 if I try to edit references the only version of System.Web.Extensions I see is the 1.0 version (for ASP.NET 2). How are you referencing the assemblies in Web.config?

For it to use 3.5 System.Web.Extensions it would seem to need:

<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

<add assembly="System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

Do you have those in your Web.config? If not I think its just using 2.0 .NET version of System.Web.Extensions.




re: mojoPortal Released

Sunday, November 23, 2008 10:41:00 PM

Hi Joe, because of the source code reorg, the HTML fragments feature and the Forums are also broken (the 301 seems not to be there or working for the built in development web server). For those in need for a quick fix and not wanting to go through a 301 redirect page, you could update your database directly; look for your module under mp_moduledefinitions (like select * from mp_moduledefinitions) and then run the sql to update the module src. E.g.:

update mp_moduledefinitions
set controlsrc = 'HtmlInclude/HtmlFragmentInclude.ascx'
where moduledefid = ? (the id from the prev select goes here)

I've tried and made it work with:

BEFORE: Modules/HtmlFragmentInclude.ascx, AFTER: HtmlInclude/HtmlFragmentInclude.ascx

BEFORE: Modules/ForumModule.ascx, AFTER: Modules/ForumModule.ascx

BEFORE: Modules/BlogModule.ascx, AFTER: Blog/BlogModule.ascx



re: mojoPortal Released

Monday, November 24, 2008 3:40:22 AM

Hi Gardea,

This is not needed to fix those features. If you visited /Setup/Default.aspx it would update the db like that for you.




MS AJAX (was mojoPortal Released)

Tuesday, November 25, 2008 1:36:08 AM


Two part answer on the MS AJAX.

1) No, I do not have those lines in my Web.config at the moment

2) I did have them a few days ago before I changed dev machines

Let me explain why...

Up until a few weeks ago, I was building an ASP.NET website from scratch.  My primary development tool was Microsoft Visual Web Developer 2008.  MS Web Dev allows you to edit files in place on a remove server and that is what I was doing with the files all on my Linux webserver.

I kept everything I wrote in Web Dev targeting .NET 2.0 to ensure Mono could handle the code but manually compiled some DLLs using C# 3.0 on the Linux machine.  I even merged in an ADO.NET 1.1 version of MySql.Data.dll because it was the only version that would do a DataAdapter.Update() properly on Mono.  I also started using the MS AJAX toolkit.  What I had to do was have one Web.config for Windows and one for Linux/Mono which is an issue it looks like you are familiar with.  Basically, without telling you my life story, it was a gong show.

Sometime just before Mono 2.0 was released I downloaded the Mono pre-release code and compiled it on my webserver (CentOS/Apache/Mono/MySql).  With this version of Mono I was able to tell MS Web Dev to target ASP.NET 3.5 and I was able to use everyting it generated, including the references to the 3.5 System.Web.Extensions in Web.config without any problems.  To do so I had to upgrade the version of the MS AJAX toolkit on my Linux machine to the 3.5 version.  After the change over, I did not write any code on Web Dev (targetting ASP.NET 3.5) that did not run fine on Mono.  Granted, I was not doing Linq to SQL, Silverlight, or probably a host of other fancy things but I was using MS AJAX 3.5 and a number of C# 3.0 features.

I do not have MS Visual Studio 2008.  When I first tried to run mojoPortal I actually tried to fire it up on MS Web Dev 2008.  It will load the solution ok and build but I do not think that it will deploy the DLLs.  Anyway, I setup a Linux machine and tried to compile mojoPortal.  Then I upgraded to Mono 2.0.1 underneath and tried to compile again.  This time I got a bunch of errors about System.Web.Extensions 1.0.61025.0 referenced but not being found.  Having been through this before I thought it was the same transition I had been through once already so I changed out the references in Monodevelop to point to the 3.5 versions in my GAC, manually changed Web.config, and replaced the MS AJAX dll.  After that everything seemed to compile fine.  The only problem is that as soon as I did that, I had to travel and so I had to set it all up again on my laptop.

This time I upgraded to Mono 2.0.1 and compiled the 1.9.1 (2.0 alpha 2) version of Monodevelop before compiling mojoPortal.  This time it all worked beautifully out of the box and I realized that I did not have to switch over to the 3.5 versions of System.Web.Extensions after all.  So, my guess is that my first experience had to do with compiling on an older version of Mono and then upgrading Mono before opening the solution again.

My only problem now is that I am not sure how to efficiently move the mojoPortal from my dev machine to my production machine after buildign mojoPortal in Monodevelop.  I am a newbie to both mojoPortal and to Monodevelop.  I asked about it in the forums.

Sorry for the long reply.  I am sure though that you can create an ASP.NET 3.5 application including MS AJAX in MS Web Dev 2008 and I assume in Visual Studio 2008 and move the generated code including the Web.config file right over to a Mono/Linux box without modifying anything and it will run (barring use Web Parts, Linq to SQL or a couple other things).

Mono is still rough around the edges but it is getting better all the time.  My major troubles have been with the ADO.NET 2.0 versions of the MySql.Data connector.  Other than Silverlight, the next six months look like they are going to bring Mono up to speed in pretty much every way a hack like me is likely need.

I sure do hope that mojoPortal continues to work well on Mono.  I hoping to standardize on it.

I hope this message was useful.



System.Web.Extenstions.dll 3.5 (was mojoPortal Released)

Tuesday, November 25, 2008 1:40:57 AM


Sorry, I am not sure if you were asking where the 3.5 version of System.Web.Extensions was.

For me, it is at /usr/lib/mono/3.5 and of course again in the GAC.



re: mojoPortal Released

Tuesday, November 25, 2008 5:17:06 AM

Hi Justin,

Thanks for all the info. I may not have tried Mono 2.0.1, just 2.0 and svn, sent amessage to Marek at Novell about the latest error using svn.

You can rest assured that Mono compatibility will be maintained, its essential to the project to be cross platform. I will just continue to have to produce Mono builds that leave out things that aren't yet supported. It may be bumpy now and then, but I don't think the transition from 2.0 to 3.5 will be as difficult as the transition from 1.1 to 2.0 was. Back then we had to fork it in svn until Mono 2.0 matured, this time I don't think forking will be needed.



Comments are closed on this post.