Time for… something different: Umbraco CMS

All you guys, readers, know, I’m totally devoted to Sitecore. Although you also know, that in some circumstances, you can’t use a product like Sitecore.  It’s to expensive, or just to big… or? For those moments it’s important to find some, cheaper or free, alternatives, which can be compared against Sitecore. Why comparing them? You will automatically do that. You also require products which have at least 50% of the features Sitecore has and at least another additional 25% when it comes to plugin/module structures.

For .NET development, I’m actually looking at another Danish product: Umbraco CMS.Yesterday version 3 beta was published and as neighbours of Sitecore, they provide a nice extensible solution.


Installing and trying should be done within 10 minutes and then just give it a try :D! It’s worth it!


Yeah, we got certified. I say we, as it wasn’t just me. Ben, Martijn and Max, my direct colleagues, also became Sitecore Level 1 Developers! So that means: mission accomplished.

And no, the last test wasn’t so easy as expected. From the 40 question, I definitelly doubt about 10 of them. I guess level 2 will be a little easier as the Sitecore API is actually more my specialisation… But so far I’ve seen there was a lot to learn. Altough I already knew how the new Media Lib fro example worked, I didn’t work with it the way the course wanted. Or stuff like templates, initial values, default values, etc, etc. All of those aren’t really used by me, most of the time a colleague configured those stuff. A new world opened :). Lots of inspiration to finish my 5.3 blog series. Starting from tomorrow.

Thank you Kerry for giving this exciting course. And for all of those who still thin king about participating, here’s the word from the ‘master’ you can definitelly learn something from it! It’s worth it!

The total new thing totally cleared up by me today was the Security modal on individual rights. Also some on how to implement some default workflows definitelly cleart up my brain. More on those topics in later posts!

Road to become certified

Today I’ve started participating the Sitecore Developer Level 1 Course. Aren’t you certified, Alex? No I’m not! Too bad didn’t had the opportunity before. Like most of my colleagues. But our managing director has decided that it’s time to become certified. Together with Martijn, my technical teamlead, we’ve pushed him a little and show the result: training.

Kerry Bellerose from Sitecore traveled all the way to Zaltbommel and this morning we’ve started. As only techies from LECTRIC are participating, the quality of questions, discussions, etc is quite high. The course itself is a tough one. So much stuff has to be discussed, done and recognized. We started at around 45 minutes to late and finished at around a quarter to five, with only the XSLT-lab ahead. I’ve created 50% of it, in at around 10 minutes. So we’re on schedule :).

Also happy with Kerry as an instructor. He discussed our goals for the course with us and told us that it IS an advantage that we are all experienced :). Sometimes it becomes a bit boring, but as the course is based on 5.3, most of the time it stays interesting. Kerry’s diary it is full of questions, remarks and bugs in and about 5.3, which should be good feedback for the guys up in Denmark.

After this, I hope I’ll be able to become level 2 certified soon. I guess it won’t be possible before the end of 2006, but hopefully Q1…
Together with this course, we’re looking for a XSLT-course. We’re using more and more XSLT, which makes it able to spend more time on advanced functionality instead of simple content renderings. But, we’ve seen that our knowledge level is way to low to have real advantages of it. So we’re looking for the best course ‘Developing in XPath and XSLT’. It’s quite hard to find, so it might be interesting to invite a trainer with a specific program for us.

If that isn’t enough I’m currently at the start of a MS certificating path. My goals is to do the full MSCP certification for all 3 competencies in 15 months… It seems to be quite long for 7 exams, but with the average of 1 book per exam and the fact that I’ll try to do it with just self-study, I guess it will be still a tough job.

So far the set of certifications, exams and study-paths :). Maybe a little more tomorrow about day 2 of the course! 🙂

Good news: RC3 and RC4 upcoming…, Atlas 1.0 Beta and Vacation

Good news! The RC3 of Sitecore 5.3 is published and RC4 is upcoming RC4 story is a fable caused by wrong communication… Altough that’s what I’ve heard so far… Maybe it’s time to talk with Google about Releases, Beta’s and Release Candidates ;)? Well so faar, the product becomes more stable then it already was, so that’s good news. For those who’ve already started developing with 5.3, I can imagine new RC’s are a hell. I’m sorry, Ben en Sjoerd. As those 2 are prototyping with 5.3 since the first beta release… 😛

