Posts in Category: Releases

A New Release Soon

A new release of mojoPortal is coming soon, either this Sunday or the following one if all goes well.

Hopefully we will release version 2.0.1 for Windows/2.0 .NET and version  1.0.1 for 1.1 .NET or Mono.

Most of my recent work has been in the 2.x branch. The 2.0 release of mojoPortal was just compiled against the 2.0 .NET framework, it did not use any of the 2.0 .NET features per se, but the upcoming 2.0.1 release will use a number of 2.0 .NET features.

Changes for the 2.0.1 version

  • MasterPages, previously we were using Paul Wilson's MasterPages which made this an easy change
  • Themes, using a custom VirtualPathProvider and VirtualFile, I am storing the theme.skin files in the same folder with the other skin elements like layout.master and style.css and images under ~/Data/Sites/[SiteID]/skins/[skinname] instead of in the default App_Themes folder. Themes give you awesome control over the visual properties of all the built in server controls. I have stubbed out most of the server control properties in the skin.theme files with the default properties to make it easy for designers to know what properties are available.
  • I implemented a custom SiteMapProvider and am now using the new ASP.NET Menu control for the menu instead of skmMenu. The skmMenu is still there if you want to use it there is a setting to allow that and you can also use the new TreeView control for the menu if you wish.
  • I reduced the number of included skins but the ones I kept are all using css layout with no tables.
  • I removed table layouts from most of the modules and supporting pages except where displaying tabular data
  • The site is in general now XHTML compliant though it may still be possible in some cases that you could manage to get non compliant markup into the database. To get my sites compliant I had to do some cleanup of existing content in the db.

Changes for both 2.0.1 and 1.0.1 versions

  • Update to the latest version of NeatUpload, the awesome upload control by Dean Brettle
  • Dean Brettle is also working on a new Cross Site Scripting (XSS) prevention technique that will hopefully be in this release
  • The last release added support for LDAP Authentication against OpenLDAP contributed by TJ Fontaine, this release we add support for Active Directory authentication as well as regular Windows NTLM authentication with help from Haluk Eryuksel, who also contributed the Turkish translation
  • Joseph Hill added a whole new data layer for SQLite and also provided a feature to expose the forums as RSS
  • I implemented a feature to automatically create initial site data for new installations and when creating new sites. Previously we had separate data creation scripts for each data layer and over time they had become inconsistent. This feature eliminates the need to maintain data creation scripts and makes the initial data consistent no matter which data layer is used. The initial data is retrieved from text files with a .config extension stored under Data/MessageTemplates and can be localized or customized

Numerous other little changes and fixes have also been done. If any of you think of anything major I've forgotten to mention let me know and I'll update this post.

For the current release, there will be no difference in the data schema between the 1.0.1 and the 2.0.1 versions but going forward the 2.x branch will begin to diverge as I add tables and columns to support the Personalization and Membership APIs and other plumbing to prepare for converting the modules into WebParts.

Its been several weeks since I have done any serious testing of the mono 2.0 stack. At my last test it was still broken in a number of places. I know they have been working hard on it though and I plan to get back on the testing and bug reporting after this release is shipped. Once the 2.0 mono stack is ready and stable we will drop the 1.x branch and get back to supporting just one version on all platforms.

2.0 Roadmap Thoughts

I made some progress tonight converting from Paul Wilson's MasterPages to the built in ASP.NET 2.0 MasterPages. I got the Default.aspx page converted and working on Windows, it was pretty straightforward given that Paul modelled his version from early specs for the real thing. Now it will just be a machanical repetitious task to update the remaining pages and skins, but not tonight, I'm spent.  I tested on mono at demo2.mojoportal.com, it did load the MasterPage but something went wrong loading the rest of the page content as you can see. I'll follow up with that and see if I can pin down the problem.

