Meet the future of Umbraco: v6 beta
It's a new year, high time for a new Umbraco version number!
Short version: Umbraco 6.0.0 beta is out, it's awesome for developers, go download it!
What to expect
v6 has very strong ties to v4, in fact we've been building 6 while v4 was under development and have very regularly synced the changes from 4 into 6. So everything will look and feel the same, but a lot of things have changed under the covers.
This makes v6 a very developer-centric version, here's what you get:
- Completely rewritten API's for working with Content and Media in your custom code and packages (some documentation will come later, but make sure to explore the ApplicationContext.Current.Services.ContentService and ApplicationContext.Current.Services.MediaService)
- The API makes use of PetaPoco a tiny object relational mapper. We've also built a layer on top of that so that all the syntax difference between SQL, SQL CE and MySQL have been abstracted away, so no more need to write three different queries
- With the above change it was also fairly easy to write a little migration framework that can take care of database updates, again: no more need to have upgrade scripts per database type
- PetaPoco and the migrations framework are public, so you can use them in your custom code as well!
- We now support Partial View macro's if you're using MVC in Umbraco, these macro's supercede Razor macro's (although, don't worry, you can still use them and you will be able to use them for a long time to come!)
These are the most important and big new changes to v6, check out all the links on the release page as well.
There are some breaking changes in this release, the most important one is the way that properties are saved has changed. Previously, we had this insane thing going on where when you did this:
doc.getProperty("pageTitle").Value = "Hello World";
doc.getProperty("dogName").Value = "Lassie";
doc.getProperty("iLove").Value = "Umbraco";
every line of this code would update the document, so 3 updates to the database where you only really want one.
In v6, you can finally just update all your properties first and then save them all in one go. But it means that if you want them saved, you have to explicitly call the save function:
And now you've saved the document with the 3 changes above in one nice update statement!
So.. if you're not using .Save() already, start doing it for everything: content, media, members, etc. Everywhere you set properties, add a .Save().
Currently the behavior has only changed for Content and Media, but it will change for the other API's as well.
Go get it!
Remember that this is a beta and not everything is perfect yet. But I did drive Morten insane by breaking all kinds of things and installing all of the popular packages, most of which should work in v6. So please, create new issues in the issue tracker when you spot them and set the "Affected Version" field to 6.0.0 so it's clear that they popped up in that release.
Other than that, I think internally we're all very, very excited about this release, paving the way to the future of Umbraco. Surprisingly little seems to have actually broken and that's a great thing!
So head on over to CodePlex and give it a whirl! Bonus tip: You can even upgrade v4 to v6 easily!