Umbraco 4.10.0 Release Candidate

Friday, November 02, 2012 by Sebastiaan Janssen


Today we are proud to announce the long awaited
Release Candidate of Umbraco 4.10.0, (also known as "The MVC Edition")!

There's an awesome, mind boggling, list of changes for this version, including 65 bug fixes including 31 community contributions, a large portion of which were submitted during the recent Hackathon the day before the Umbraco UK Festival. Thank you everybody who has contributed (great or small), you absolutely rock!
It's always fun to see that people start contributing when they find a little thing that has annoyed them for ages and finally decide to do something about it (I did a talk at the UK fest showing how easy it is to get involved if you have a similar annoyance!).

As I've mentioned before, this release has been in the works since CodeGarden 2012 and is a rather big one. This has unfortunately led to multiple delays because we wanted to be really sure that we could deliver the highest possible quality release for you.

To that end, we've done a few things to verify that we didn't break anything:

  • Dogfooding - Internally, we've been building a few sites on the pre-release versions of 4.10.0, using WebForms, MVC and existing packages
  • A nightly and beta release to get help from the community
  • Upgrades of existing sites to see if everything still worked
  • Installing the top 50 most popular packages and weeding out any problems that we might've caused in the core

Today, we are confident that we have a very solid release ready for you but we still want to give everyone a little time to verify that. So today we present the release candidate that will become the final release next Friday (November 9th) unless we find any major problems with it.

I can haz bugs

We're also very sure that we probably introduced a bug or two somewhere. Yes, bugs happen. We're working very hard to write solid unit tests for this and future releases so that we can see things starting to fail before we release, but the codebase is pretty old and hard to unit test at the moment. This is one of the major reasons that we decided to rewrite the request pipeline and make it testable.

Currently we have 434 passing unit tests in the 4.10.0 codebase (and having a little look at 6.0.0 reveals that there's 608 passing unit tests in that version). Progress!

To make sure that you don't have to beg us for new releases, we're going to actually open a patch branch as soon as the first bug is found. In the past we've posted an updated dll in the issue tracker, but that doesn't actually scale (what if there's 2 important fixes, which dll to use?). By actually actively committing to a patch branch, you can very easily upgrade to a nightly release after we fix a few things that are very important for you.   

Documentation

The two most important parts that we worked on for this version is the request pipeline and MVC support.

Request pipeline

For the request pipeline we've had a helping hand from Stéphane who has delivered an awesome contribution that should be celebrated.

Stéphane, like other people decided to scratch his own itch (so to speak). The request pipeline was something he was very unhappy about for ages and he couldn't stand it any longer. So after consulting with us he decided to make himself very happy and refactor it, the side effect is that it makes us also much happier! Everybody was completely avoiding any changes to the request module as it was such a spaghetti that a minor change would most likely have a huge impact.

Not only did Stéphane do an awesome job, he also managed to explain what he has done so that he's not the only one to understand it now, go read it here (it's human readable, not technical):
https://docs.google.com/document/d/19Ids3S57BGnKbGkG-eWACYa0fgTLKiTohsgcOPHBS8Q/edit
https://docs.google.com/document/d/1JEwVCdpIhxBUS7c3hunjaFRAXLQIZnkvErSleVA9zro/edit

MVC

Yes, the rumors are true: Umbraco supports both WebForms and MVC. Fully, completely, in every way, shape and form. No compromises.
Everything you can do in WebForms, you can do with Umbraco.
Everything you can do in MVC, you can do with Umbraco.

Shannon has been working on porting a lot of the v5 MVC support to Umbraco 4. This means that SurfaceControllers are back, razor helpers are back (and better than ever). Now, don't be scared, none of the complexity of v5 is back. Instead, working with MVC in v4 really is a breeze!

Actually, MVC support is the best documented feature of Umbraco we've ever released, currently the documents still live in Shannon's fork, but they will be merged into the documentation section of Our umbraco soon, go have a look if you want to use MVC in Umbraco:
https://github.com/Shandem/Umbraco4Docs/blob/4.8.0/Documentation/Reference/Mvc/index.md
Also Shannon has done a few blog posts and Peter has also written up a MVC primer on this blog.

Hybrid

I can hear people scratching their head and thinking: does that mean you can only use MVC or WebForms, but not both?
No! You can actually use both! Let me explain.

In the UmbracoSettings.config file there's a new key caled defaultRenderEngine. If you set this to MVC and create a new template or create a new document type and tell it to also create a template for that, then it will create MVC views. If you leave defaultRenderEngine set to WebForms then you will always get masterpages instead of views.

However, if you already have a masterpage and decide that you actually would like to use MVC features you can just create a new file in the Views folder that has the same name as the masterpage. So if you have a Home.master, you can create a Home.cshtml.
Umbraco will then automatically pick that up and render the view instead of the masterPage.

So if you're the type of person that can't stand WebForms and want to move existing Umbraco sites over to MVC immediately you can use this hybrid form to have both for a while, until you move everything over to MVC.

Known issues

Currently, Courier won't install correctly because it puts a slightly older version of log4net in the bin folder, so do not try to do a new install of Courier at this point. Upgrading a site that has Courier already installed should not be a problem at all.

Courier 2.7.3 also has a release candidate available that includes the new version of log4net and will install perfectly (look for builds 26 and higher!).

There's also a problem with formatting code in the code editor on IE9 and lower.

As always, please report issues in the issue tracker and use the "Affected versions" field to set it to 4.10.0.

4 comment(s) for “Umbraco 4.10.0 Release Candidate”

  1. Gravatar ImageMike Says:

    What's great about this is the message, the attention to detail, the documentation, the application of recent learnings, etc.

    Looking forward to testing this, thanks all!

  2. Gravatar ImageMihai Osvat Says:

    Really nice, but have you considered Windows Azure as a platform ? I would really appreciate to have Umbraco running on Azure without the help of Umbraco Accelerator (it would require to save media, scripts, templates directly into the azure blob storage, not locally).

  3. Gravatar ImageUlrich Ebsen Says:

    This is really, really, REALLY great..;)

    Can't wait to put 4.10 in use... ;)

  4. Gravatar ImagePaul Says:

    @Mihai -

    We are working hard to bring Umbraco on Azure to everyone. You may have heard of the project Umbraco Concorde, if not, stay tuned in the coming months. Concorde is Umbraco-as-a-Service built-on Azure with a global presence. It is a bit different than running Umbraco (v.current) in an Azure Web Role but it makes so much sense. In a later release (2nd half of 2013 we hope) you will be able to use dedicated Azure compute resources (web roles) for your Umbraco Concorde sites and leverage Concorde as the management fabric.

    We are working hard on making Concorde the best way to work with Umbraco (and Azure)...so stayed tuned as we'll be releasing more information soon. In the meantime, have a look at the Concorde session from CG12: http://codegarden12.com/sessions/day-two/slot-two/introducing-concorde.aspx

    -Paul

Leave a comment