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.

Lowering Entry Point Barriers for Developers

I'm always interested to hear developer opinions about mojoPortal. I don't always agree with them, but I try to keep an open mind and see their perspective. So I monitor the blogosphere with google alerts, so that if anyone mentions mojoPortal in their blog I get an email alert with a link. It doesn't catch everything and more often than not I just get alerts about my own blog posts, but now and then something of interest appears.

So I got an alert about this blog post by Artem Smirnov where he complained about having to inherit from a base class to make a mojoPortal plug in. He wishes he could just use a plain old UserControl and he does not want to have to create any configuration file to install it.

mojoPortal provides a base class, SiteModuleControl which "is a" UserControl that contains some additional functionality that allows you to make multi instance features. Like a blog for example, in mojoPortal you can put an instance of the blog feature on one page and another instance on another page and these are totally separate instances with different content. This is the way most of the features in mojoPortal work and SiteModuleControl provides the instance specific properties and settings that enable easy development of features that support multiple intances.

But maybe sometimes you don't need your feature to support multiple instances and would rather just use a plain old UserControl. This is the valid point I took from Artem's post. And since SiteModuleControl "is a" UserControl and plugs in the same way you plug in a UserControl, I thought, why not make it possible to use a plain old UserControl if you want to. Its a very simple code change to support it, the only thing we do differently if the UserControl is a SiteModuleControl is set a few properties on it, if its just a plain UserControl we skip that step.

Control c = Page.LoadControl(module.ControlSource);
if (c == null) { continue; }

if (c is SiteModuleControl)
{
SiteModuleControl siteModule = c as SiteModuleControl;

siteModule.SiteId = siteSettings.SiteId;
siteModule.ModuleConfiguration = module;
parent.Controls.Add(siteModule);
}
else if(c is UserControl)
{
parent.Controls.Add(c);
}

This change is in svn trunk now. I would also like to mention that you can easily install a SiteModuleControl or a UserControl right from the Web UI, you don't have to create configuration files to install it though there is a system for it and it is recommended if you will be packaging your feature for installation on other machines. The place where you can install it from the UI is under Administration Menu > Advanced Tools > Feature Installation

So, it is now possible to use a plain old UserControl if you want to. If you need to support multiple instances of your feature like we do for most of the mojoPortal features then you should inherit your UserControl from SiteModuleControl and follow the guidelines for feature development.

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

mojoPortal 2.2.7.6 Released

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

In addition to bug fixes for things reported in the forums since the last release, this release includes the new Content Rating System and Feed Manager improvements mentioned in this previous post, as well as the new option in Site Statistics to show a graph of new site member registrations that I mentioned in this post.

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