This site uses cookies. By continuing you accept the use of cookies.I Accept

One of my main focuses at Mindbite is developing our largest product SiteFactory CMS which is a Content Management System built on Microsoft .Net Framework. The initial version of SiteFactory was released in the beginning of 2005. Since then the product has grown very large. We have more than 170 web sites running our CMS. The version number is now 4.0 and it runs on .Net Framework 4.0. We’ve managed to sync our major releases with the framework.

So this is the first part of many where I will introduce you in the technical features of SiteFactory CMS and why this is a product that competes with the big dogs.

Product development

Developing a product like SiteFactory CMS is done in a very strict fashion. The source code is stored in a Team Foundation Server project and all bug fixes and new features are developed by me. Everything is of course tested by my co workers before release. All new versions are pushed out to our developers and later on distributed to our Update Server that handles all updates to our customers web sites. All though this work method has been refined during the years of development we have always built SiteFactory CMS as a product.

Before 2005 when we didn’t have a product for Content Management, we took the previous built Administration interface and simply copied it to the next customer. So the last customer always got the best features.
The turning point was in 2004 when started developing SiteFactory CMS. We realized that we had to do this smarter. So we set up a Visual Source Safe project that held the source code. When Team Foundation Server 2008 was released we migrated to that. And now we use Team Foundation Server 2010. So the product has a strong base where every version is documented.

All the small things

The product incorporates all the features a worthy CMS should, e. g. full page control with smart content editor, Url Rewriting, Templates, the ability to extend it with modules and much more. We believe that these features should be taken for grated when choosing your Content Management System, so in this post I will focus on the small things that makes it easy for a developer to set up a web site using SiteFactory CMS. All the small things eventually ends up to something beautiful.

At Mindbite we have a saying; “Never do the same thing twice”. Code re-use is something we love. So every time any of our developers has to implement the same code twice in a solution, we incorporate the code into our source code instead. The rule is to test it in one solution before it makes its way in to the source code.

One of the largest single classes in the source code is our Utilities class. This class holds long over 100 methods and functions that will help the developer to do common tasks.


This class holds functions that converts text, e. g. IDN converter for Domain names containing national characters, and many other functions.


You can put any type of structured data (DataSet, DataTable) into this class and get a response in XML or CSV.


Commonly used DateTime functions are stored here. And hey, if you easily want to find out the week number for 2043-12-05 this is the place to look. Or if you want the Swedish name for month number 4, we have neat functions for that.


This may be the class I use most often when I build modules for SiteFactory CMS. You can with one line of code convert a file to bytes or bytes to a file. You can zip a file/folder, and write a file or bytes to the response header. You can also determine if a file is an image file. This class holds this and much more.


This is also a favorite class. This class lets you with only one line of code resize, rotate, crop, change image quality, watermark, append text or an image to an image and much more. You can either let the class return the processed image as bytes or save it as a file directly.

It’s not only smart and easy, it’s quick too.


The simplest part of our Messaging class is sending an e-mail. But as with almost everything here you do it with one line of code.

This class is also a messaging layer which transports all messages in the SiteFactory CMS system. For example, when a form is posted, we put a message into the system and the GUI retrieves it and displays it to the user.

Other help methods/functions

We also have functions that can return the application’s path in different ways or return different types of random characters or numbers. Thanks to Regular Expressions we can parse links/anchors in the content you provide.

Closing comments

This was the first post in what I expect to be a long series about the features in SiteFactory CMS from a technical point of view.

In Part 2 I will focus on PageTypes and Url Rewriting.


Marcus Wednesday, February 2, 2011 at 9:56 PM

Great post for a great product!

Robin Wednesday, February 2, 2011 at 10:34 PM

And a great comment for a first comment :-)

Post a comment

Post a comment