Using the VS.NET Web Page Designer with mojoPortal

For a long time my use of MasterPages has prevented the use of the VS.NET designer in setting up page layout.  Its never really bothered me because I'm an old school html guy and really never use the designer anyway so I didn't look into it too hard.  Since then several people have asked and expressed their wish for it to work in the VS.NET designer.  Well big thanks go out to Jan Hussaarts for figuring out why it didn't work and how to easily fix it.

It wasn't a problem with MasterPages itself, it was code I added to make it get the skin setting from the SiteSettings object stored in the HttpContext. The problem was that at design time there is no HttpContext so all it needed was a check to see if HttpContext is null before using it and now it works in the designer!

Its commited to svn for those of you working with the VS.NET Solution.

Release 20050710

I just posted a new release on the Download page.  This release adds the Search feature powered by DotLucene as well as advanced logging capabilities powered by log4net.

There are no changes to the table structures for this release but users of PostgreSQL and MS SQL will need to re-run the stored procedure scripts for upgrading from version 20050618.
You will want to replace every file except maybe your Web.config.

Be sure and back up your site and db before upgrading and as always if you have any trouble please post in the Forums.

The latest code is not yet commited to svn because I'm having connection troubles with the repository on Novell Forge.  Its never happened before so I'm optimistic they will have this fixed tomorrow. I'm not the only Novell Forge user reporting this problem today, I will commit the newest code as soon as this is working again.

Update 7/11/2005:
The problem with the svn repository on Novell Forge was fixed today and I commited the latest code and also put up a new zip file for those who haven't got hip to svn yet.

Making Good Progress on the Search feature

I'm making good progress implementing the site Search feature using DotLucene (not to be confused with Lucene.NET), big thanks to Martijn Boland for good advice and also for good code examples on using DotLucene in his Cuyahoga Web Site Framework.  His project is also a good reference for those who want to use NHibernate in ASP.NET.

The search is functional and working on this site, though it still needs some refinement before I make a release. The index for the search is maintened as content is created and updated so it will always stay in synch. Search results are filtered by role and the index is updated if view permissions for a page are updated so that the filtering is always correct.

Search is implemented in:
Html Content
Blogs
Forums
Event Calendar
Image Gallery
Links
Shared Files

The biggest challenge is getting good performance in building the index for an existing site which will be needed for users upgrading from older versions of mojoPortal. I've created a button to build the index for the whole site but the quandry I face is after the upgrade people should really never click it. Especially if the site gets really big say hundreds of pages or thousands of forum posts it would really be best to leave the indexes to manage themselves. But if the button is there, people will click it.

One option I suppose is to put the button in the page settings and make the user manually index each page in the site rather than the whole site. This would break it down to smaller chunks at a time but still would not be a good thing to do on the page that has the forums after you get a thousand posts as each post will be indexed.  I don't know of anyone currently using mojoPortal that has hundreds of pages or thousands of posts so maybe I shouldn't worry about it too much. Building the index will definitely be an Admin only feature.

Release 20050625, minor bugfix and workarounds under mono 1.1.8.x

I just released a new set of files to address several problems reported in mojoPortal under mono 1.1.8

None of these problems exist in mono 1.1.7 and also not  in Windows .NET.

It seems that mono has become case sensitive in the attribute declaration of a DataGrid TemplateColumn, if I change it to
ItemStyle-HorizontalAlign="Center" it works but ITEMSTYLE-HORIZONTALALIGN="Center" causes an error
I have reported this problem on bugzilla with a test case http://bugzilla.ximian.com/show_bug.cgi?id=75379

There was a  problem with the SiteMenu with some of the properties I had forgot to create public getters and setters for
SubMenuCssClass="" in the markup raised an error because there was no public property SubMenuCssClass, only a private property subMenuCssClass
This was a problem in my code because my intention was to expose that publicly but I forgot.
But it is also a problem in the mono code because it should gracefully ignore any attribute settings for which it cannot find a public property as it did in 1.1.7 and as it does on Windows .NET.
I have fixed this in mojoPortal but have not reported to bugzilla as I'm not sure of an easy test case I can create and not motivated to put time into it since I have a workaround that solves my problem.

Several users have reported a strange problem where a 0 is displayed at the end of every blog post or html content entry. I have not been able to reproduce it on my end but I don't have any machines with the release version of mono 1.1.8. I have a test machine with the very latest mono code from svn, 1.1.8 rev 46493 and it does not happen for me.

I have also seen problems with images not displaying and stylesheets getting lost on page refresh on some users sites that are running 1.1.8.x release, but I think they are also running apache 1.3 which may be a factor in the problem because I can't reproduce it on apache 2.

My advice if you are running mono 1.1.7, stay with it for now as it is very stable and 1.1.8 seems a bit rough around the edges.

Release 20050620

I just made a new release that includes the cool new SmartDropdown I mentioned in my previous posts. I don't normally make a new release only 2 days after the previous release but this feature did not require any changes to the structure of the database so its an easy upgrade from 20050618. As always be sure and back up both your web site and your db if you are using the site. Update all the web files. If upgrading from previous versions run the appropriate upgrade scripts first and if using MS SQL or PostgreSQL run the stored procedure script again to update all the procedures.  Of course if you are fairly new to mojoPortal a clean install of the latest version is the easy way to go.

I also wanted to go ahead and roll out this feature because the next things I'm going to work on are fairly significant features and I didn't want to delay the current feature too long.

Next on my list are Site Search which I'm going to try and implement with Lucene.NET and logging which I plan to implement with Log4Net

Woa! I just went to the Lucene.NET site to get the link for this post and it says they have stopped open source development. Looks like they've gone commercial. Wonder if I can use the version of Lucene.NET I already have in mojoPortal without getting into any trouble? I hadn't been to the site in a while, looks like they made the decision last September.

Any license gurus out there? If they previously released it under Apache License, Version 2.0 can I continue to use that version in mojoPortal or can they retroactively change the license? I could use some advice before I invest my time trying to get it working.

Update: Thanks Michel, I was confused, it is DotLucene that I planned to use all along and it is still open source. I went to the the Lucene.NET page by accident and got confused.