Posts in Category: Community

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;
else if(c is UserControl)

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.

Mono 2.0!

Congrats to the Mono Team on shipping Mono 2.0!

Mono 2.0

I'm eager to try it myself and am interested to hear from people using mojoPortal on Mono. So if you try it with our latest release package for Mono, let us know how it works for you.

I generally test Mono with a virtual machine where I build Mono from svn to stay up with the latest changes and then I keep another VM for testing the releases. So I downloaded the new VMWare image with openSuse 11 and Mono 2.0, but apparently this vmware image isn't compatible with the older version of VMWare server I have running, so I've got some upgrading to do before I can try it. I have a physical machine running openSuse 10.3 with VMWare server and then I run the testing virtual machines inside it. I also got a new video card I need to install in this machine so I'm installing that first and then upgrading my vmware host machine to openSuse 11 and then I'll install the newer release of VMWare server, and then finally I will be ready to play with the new Mono release.

2.0 is a big milestone for the Mono project so I'm really looking forward to it. Hope you will try it too and share your experiences. If you are a developer and you have MonoDevelop, we include a MonoDevelop solution with the mojoPortal source code, so you can checkout mojoportal from our Subversion repository and compile it with MonoDevelop. So not ony can you run mojoPortal on Mono, you can also do mojoPortal development on Linux with MonoDevelop.

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

Should we move to Codeplex?

Big news today that Codeplex now supports svn bridge on the server. I'm thinking it would be very good for the mojoPortal project if we move our source code repository there, it would get us a lot more visibility among ASP.NET developers.

The Codeplex repository actually uses Team Foundation Server and in the past you could still connect with TortoiseSVN if you installed a client side svn bridge. The problem we faced with mojoPortal is that some developers work with mojoPortal on Linux using MonoDevelop and there wasn't an svn bridge for Linux, so it could not work for developers working on Linux. That pretty much made it not an option for us. Now, if I understand the announcement correctly, with the server side svn bridge, there is nothing to install on the client so it should work with the command line svn client. I will have to test it out before making a move, but I'm leaning very strongly that way. If anyone in the mojoPortal community has strong opinions about it, now is the time to sound off. Novell Forge, where we host our source code now has been good to us but I think being a part of the Codeplex community would be good for getting more exposure to a wider community of ASP.NET developers.

UPDATE 2008-09-22

I've been trying out the Codeplex svn bridge and its mostly working but not currently able to do merge. The Codeplex team has been very helpful and responsive and is looking into the merge issue. We should know more in a few days, but as long as we can get the merge working I see no reason not to move to Codeplex. Thanks for all the input, I'll post updates as things progress.

UPDATE 2008-09-27

The latest update from the Codeplex team is that its going to take about 4-8 weeks for them to implement support for svn merge. So we will have to wait a while and try it again after they implement this. To me this is good news. I was afraid the answer was going to be that they only support svn checkout and svn update. The fact that they are going to get it working (or at least try) is very good news even if we can't move to Codeplex right away, we will be able to move there when this feature is implemented. I was surpised that they think svn merge is a rarely used feature since I use it all the time merging changes from my sandbox into trunk. It makes me wonder if I use svn merge more than most svn users. I thought my use scenario was very common having trunk and branches, and sandboxes. I generally work in my sandbox and merge changes to trunk at the end of each day as long as my work is at a stable point. I'm curious what work flow other svn users have.

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

Please Vote for mojoPortal in the 2008 CMS Awards

Huge Thanks! to everyone that nominated us.

mojoPortal is a finalist again in the Best Other CMS category in this years CMS Awards sponsored by Packt Publishing ("other" means not based on PHP).

Last year we won this category but we were the only project based on ASP.NET in the group of contenders. This year there are 2 other .NET projects in the finalists including the dominant and much better known DotNetNuke project. I think last year this award was not really on their radar, but since Packt published a book on DotNetNuke skinning I'm sure their project team is paying attention this year. If they rally their community they will trounce us in terms of votes. DotNetNuke is also a finalist in the Best Overall category and to some extent that indicates they have already beat us.

