The series introduction
In past few weeks I’ve seen many people expressing their concern about the (quantity of) features in Sitefinity 4.0. Coupled with the new pricing scheme, some people wondered why would they go with Sitefinity when there are cheaper or even free alternatives that offer the same features or even more features than Sitefinity. As a developer, and I’d say someone rather familiar with the CMS industry and products out there, I decided to shed a bit of perspective on the whole “same or more features” for free or less money. Now, I am not going to go into the whole pricing thing, since many people far more competent than me have already answered those questions at numerous places.
However, what I aim to do with this series of blog posts is to demonstrate what we mean when we say terms such as “workflow”, “taxonomies”, “extensibility” etc. and then let you make your own judgment about the alternatives which provide “same” features.
Workflow – it’s more than changing states
So, in the first post of this series, I am going to touch on the workflow. When we say workflow, we don’t mean a way to change a state of the news item from “Approved” to “Published”. From our perspective, workflow is a way in which business gets done. Sure, changing the state can be part of this logic, but just changing the state cannot be called workflow (well, it can, but it shouldn’t).
It is our firm belief that it is responsibility of the workflow to accommodate the ever changing business requirements. Workflow has to do this intuitively. The best way I can illustrate this point is to show a possible real world example of this approach.
Your company has recently grown a lot and you have found yourself in a situation with many young, fresh out of puberty employees. They keep mentioning/trashing your competitors in their blogs, and since that makes your company look cheap, insecure and a bit creepy, you decide to end this practice.
If you would to solve this issue without a real workflow, it would look something like this.
You would hire a programmer to hook up to the events of CMS and perform some hard coded logic on the publish event.
Problems with this solution:
- This logic will be implemented only on publishing of blogs. If you are later to do this same thing on publishing of news, you need to hire a programmer once again to alter the logic.
- As the time goes on, new competitors may appear, so you will need to add those to your filter, again with the assistance of a developer.
- Basically, you’ve removed the symptom – not cured the disease.
Workflow solution is a much more elegant (read, cheaper in the long run) solution to this kind of a problem. So, in short, we would develop a piece of code which would search for occurrences of certain words (names of your competitors) and replace them with some other words (some more generic phrases).
I have developed a short example that demonstrates how to do this. Note that the actual code that performs the replacements is quite primitive, but will do the job of demonstrating this principle. Generally, you’d implement this with more intelligent regular expressions.
Download the source code from here (setup instructions packed with the code).
If you are just interested seeing this in action, you can take a look at this video.
This was just a short example of our implementation of Windows Workflow Foundation 4. There are many more powerful concepts packed in this implementation, which we will cover in the documentation.In the next post, I will explore Sitefinity’s taxonomy implementation and show why it is not “categories”, but something way more powerful.