mojoPortal 2.2.7.8 Released

I'm happy to announce the release of mojoPortal 2.2.7.8, 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.

UPDATE:

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.

mojoPortal Gets A Little Microformat Oomph

Just integrated Oomph, a javascript Microformat Overlay into mojoPortal. You can watch the PDC presentation about Oomph from this page https://sessions.microsoftpdc.com/public/timeline.aspx, click Day 3 then click Oomph and you can see the video links at the bottom.

Microformats are a way of marking up information in html using some agreed upon conventions that add semantic meaning to the markup. For example hcard, is a format for marking up contact information. What Oomph does is recognize the hcards and hcalendar items in your page and creates a javascript widget in the top left of the page that gives you some neat options for adding contact to your Yahoo Contacts, adding events to your googe calendar, showing event and contact locations on a map using Virtual Earth, etc. Pretty neat stuff. You can see it in action on our consulting list, where I've marked up the content using hcard format. The list view feature of our Event Calendar Pro add on product also renders in hcalendar format so events can show up in the oomph widget. I've shrunk my browser window down a bit to make a screen shot of the widget below but for best impressions try it yourself.

oomph screen shot

Other Developments

I always like to dogfood new features here on mojoPortal.com to work out any issues, so this site is runnning the very latest code from my sandbox.

At the moment I'm also testing some performance optimizations that I just integrated into mojoPortal. As we start to do more ajaxy javascript things in mojoPortal we find ourselves adding a lot of links to javascript files which adds additional http requests to our page. So I've integrated some work by Omar Al Zabir, that he has made available in the very cool Dropthings project. This combines most of our javascript files into one request and moves the javascript to the bottom of the page to improve performance.

A similar issue exists for css files in the skin. We like to organize css into separate files based on logical things from a development perspective, but from a performance perspective we'd like to have only one link to an external css file. I implemented a solution for css files based on some of the techniques I learned from Omar's work. It combines all the css files and minifies them as well using Michael Ash's C# implementation of the YUI Compressor. So far it seems to be working great and I haven't noticed any side effects or problems.

These new feature is only in my sandbox at the moment but will be in svn trunk within a few days.

UPDATE 2008-11-03

Just discovered that moving the javascript to the bottom broke usage of NeatHtml in the forums. Luckily I have Web.config setting to disable the javascript combiner so I have fixed it on this site while I investigate a solution. There is an option that Omar implemented to add a "pin" attribute to any script that you don't want to combine or move to the bottom. The problem is I don't believe that is a valid attribute and it will break xhtml validation to use it, so I will have to find another solution.

UPDATE 2008-11-04

I managed to get a solution to pin some scripts without breaking xhtml validation, so now on this site I'm testing combined scripts again and so far so good.

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

mojoPortal 2.2.7.7 Released

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

This is a minor bug fix release for things reported in the forums since the last release.

This release does have significant changes/improvements in the experimental WebStore feature so those experimenting with this feature may be more interested in upgrading. I call it experimental primarily because at this stage of the development I can't promise smooth upgrades for this feature and because its not yet feature complete enough for general purpose ecommerce. It is functional for selling of download products and is in use on this site in the mojoPortal Store. I've been working pretty actively on this feature lately driven by a need to improve the store on this site. Strategically I also think that getting this feature in shape to really handle general ecommerce scenarios is going to be very valuable in driving popularity of mojoPortal.

I'm also happy to note that mojoPortal now has a presence on Codeplex, and our downloads are available there in addition to on Novell Forge. We are still using the Subversion repository on Novell Forge for now. I've been experimenting with Codeplex hosting since they released their server side svn bridge as I mentioned in this previous post. The Codeplex team is working on some additional features to the svn bridge that are needed before we can use it for our repository. Specifically, the svn merge commands which are really needed to manage moving changes from sandboxes into trunk are not yet available but they are confident that these features will be implemented, so ultimately we will move our repository there once its all working well. In the meantime we are glad to be able to have our release and code packages available at Codeplex and giving us more visibility in the .NET community. For those who are working with the source code I stll recommend you get it directly from svn trunk.

Now we also have a formal Issue Tracker available on Codeplex. If you want to report bugs in a formal fashion with steps to produce the bug and the ability to track when the issue is closed, feel free to use the new issue tracker. For less formal reporting of problems or bugs the forums here on mojoportal.com are still the best bet.

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

A Few New Tutorials

Just a quick post to mention a few new tutorials for mojoPortal.

How To Filter Out Un-Wanted Content From Feed Manager

by Walter Ferrari of Abertech. Big thanks to Walter! He not only helped with major improvements to the Feed Manager recently but also is willing to help with documentation which is much appreciated.

CSS - Its All About Understanding Selectors

an article I wrote today to demystify CSS a little for those trying to learn how to skin mojoPortal. Once you master CSS Selectors it becomes much easier.

Enjoy!

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

Hello World mojoPortal Quick Start Code

Just completed a new documentation page to help developers get going quickly with mojoPortal.

Hello World - Developer Quick Start

The article has a zip with sample code you can drop in and start hacking on with a few simple steps as indicated in the article. It shows how you can use a plain old UserControl or a UserControl that inherits from SiteModuleControl. Both examples also illustrate the use of the ASP.NET UpdatePanel for ajax postbacks.

Enjoy!

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