What are we up to with 4.10.0?

Friday, September 14, 2012 by Sebastiaan Janssen

If you've had a look at the agile board for 4.10.0 it's likely that you came away a bit confused. Don't worry, it's not just you! I too had a hard time figuring out what exactly is going on, but I'm here to explain it to you now.

The theme for 4.10.0: Hybrid MVC support and solution love. 
We're cheating a little bit, because some of the things we're working on have started a while ago, and are now coming to fruition. The reason this has taken a little longer is because people like Shannon (who's actually on sabbatical) and Stéphane haven't been able to work on it full time. So slowly they've been adding to the code while sipping Martinis and hiking up mountains (or in Stéphane's case doing actual work for clients and being with his family).

What to expect from MVC support
What we'll deliver in this sprint is a hybrid model, you will be able to create your templates as MVC views instead of master pages and use your macros in there as well. We're still taking some time to bring in surface controllers, partial view macros and child action macros. We want it to work well and not be half baked, so it'll be completed during the next version.

We'll be implementing full Umbraco integration over the next few releases, as one does when taking the agile approach: deliver semi-small blocks of functionality and then iterate quickly on them.

Solution love?
This might sound a bit broad, but what we're actually doing (aside from making the actual Visual Studio solution easier to use) is some architectural changes that will support not just MVC but mainly the rest of the Umbraco core in the long run.

This has led us to completely refactor the request pipeline, so all of the things that happen when you request a page.
This includes routing to the right Umbraco document, doing things like 404 handling or rendering an altTemplate, etc. It has been a complicated process because over time a LOT of things have been bolted on to the old pipeline and there are many paths to be taken into account. We think we've got a really good version almost ready now, but it will require more testing (more on that later).

Speaking of testing: we're also adding unit tests around this new pipeline and around most other new code that we write. That way we won't have to be afraid to break things when improving the code in the future, the unit tests will verify that everything should still work like it did before.

Technical tasks
There are a lot of really technical tasks in the issue tracker at the moment, and once we get to a point of releasing this version you'll learn more about what they mean for you.
Rest assured though: You can still use Umbraco in the same way you've used it before! You will not be required to learn any of these new things immediately. They are there for you to slowly get comfortable with and reap the benefits from.


That said, we are going to introduce 2 minor breaking changes and we're sorry to have to do this to you in a minor release, but they're quite necessary:
The first one is: for MVC support we're introducing a global.asax file that inherits from the new Umbraco.Web.UmbracoApplication class. This means that if you have your own global.asax file already then you'll need to recompile your code to be compatible with this. Should be quick and only a tiny bit painful.
The other change: we actually fixed the ChildrenAsList call you could do in Razor, which made you have to deal with DynamicBackingItems and more unintuitive things. With this change it now actually gives you back a nice list of nodes, which is how it was always intended to work, all the while, improving it's performance at the same time.

Uncle -sam -we -want -you1

Early nightly for testing
Insert promo here: We want YOU! Yes you, and you and you and you!
In about a week we want to show some of our early work (an incomplete nightly) for you to start testing the upcoming release early on. We've done a ton of work for this release already as you can see in the issue tracker and because a lot of it touches on the great multitude of different configurations out there, we hope you can help us detect potential problems early on.

Internally, we're going to be testing a lot as well, but we would like to ask you soon to start trying upgrades and see if things work in real life configurations just as well as with our test setups. It can be as easy as making a copy of a site and trying to do an upgrade on that one. Should take 15-30 minutes of your time and any bug reports will help us weed out any bugs early on.
We'll put out the message on Twitter and the dev mailinglist or just leave a comment below to be notified by email when the time comes.

Even if you have little time to do your own testing, we wouldn't mind trying to upgrade your sites, get in touch with me at sebastiaan@umbraco.com if you feel comfortable sharing one or some of your sites that we can learn from (of course anything we see is completely confidential).

Update: The nightly is now ready for testing, please read about it on the dev mailinglist.

9 comment(s) for “What are we up to with 4.10.0?”

  1. Gravatar ImageKevin Lawrence Says:

    This, or the next release, could well be the one that I move across from 5.2 to, nice to see you guys turning this stuff around so quickly and with good communication, the MVC support is really where it's at for me, and once that's in I will be looking forward to porting my site over with (hopefully) minor issues.

    Keep up the good work :-)

  2. Gravatar ImageNick Says:

    Fantastic to see how you guys are bringing MVC into the v4 codebase. I would be very keen to help with early testing of this on a couple of my umbraco v4 sites. I have 1 large one currently at v4.72 and 1 small site at v4.90 that I would be testing. (Both make use of DAMP and uComponents data types and uQuery extensively.)

  3. Gravatar ImageAnthony Says:

    The agile development process of the Umbraco Core Team is awesome. The Agile Board is very helpfull to get an idea of the progrogress on Umbraco 4.10.0.

    It are exciting times indeed for Umbraco developers :)

  4. Gravatar ImagePankaj Says:

    Please dont remove master templates from Umbraco ...View will create another learning curves for naive developer like me

  5. Gravatar ImageNiels Hartvig Says:

    @Pankaj: We're not changing anything existing - everything you already know still applies and can be used. We're just giving you a new option of working with MVC.

  6. Gravatar Imagesteve Says:

    I have upgraded a copy of my site to 4.10

    I have done the usual replace on the following folders /bin /install /umbraco /umbraco_client
    And have merged the configs...

    Is there anything else I need to do?
    Im getting the below error when attempting to go to any URL (front end or back)

    cheers.
    Steve.. ¬_¬

    Server Error in '/' Application.

    Current has not been initialized. You must initialize Current before trying to read it.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.InvalidOperationException: Current has not been initialized. You must initialize Current before trying to read it.

    Source Error:

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:


    [InvalidOperationException: Current has not been initialized. You must initialize Current before trying to read it.]
    Umbraco.Core.ObjectResolution.ResolverBase`1.get_Current() +168
    Umbraco.Web.UmbracoModule.ProcessRequest(HttpContextBase httpContext) +169
    Umbraco.Web.UmbracoModule.b__3(Object sender, EventArgs e) +84
    System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272

  7. Gravatar Imagesteve Says:

    Sorry.. saw the link to the dev mailing list.. will take a look

  8. Gravatar ImageSébastien Richer Says:

    This is good news! I work with Umbraco through Visual Studio on a daily basis and stuff like the "ChrildrenAsList" are things that were really bugging me, I'm quite happy this is getting attention. I think fine tuning quality like that is very cool. Thanks!

  9. Gravatar ImageThomasR Says:

    @steve : I think you forgot to copy the /Global.asax file from the new release.

Leave a comment