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.