Some other good news came from the otherside of the big ocean: ASP.NET AJAX Beta 1-formerly-known-as-Atlas is released today! Scott Guthrie wrote a full entry about it. Before downloading, make sure you’ll read this post as Beta 1 have had incredible changed comparing to the last CTP’s. Guess Ole and Jakob are happy with this release. I suppose that 5.3 is about to be released and the plans for 5.4 are already there(that’s what I’ve heard), one of their wishes was a native ASP.NET AJAX client. It definitelly can improve preformence!

Last one: It’s time to take a beer! A full week of relaxation. I’ll stay in Holland, even in my home town. But finally have time to work out all of those plans posted last weeks. So stay tuned! For those who are interested in photos of our beautiful country, maybe you can give me a task and if it is original, I’ll take some photos for you. But it should be original :P… There are plenty of pictures of mills, the red light district in Amsterdam and cheese around on the internet! 🙂

I’ll end this post with the plach which won’t be used the next week. Every has changed a bit here at the office. I present you guys: my clean desk!

Alex' desk just before vacation!

Data structures in 3 levels

For regular readers of my blog, it won’t be surprising to hear that my brains never stop working. For those who know me in real life, it should be clear that my brain is as much a chaos as my personal presentation is ;). Same today. While chatting a bit with Lars, my vision on content management became finally clear. The following post is one, which should be posted on CMShunk, one of the project I’m planning to finish before the end of 2006. It should become a blog full about the concept Content Management, not just the platform Sitecore. This doesn’t mean that I’ll stop updating .Sitecore, but it gives me some space to talk about something more then just Sitecore :). Also comparing Sitecore against other CMS’ will become more objective. But it isn’t so far, so here’s my vision on Content Management, today Tuesday the 17th of October:

For me, Content management is a new way of Data structures. So far we’ve seem several ways of storing data. With the example relational database as one of the most likeliest. Another example, based on the same relational principle are, is XML. The principles are clear, you will store data in ‘Entities’, those Entities contain only real data(no production data like summaries, counters, etc) and to make it hard to get for a human being, it contains identifiers.

Identifiers, normally known as ID’s. It are unique figures of sometimes it are nearly full sentences(GUIDs for example).
Another hard word I used above, Entity, is just a friendly name for a collection of Typed or Untyped fields…
What the f*** are Typed or Untyped fields then? It is a way to store data, with Strong Typing(it expects an ‘a’ so only accepts and ‘a’) enabled or just disabled. It’s all about validation. You do expect only characters, so only characters can be stored, same goes for the length of the field. Untyped fields(like you’ve got them in XML, without using DTD’s or XSD’s) are the opposite, they don’t expect anything, so they don’t validate data.

So far everything clear? Then it’s now time to move on with the ID’s. The ID’s provide more dimensions to data. You can refer from Entity X to Entity Y with an ID. As it should be unique to all entities of the same kind, you don’t have to worry anymore about data corruption in the way of referring. The following picture gives you a an example how Entity Y is associated with Entity X:


So far it’s al quite simple, isn’t it? Where I’ve just talked about is in my opinion Data structures level 1. The first level of data storage in the modern world. It has its own rules and does provide a quite simple overview of the data. Also more complex data structures can be created. But that’s out of scope.
You do know this level don’t you? And you agree with me, as a techie, that this is a real simple way of storing your data structures. You guys probably  also know about the problem which are between relational storage and OOP. The part which is mostly called Object/Relation Mapping.

As that’s level 1, what’s level 2? It isn’t that hard. Content Management the way we know it these days is. Primary because of the realization that ID’s, the way they are present in level 1, are replaced by tree and other unique, visible, identifiers. Another reason to divide level 1 and 2, is because the realization of what kind of data we are working with. Meta data, which gives additional information to the primary Entity, is now divided from the core information in the Entity. A kind of Sub-Entity is created. It is directly associated, but not a part of the core Entity. It can describe the core Entity. A good example of meta data is the Exif-data of images in Sitecore 5.3.

Some other improvements are the Logical Typed Fields, for example HTML/Rich-Text Fields. They contain more then just the basic types(0-9 & a-z), but still can be validated. Logical Typed Fields are also Link-fields, which provide internal linking, again in a visible way, no longer by using non understandable ID’s.

Looking at this, you can simply say it just a way of presentation. And you are right. The level below is still the relational way. For that reason I’ve decided to call it levels. But don’t forget that thousand and thousands of developers are working on this level on daily base. It does have its right for existence. I guess these days developers are working more and more on this level, instead of working on level 1…

