Posts in Category: Releases

Release 1.0.3 and 2.1 Now Available

I'm happy to announce the latest releases available from the download page:

1.0.3 for the 1.1 .NET Framework or mono a maintenance release with bug fixes and the newest version of FCKeditor. The coolest new feature in the FCKeditor is the full screen mode. Try the bottom right toolbar icon in the editor to see how it works.

and

2.1 for the 2.0 .NET Framework (currently Windows only) is a major new release featuring:
Personalization using the new 2.0 .NET WebParts framework
XHTML Compliance, table-less layouts, and table-less menus
New streamlined Content Manager module
New 2.0 .NET provider implementations for all supported databases including:
SiteMapProvider
MembershipProvider
RolesProvider
PersonalizationProvider

Most of the above is really improvements in the infrastructure to take advantage of the new 2.0 .NET. The new features that actual users will notice include the MyPage feature which allows registered users to create personalized pages by selecting content from a Catalog of content. Administrators can make any site content available in the Catalog. Very easy to use RSS feeds to bring in external content and make it available, but all of the modules can be used there. Also the new Contant Manager will make things easy for Administrators. Content can now be published on any number of pages in the site not just one as before. The new FCKeditor with full screen mode is very cool. It is now easy to use icons in the menu as you can see on this site.

There are no table changes in the 1.0.3 release but new stored procedures if you are using MS SQL or PostgreSQL.
2.1 has quite a few db schema changes, there are upgrade scripts to help you upgrade. As always, be sure and completely backup your site and your database before attempting an upgrade in case things go wrong. If you do run into any problems, post in the forums and I will try to help.

There is a separate download for the 2.1 version called the Atlas pak. If you want to use Atlas to make the WebParts drag and drop work in Firefox and maybe Safari, download this and read the readme file. You will also need the Atlas dll from Microsoft.

There is one known bug if you use SQLite, the MyPage feature is broken due to a bug in the driver for SQLite. It is not handling the blob/binary data type parameter. I am looking into this issue to see if we can get it fixed.

Release 1.0.2 and 2.0.2 Bug Fix Release

I just posted a new release that fixes the 1 bug that has been identified since the 1.0.1/2.0.1 release. The bug was an error that would occur if the Administrator created a user instead of the user being created by the Registration page.

Thanks go out to Ivan Curak for reporting the bug and testing the fix.

If you already have the last version (1.0.1 0r 2.0.1) installed all you really need to replace is the mojoPortal.Web.dll in your bin folder with the one from the corresponding new release. No other files have changed.

If you are upgrading from older versions be sure and read the release notes from the last release as they still apply.


As always if you have any trouble please post in the forums and we will try to help.

Release 1.0.1 and 2.0.1

A new release of mojoPortal is available from the download page.

We have released version 2.0.1 for Windows/2.0 .NET and version  1.0.1 for 1.1 .NET or Mono.

There are some significant upgrade issues to be aware of if upgrading from previous versions see below for details.

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 has developed a new Cross Site Scripting (XSS) prevention technique called NeatHtml that is included 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.


IMPORTANT UPGRADE ISSUES:

As always be sure and backup both your web site and your db before attempting an upgrade. Ideally you would perform the upgrade on a copy and then cut over to it if all goes well.

In previous versions of mojoportal I had some not so well implemented strategies for preventing Cross Site Scripting (XSS) that included storing content in the db as HtmlEncoded. In the new design, all content it stored raw and XSS prevention is used prior to displaying the content. The benefit of storing the content raw is that we can continue to come up with new techniques of XSS prevention without modifying the data. Any XSS prevention technique that modifies the data on the way into the db makes it harder to improve the strategy over time. The problem this poses for upgrading is that some of your content may currently be HtmlEncoded in the db and since we are no longer decoding it on the way out it will display as markup rather than render correctly. To address this issue we have created a Utility page to decode existing data. You must first login as administrator and then navigate to siteroot/Admin/dbUtils.aspx to see the utility. The utility page has full instructions for its use right on the page. For security purposes the page requires that you be logged in as site admin and also you must enter the correct connection string for your db to use the utility. You can copy this from your web.config  file and paste it in. Note that you should only use this utility if you see encoded content after the upgrade. If your content looks correct there is no need for you to use this utility.

Additionally if any of your existing content has anything potentially malicious or even poorly formed html you me see error message from NeatHtml and you may need to edit the content to fix it. There is also a utility to help you find existing content that is not valid according to NeatHtml. As with the decoding utility above, you must login as site admin and navigate to siteroot/Admin/ContentValidation.aspx. Enter the connection string there and click the button to search for invalid content.

Myself, I had several hours of work cleaning up content in this site during the upgrade. In some cases it was sufficient to just open the content in the editor and save to correct the problem, in others the problem was caused by users copying html fragments from error pages and pasting them in the forum without using the past as text toolbar to strip out the markup. Many of those cases could be fixed by cutting the content and re-pasting using the paste as text toolbar (in fckEditor this is the one with the Clipboard and a T). In a few cases I had to go into the db to clean up things like blog comments because we don't currently have an editing feature for these in the UI.

I think my experience may have been made more difficult by some other issues such as numerous svn upgrades along the way and I think I ran and early version of the decoder utility too many times on my data which messed it up in some cases. Also my joeaudette.com site shares the same db and has some old content that was originally migrated from Rainbow portal. In short I'm hopefull that your upgrade won't be as challenging as mine was but I want you to be aware of the potential issues and work involved to resolve them. Don't forget to backup first!

Finally, after the upgrade, due to some of the above issues you should also re-build the search index for your content. To do that, delete the files from ~/Data/Sites/[SiteID]/index and then when you try to search it will re-build the index, wait a few minutes after that before searching again.

If you have any troubles please post in the forums and we will try to help. Those doing a clean install don't need to worry much about these upgrade issues.

A Call for QA and a new Demo Site

I just put up a new demo site for the upcoming 2.0.1 release of mojoPortal and also updated the mono demo site with the latest svn code in preparation for the 1.0.1 release

http://demo.mojoportal.com is the new demo site running on Windows Server 2003 with 2.0 .NET and using the MySQL database
previously this was the url for my mono demo site but it has been changed to:
http://mono.mojoportal.com
running Suse 10, mono r58211 built from the svn repository tonight 3/20/2006 and using PostgreSQL for the database

Since we are grearing up for a release it would be great if any of you would test the sites and let me know any problems you encounter or any usability feedback.

There are currently a few issues on the mono version on the User Profile page and the Admin Manage User page I am getting an error that seems to be mono related but it would be good still to test as much as possible and find if there are any other errors.

I made the DNS change for demo.mojoportal.com last night but tonight on my Comcast machine it was still pointing to the mono server even though it worked fine today at work and should be pointing to the windows server with mojoPortal 2.0. If that happens to you you can put this in your hosts file to fix it
66.98.156.141 demo.mojoportal.com

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.