Bill Bosacker

This is just my normal user blog for things that don't fit in the other blogs, but are tailored for the open source C/C++/C# and .NET communities.

July 2009 - Posts

Umbraco: The not so friendly (anti-Karma) community

UPDATE 07/26/2009: Thanks to the comment posted by Gabe Sumners, this week of loss due to Umbraco was not in vein.  Sitefinity is an AWESOME product.  It only took about 5 hours to integrate the entire project with Sitefinity, and for about 1/5 ($899) the licensing cost of Umbraco ($4,300-$5,800).

Recently, a client of mine had been pushing the use of a CMS for his project, with Umbraco being his choice.  The original plan was to wait about a year or two before switching over, but he had been rather persistent, so I told him that I'd look into it.  About every 6 months I evaluate what is out there, but it had been a little longer than that for Umbraco as it was one of the absolute worst CMS's out there when I evaluated it 2 years ago.  Now, it is no longer 100% XSLT based and the user side now partially supports the ASP.NET Membership System (what they call members).

I spent a couple days looking at the product and was pleasantly surprised to see how far it had come, but there are still a few quirks.  The separation of back office users and application users (members) is not a very good security model.  I discussed it in their forums with a few people and we all agreed that their current model does need some work.  I provided them with an example of how to accomplish it with a single membership store, something that had never occurred to them. and they appeared to be rather interested in the idea, so everything was good.  After fixing a few bugs in the installer that were related to their implementation of the membership system, I was able to get it to install.

The first order of business was to get the existing master pages, style sheets, and images into the system.  Our master pages have custom code behinds, so we opted to create an empty Web Application Project (WAP) at the root of the site for our custom code.  All of the binaries used and created by Umbraco, were added to the project's references.  After adding the master pages to Umbraco, they were included in the project along with their code behind.  This allowed us to build and test from a single location and works rather well.  In order for it to work though, you need to ensure that the master pages are always writable/checked out.  Otherwise, the Umbraco window will not act properly and you won't know why.

After a little bit of coding and moving things around, we were able to get the site running, though we hadn't updated the style sheet and image references yet.  The current site uses the ASP.NET Theming System as there is a requirement to provide special themes for holidays and special events.  We also used it because the skinning (.skin file) system makes it extremely easy to duplicate a look and feel for controls across the entire site.  The style sheet references were rather straight forward as all style sheets exist in the ~/css/ folder, which is rather standard for basic web sites.  Media is uploaded through the Umbraco window (see below) and made available through the ~/Media/ folder.  It is placed in a sub-folder with the name of the node Id where the object is stored in the database, but there is nothing in the window that tells you how to reference the image.

So, I search the Umbraco forums to figure out how to reference these images.  What I initially learn is that there is nothing built into Umbraco to help you access these media objects.  There are several posts on the subject and the result of every one is that you must either write a custom XSLT script and create a macro, or use a 3rd party tool to reference the object.  At this point I'm thinking, "Are you kidding me?"  Why in the world would you have a media section at all, if there isn't an easy method to access the media that it contains.  So, I create another post in the forums asking if what was previously posted is true.  After 8 replies, everyone confirmed the information and said that I should not be using the Media section for background images.

They say that I should upload the images to an image folder via FTP and then use those images.  They don't even consider the fact that businesses who have an SDLC and operate under CMMI or SOX requirements, do not allow anyone other than IT technicians to access production files or databases.  These people obviously don't know how real world business works, or what a true CMS is, and Umbraco is starting to look like a DMS/CMS hybrid with a flashy UI.  Additionally, every single reply is either a personal attack on me, or an attack on my development background of 30 years.  At this point my client decided to drop Umbraco as he was extremely dissatisfied with the forum community, so I posted that the use of Umbraco had been dropped.

Then there is a reply from a very nice guy, Peter Dijksterhuis, who doesn't come up with the answer, but his question does give me an idea for a work-around.  Thanks Peter.  The work-around consisted of going to the media section, clicking on the object, right clicking on the thumbnail, selecting properties, copying the URL, pasting the URL, and then removing "_thumb" from the URL.  A lot of clicks, but it does work.  I posted this and then all hell broke loose, due to my prior post that we had decided to drop Umbraco.  People start saying that I don't know how to use a CMS, that I shouldn't be allowing web designers to edit style sheets or master pages (their primary job), some one even thinks that I am "...a fictional character designed as flame bait for the other members of this forum..", and the bashing is pretty sad.

On top of this, their silly forum design allows users to give a thumbs up/down for each post/reply, which relates to Karma, and everyone immediately rates every single one of my posts with a thumbs down.  While I do believe that this is the most ridiculous feature that I have ever seen in a forum, I am extremely glad that they have it.  Why?  On a social site this would create unrest and inevitably causes users to leave, which is the effect it is having on my client and myself.  It has saved my client, and myself, from making a huge mistake that could have cost us thousands of dollars in wasted development time and software licensing.  I would like to thank the Umbraco forum users for showing their true colors.

Lets see how many negative Karma votes this post gets...

On a good note, Telligent is under a lot of pressure to release Graffiti CMS 2.0, which hasn't been worked on since December 2008.  While Telligent had originally decided against releasing it to the open source community, the serious drop of activity in their forums may force them to revisit this.  Scott Watermasysk is supposed to post something very soon about the future of Graffiti as the What is the future of Graffiti? post by Rob Howard (ex-CEO of Telligent) is almost 4 months old now, and nothing has been done.

.NET Tweeks

The latest .NET Tweeks post is now out and is the first of a multi-part series of Tweeks that developers can use in their everyday development of ASP.NET applications.  This week it covers the PageBase idea and how to integrate it with master pages.  Next week will cover an abstract method of accessing the business tier from a static class as opposed to directly accessing the business tier.

.NET Tweeks