A disadvantage of level 2 is still that it’s a creation by techies. For end-users it’s still not natural. Give my mother a level 2 system and she will end up nowhere. Therefor, I’ll introduce level 3. The next dimension. On level 3 you’ll create Entities which are designed by human beings, which doesn’t depend anymore on technical choices, but depends on the way humans handle, maybe it should even change to individual users.
It’s all quite spacy isn’t it? Well, so far I can’t describe level 3. But what I do know is when you reach level 3. You are able to bring content management to the heart of an organization. As it is low level, users should naturally start working with it. Other systems should collaborate with you CMS. But we haven’t reached that level. And you’ll never reach that level by just listening to user experiences, you should play around with users. Make them happy, confuse them(seems like Microsoft is quite good at this looking at the Office Suite…), etc.

So far I’m not sure what the exact borders are between level 2 and 3. Try to figure this out, but this takes some time. Also working on writing the stuff above down and showing and prove the difference between level 1 and 2. Thinking of it, level 3 maybe can replace level 2…
Enough information to think about. But what I do know is that Information is the most important part of an organization. Integrating Content and Document(which IS content) Management Solutions won’t become easier on level 3, but the acceptance by users will be accelerated and goals of this kind of solutions are finally reached instead of sleeping at 50%.

For everyone who doesn’t agree with me: I’m very interested how you look at the way data in managed in the current world. I’m also interested in the way you will improve your world. I’m definitely not interested in the vision of people who aren’t interested in enhancing their own vision. My vision can be changed by your vision, so open your mind and lets lift it to a higher level!

That’s it for now. As this topic can become quite abstract, or just to technical, I can imagine you’ve stopped reading. Don’t worry, I’m trying to write this full article down while investigating other possibilities. When it is published it is definitely done in a more human readable way. But my brains haven’t made it fully clear at the moment. So handle this post as a draft ;)(which took more then an hour to write).

Design Documents – 0 of 7 – The introduction

As you might have noticed, I’m working on improving my personal vision on (Sitecore) development. LECTRIC gives me, most of the time, the space to integrate these experiences into the projects. One of the main topics is the full development process. And this post, and the following, are part of this long-term project. This project should never end, only new milestones have to be defined. As we’ve recently got some stuff on rails, it’s time to define my next personal goal, and new LECTRIC-goals. So far I’ve been busy with:

  • Bring structure on our development server (Work in process)
  • Structured Sitecore Project Start-Up (Finished)
  • LECTRIC – Library (Colleague is taking over, and defining quality rules)
  • .NET <-> XHTML (Colleague is investigating topic with some major goals)
  • Facilities for Sitecore Training (Images are made, Training’s went well so far)
  • Internal Sitecore Support workflow (Finished)
  • Versioning of Sitecore Distributions and Modules (Running, continue process)
  • Internal Sitecore Newsletter (Issue 2 about to release tomorrow)

New goals shouldn’t be defined by me, but by the Lead Engineer of our Sitecore-team together with the team. Personally, I’m interested in the way how we can write quite good design documents. I’ve got a theory, and going to explain it based on the case ‘5.3 Testsuit’. This serie will not only be Sitecore specific. I guess it can be used for more then just Sitecore. But at least it is a good start upgrading your technical design documents to a higher level. The subject of the first  2 entries will be: Requirement and Analysis. Combining this in a document: Requirements and Analysis Document(RAD). I can’t make it easier ;). The first post will define a framework how to set-up this document, in the second one, I’ll discuss it, based on the first case. Naturally, I’ll publish the document here.

Now it’s time to sleep. Tomorrow more about my MondoSearch – dtSearch duel… 🙂

Update: I’ve been thinking about this post and I want you to know that this isn’t a way of designing which is found by me, but it will be optimised by me for (W)CMS-projects.

Sitecore on Google

Once per week I query Sitecore on Google. I use diffrent entrypoints as Google has the strange behaviour it filters and manipulates search results based on region:

  1. The Netherlands
  2. International/American Search
  3. Denmark

Funny stuff: my blog is ranked on different positions and with different URLs. For example, in the Dutch version of Google, my atom-feed is ranked instead of my Homepage… Ulco suggested it could have something to do with a strange bug in WordPress or the Google Indexer. Altough I can’t find any related links :(.

Talking about search-engines: Scoble pointed on the new Microsoft Live Search, which is amazing :). Look at the results for Holland…(Yes!! Ranked Second!) But again different behaviour for the USA and Denmark.

IT was good to see that Google didn’t suggest any other searchphrases anymore when searching for ‘sitecore’, Live Search just started…