To the extent that the award is based on current popularity it seems not very likely that we can win this year, though we did beat out Plone last year and they are also much better known than mojoPortal. Our best hope is to do as much as we can to get a lot of votes and to do well in the phase of the contest where we will be evaluated by a panel of judges.

So you may ask why is DotNetNuke so well known and so dominant? The answer is they had a 2 year head start and they got a lot of help and continue to get a lot of help from Microsoft. They have their forum integrated into the hugely popular Microsoft ASP.NET site which I'm sure drives a huge amount of traffic to their site and has been very helpful for them in building their brand. Microsoft has also recognized many of their core developers with MVP awards.

I certainly don't begrudge them their success or the support they get from Microsoft. I just want people to consider that popularity doesn't neccessarily mean you have a better product. You can have a better product and still fail to get your message out there, especially if you can't get access to the same valuable promotional mechanisms and support that your competitors have available to them. I hope one day to emulate their success and am glad we made it to the finalist stage again this year. One irony may turn out to be that if DotNetNuke brings a lot of attention to this years award, it may actually help us because some of the people who go to vote for them may read about the other finalists and this may help raise awareness of mojoPortal in the .NET community.

mojoPortal has grown its community organically in spite of not having any love from Microsoft (though we wish we would get some support from them). When I inquired about getting a mojoPortal forum on the ASP.NET site I pretty much got the brush off. Its very difficult for .NET developers to find out about mojoPortal and though we have a growing and supportive community, only a small percent of the huge ASP.NET community has ever even heard of mojoPortal.

I said it last year, and I'll say it again this year, we are the underdog going into this competition. Its going to be very difficult to win and every vote will matter so please vote for us and help us spread the word about mojoPortal!


If you like you can also nominate me for the CMS MVP Award.

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

mojoPortal is Catching on at Universities!

Universites need a lot of web sites. They have many departments, divisions, research projects, events, etc., and they need web sites for all these things to disseminate information and to enable collaboration and communication between members of these various communities. With so many sites to manage, Webmasters at Universities need a good web infrastructure that allows them to easily deploy new sites and extend them as needed. Its only natural that Universites need content management systems and several Universites have selected mojoPortal for their content management needs.

Shaun Geisert, Webmaster, Division of Student Affairs, Colorado State University, recently let me know about a number of their sites already using mojoPortal as well as plans to use mojoPortal in another 20+ sites going forward.

Quoting Shaun: "Before discovering Mojo (I used CMS Matrix, btw), I had researched and/or used a number of other open source .NET CMSs in order to find one whose core framework best meets the needs of our numerous departments.  Since then, I’ve found it to be above and beyond anything else I’ve seen in the open source .NET realm."

When I look at all these sites I'm very impressed with the design work Shaun and his team did with all the different skins, they all look really great and it makes me proud to point them out as mojoPortal sites. They also produced a nice user guide document for their users that looks very professional and helpful and they've offered this document back to us as a contribution to the project. I probably need to de-brand it before sharing it so I'm not making it available right away, but will use it as a basis for producing a more generic user guide. To me, willingness to share is a clear sign that these guys "get" open source, and I'm really glad to have them in the mojoPortal community.

Another example of mojoPortal in use at Universities is the School of Health and Social Care at University of West England, Bristol.
They supported our efforts last year to implement multiple sites on a single installation using folder names, so anyone using that feature today can thank them for their good participation in the community. Quoting Matt Cownie: "we've had a tremendous amount of utility from mojo and its saved us an awful lot of donkey work." Matt is a great guy, I really enjoyed working with him on the multi sites feature last year.

A third example is the site for the Glasgow Clinical Trials Unit.

Its really great to see mojoPortal catching on in Universities and other large organizations. We've got a lot of plans for continued improvements in mojoPortal and we hope to see more and more adoption.

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