Using the new preview of VS 2005 Web Projects which allows you to implement web projects in a way more similar to VS 2003, I was able to convert mojoPortal to VS 2005 and get it running on mono at http://demo2.mojoportal.com/
It runs great on Windows, there are still some errors on mono if you click around in the administration section but that's major progress! Now I can start figuring out exactly what is broken and see if I can't get them fixed either by reporting bugs or maybe even trying to fix it in the mono sources myself.
I've committed the vs 2005 version of mojoportal source code to svn, you can get it here:
use anonymous for the password, you'll be prompted about 3 times on the first checkout. Its configured to use PostgreSQL, if you want to use a different db you'll have to drop the reference to the PostgreSQLData project and add a project reference to the data layer of your choice, MSSQLData or MySQLData.
Before you open it in VS 2005, make sure you have installed the new project type for VS from here: http://webproject.scottgu.com/
Configure IIS so that http://localhost/mojo2005 maps to the Web folder and build the solution
Let me know how it goes.
Managed to find workarounds for most of the issues running under mono using the vs2005 branch of mojoPortal. I haven't tested everything thoroughly but mostly it is working well now at http://demo2.mojoportal.com
There is a problem with the Event Calendar but that problem also manifests under Windows so its not a mono bug but an ASP.NET 2.0 breaking change. Overall, this is very encouraging progress. There are some major issues still remaining in mono but I have found non-horrible workarounds for them at least for mojoPortal.
The 2 biggest problems were
- System.NotImplemented exceptions when data binding a DropDownList or anything that inherits from ListControl. I worked around this by creating a helper function to add ListItems instead of calling the built in DataBind()
- System.NotImplemented exceptions anywhere a DataSet is used, it would break at System.Data.Common.DbDataAdapter:Fill. This is probably a big problem for a lot of projects but in mojoPortal I mostly use IDataReader so there were only a few places I was using DataSets and all I really needed was a DataTable so I created and populated one using an IDataReader instead of letting it come from a DataSet
I've commited the workarounds on the vs2005 branch for anyone who wants to play on the cutting edge. To make mod_mono use the 2.0 stuff see my tutorial on Virtual Host configuration, especially the part about the MonoServerPath setting. Of course those working on Windows have surely discovered the new ASP.NET tab in IIS settings where you can choose either the 1.1 or 2.0 framework