The reason I’ve started blogging was actually because I found this url… Sitecore Bootcamp! 🙂 Some of you guys would scratch on a once-hary-place on their hat now: Isn’t that Alex, the Sitecore addict? He’s interested in a Bootcamp? Yes, actually I’m. I’m interested in the way its given, what it contains and how to participate. In my opinion, the Developer courses are definitelly good  enough for the simple to advanced Sitecore engineering, but when continueing on advanced topics, such as Security and Custom Workflows, your knowledge is based on what you can find on SDN or it depends on your API-read skills. I’m definitelly interested what P5 / Pentia offers! Even more important: does Sitecore recognise this course? Well going to contact P5 / Pentia and will keep you guys informed!

It’s review time again!

Yes it is time… again. After lots of changes it’s time to re-review 5.3. I did actually start reviewing but had to decide to stop. Too much stuff stopped working, show stoppers ocurred, etc. But… Sitecore shouldn’t be Sitecore as they did listen to the customer, reviewed their architecture, installer and major changes in the client and see the result: Release Candidate 2. I know it arrived later as planned, but in my opinion 5.3 is a more quality release then before. The time Sitecore took and the fact they reviewed and revisioned the new Media Library, says me that this release is one of the best of the last 2 years.

I’ve just installed the version on my notebook and removed the old RC. Results so far are surprising: the installer is 3/4 times faster(there is also a second installer for Databases), finally scripts are filled in the way they should and the installer does indeed ignore files which aren’t selected ;). Then, the site runs without any other actions taken by me, initialisation took just 45 seconds(incl. attaching databases to a clean installed SQL Express 2005), etc, etc.

But that’s just my first (visual) impression. But from tomorrow it’s time to preform some real tests!
Comparing is just a simple but efficient way of rating products and the best way to change the view of salesmen. So, I’ve just decided to create a test-suit. This test-suit will include:

  • Database comparison: As I  haven’t seen any comparisons between the data-layers, I have to create them by myself. Testing will be done on SQLite, SQLServer 2000, SQL Express 2005 and MySQL(do you guys know I was a MySQL certfied DBA?). Tests will include reading, writing, publishing and deleting.
  • Sitecore XPath comparison: Usage of functionality within your client, compared to ‘real’ XPath.
  • Load tests: To which level is Sitecore able to preform liniar?

Suggestions are welcome. All these tests will be published on my blog so you guys can review them before I’ll actually preform the test. Results will be published here again.

The only thing, next to creating the tests, is finding the best test set-up. As we’ve got a quite impressive Server farm at LECTRIC, it shouldn’t be a problem…? Albert, my dear BOFH? 😉

Sandcastle your Sitecore world

My first requirements when developing against an API is an advanced API description. Documents generated by NDoc where so far more then sufficient for me. But with the introduction of .NET 2.0, NDoc seems to have several problems to integrate Generics for example in their architecture. Microsoft did accelarate on this and decided to provide their own MSDN library generator to the world. The only problem was that it was an internal tool… SO after a couple of months, Microsoft did release: Sandcastle. So far, the main source for information about Sandcastle is this blog. Interesting thing is that Microsoft takes the usage of Sandcastle very serious. They know Sandcastle is a part of the buildprocess for other comapnies, so this month théy have released a CTP ánd a CTP Technical Refresh.

The guys up in Copenhagen have already noticed their documentation team:

I hope our Op-team is using Sandcastle – I made them aware of it a couple of months ago.


But till they make it available at SDN5, I’l provide you tips and trics to generate it by yourself. So fooks, get your cookbooks and get ready! It’s time to bake some sandcakes!

First of all download the latest Sandcastle CTP and download the following tool to make it more easier for yourself: http://www.codeproject.com/useritems/SandcastleBuilder.asp

Then, create a temp folder on your desktop. For example: ‘Workfolder Sandcastle’.
Create a folder inside of it ‘sources’. Copy the full contents of the bin-folder of your Sitecore distribution to this ‘sources’ folder.

Then open the SandcastleBuilder, create a new project and attach the Sitecore.Kernel.dll for documenting.

Dependencies should be set to the sources-folder and to the full .NET 2.0 folder(most of the time: %windows%\Microsoft.NET\Framework\v2.0.50727).

Just fill in the form, set or remove some flag(for quick generation, disable external url resolving).
Then save the project-file of the Builder in your ‘Workfolder Sandcastle’.

Ctrl+Shirt+B and let’s drink some coffee… :). For futher assistence, results and panic situation, contact me :).

5.3 RC1 dump

For thos guys who have problems opening the .chm-file, read this link.