I've been getting very excited learning about the Web Part framework. I know I said I would pace my changes with mono support but I think what I will do is keep a separate branch in step with mono support until the mono support catches up so I can move forward taking advantage of 2.0 ASP.NET features. Some of them are just too compelling to wait and besides it will take some time to make the changes and figure out exactly how I want to do it. Right now I'm thinking the Web Part model will replace the existing implementation for Feature Modules.

I definitely will try and help implement some of the missing mono features if I can, or at least provide testing and feedback for the guys who are doing it.

mojoPortal 2.0 Release files available

I just put up some release files compiled against the 2.0 .NET framework for those eager to play in the 2.0 space.

Unfortuantely I found another bug today in the mono 2.0 runtime that I haven't been able to work around and will probably have to wait for a bug fix in mono to get it working correctly. The site does run under mono using the 2.0 runtime as you can see at http://demo2.mojoportal.com but when posting back updates on pages using a CheckBoxList like the Module Settings page and the Page Settings page, I'm seeing this error:

System.Exception: Unhandled Exception while processing NeatUpload child request ---> System.ArgumentOutOfRangeException: Index is less than 0 or more than or equal to the list count.
Parameter name: index
2
in <0x00096> System.Collections.ArrayList:get_Item (Int32 index)
in <0x00012> System.Web.UI.WebControls.ListItemCollection:get_Item (Int32 index)
in <0x0010f> System.Web.UI.WebControls.ListControl:LoadControlState (System.Object savedState)
in <0x00141> System.Web.UI.Page:LoadPageControlState (System.Object data)
in <0x0004d> System.Web.UI.Page:LoadPageViewState ()
in <0x0012f> System.Web.UI.Page:InternalProcessRequest ()
in <0x000aa> System.Web.UI.Page:ProcessRequest (System.Web.HttpContext context)--- End of inner exception stack trace ---

in <0x004a3> Brettle.Web.NeatUpload.UploadHttpModule:Application_BeginRequest (System.Object sender, System.EventArgs e)
in (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_object_EventArgs (object,System.EventArgs)
in <0x0046f> System.Web.HttpApplication+<RunHooks>__0:MoveNext ()

I posted to the mono dev list and will follow up when I hear something but figured I would go ahead and make the files available to those who want them.

A VS 2005/ASP.NET 2.0 release of mojoPortal coming soon

Things are shaping up on the VS 2005/ASP.NET 2.0 branch of mojoPortal. I am shooting for a release of that branch this weekend to ring in the new year.

It seems to be working very well on Windows and on mono with a few tweaks. There is really not much holding us back from just going forward with the vs 2005/ASP.NET 2.0 version.

So now I'm trying to figure out at what point we fully transition to 2.0 and how long we keep making releases for the 1.1 framework.

Most Windows developers I know already have VS 2005 and of course those of us who have it would rather work with the new version than the old version. But I get a lot of downloads of the release files so I'm not sure its only developers I need to consider. I would love to hear feedback on that question if you have a point of view.

This decision I think will have to factor into my versioning scheme. If we are going to support 2 release branches for a while I might bump the version for the vs 2005 branch of mojoPortal to 2.0 to distinguish it clearly from the 1.x branch but if we are just going to drop development on the vs 2003/1.1 framework version I'd be more likely to version the next release 1.x and from thence forward its not for ASP.NET 1.1/vs 2003 but for vs 2005. Obviously the second choice requires less effort than maintaining 2 branches, but will anyone be left behind? Speak up if you will be negativley impacted by a quick transition to 2.0

Release 1.0 Just in Time For Christmas!

Release 1.0 is now available on the download page.

I've also put up a new tutorial on my personal site about configuring multiple sites running on a single ip address using apache Virtual Hosts with mod_mono on Suse 10.

In the article I walk through the apache setup for 2 mojoportal instances with different host names. Then I create a 3rd site using the multiple sites feature in the second physical instance of mojoportal so that it has 2 sites using the same web folder and database but the content and users are completely independent.