End of Week Community Server Riff for November 15, 2008

Overall a good week was had by all.  Enjoyed some new client contacts, both Community Server and non-CS.  I’ll talk about the client contacts first.  Interestingly, both CS gigs involved upgrades from CS2008 to CS2008.5, and both sites were based on my favorite theme, Lean and Green.  This theme, of course, no longer exists in CS2008.5, adding some additional overhead to the projects.  One of the companies told me how they were already steamed about the CS2008.5 license increase (surprise), so the fact that there was no support for their CS2008 theme didn’t lessen their regret in having invested in Community Server 6 months ago.

Two interesting non-Community Server project offers as well this week.  One was to take over a site having to do with holistic healing and another to integrate YetAnotherForum.net membership into an existing ASP in-house system.  The holistic healing project was tempting, but it was all HTML and not exactly my specialty anymore.  I would have loved the opportunity to do the YAF.net project.  If the existing system was ASPNET, YAF.net would have supported it out of the box, but writing a custom provider was slightly over budget.

Back to the Community Server workspace, this was 2008.5 Service Pack 1 week.  All-in-all, the upgrades to several CS2008.5 sites went really well.  Good job on the SP1, Dallas.  I’ll have to review the update and bug fix list, cause I haven’t seen anything new or improved yet.  One issue I had with the upgrades was that the sites I upgraded with the SP1 Update package were displaying an older build number.  I mentioned it on CS Forums.  Thank God for Afscrome, who at least responded.  To prevent corruption, I couldn’t wait to find out if my CS2008.5 SP1 clients were running the latest source and SQL schema or not, so I did a WinMerge to confirm that only the AssemblyVersionInfo.cs files were not updated.  So my SP1 updates are done, thankfully.

I wrote a Chameleon subform this week. I don’t get to write enough of those, but I enjoy the opportunity when I can.  They’re very similar to Chameleon forms, yet with ApplyChangesAfterCommit() and ApplyChangesBeforeCommit() overrides that work with the parent form’s Submit() processes.  That’s very cool to me.

I enjoyed creating another Community Server Widget this week.  Nothing exciting, but end-of-week Riff-worthy.  I’ve done enough widgets now that I’m ready to automate the task with a Drive CodeSmith template for Widgets.  I will let you know when it’s available in Drive.  The widget consists of a simple list of blog links that are self-aware enough to highlight the current blog.  Like everything Ben Tiedt designs, Community Server Widgets are both elegant and powerful.  Here’s the end result.

The “Categories” widget at bottom is another home-growner which I blogged about in this end-of-week CS riff.  Back to today’s widget, “Directories” are blogs of a specific group, having their own extended attributes and themes.


Circled in red is the blog list data source in DRIVEContext, an extension of CSContext generated by my Drive Project Startup templates.  I could have done a straight-up WeblogList query by groupID, but since I had the directories at the ready in a DRIVEContext object it was more efficient for me to pull them from memory.

Here are the essentials of a custom widget class (which, as I said, I’ll hopefully have available in Drive soon.)

The essentials here are that AddContentControls() displays the content in the sidebar, with GetPropertyGroups() used to obtain the control’s properties in the widget admin UI.  Fill in the blanks and you’ve got yourself a Community Server widget.

And without doing anything further you’ve got yourself another end-of-week Riff.  I’ll report back to you again soon, I hope.

Article written by

A long time developer, I was an early adopter of Linux in the mid-90's for a few years until I entered corporate environments and worked with Microsoft technologies like ASP, then .NET. In 2008 I released Sueetie, an Online Community Platform built in .NET. In late 2012 I returned to my Linux roots and locked in on Java development. Much of my work is available on GitHub.