11

Thursday, November 17, 2011 by Per Ploug

You've seen the videos, the blog posts and the feedback, and naturally started wondering: "Would Courier work for me, and how do I know without paying?"

Well, the only way to know if Courier fits your way of working, is by trying it out. And luckily, we've made it very easy to do just that.

Trial version and licensing

First of all, Courier 2.5 functions completely unrestricted as long as you run it on your local machine. There are zero limitations on the trial version as long as it happens on your machine, and not an internet/intranet server somewhere. So don't worry about those trial messages, as long as you stay on your local machine, it will be a fully working version

Setting up 2 local sites

Setting up local testing sites can be done in 2 ways, either you simply create 2 new empty sites in IIS as you normally would through web platform installer ( video), or by copying your website files and database from an existing site. Whatever you do, you should end up with 2 sites running on your local IIS webserver, in their own Application Pool, so each site has its own .net 4 integrated mode Application Pool.

Installing Courier 2.5

To make a connection between the 2 sites, you need Courier installed on both sites. To install Courier, follow the instructions below, which refers to the below screenshots:

 

repo enterDomain installed ContextMenu deployment
1. Courier in the repository 2. Setting the destination domain 3. Courier installed 4. Right-clicking to start deployment 5. the deployment dialog

Open the Umbraco backoffice, login, and browser to the developer section. Open the packages folder, and choose "umbraco package repository" In the window on the right side, it will now load the most popular pakages for umbraco, and enable you to search for a package. Search for "courier" and the Courier package should appear, then click the "install" button. (image 1)

When the install is complete, you will be prompted about entering a location domain. This refers to the toplevel domain your other umbraco site is installed on, so if it's on a local domain such as "mytestingdomain", or "test.local" simply enter those. If you run it on a specific port, enter the domain name, followed by port number, ex: "localhost:8078" (image 2)

Courier is now installed and ready to use (image 3). If you want to change the location domains, or add additional domains later, watch this video, or read the document on installation and configuration, found here.

When you have installed and configured Courier on both sites, it's time to perform your first deployment. Simply right-click the item you wish to deploy, and select "Courier" in the context menu (image 4)

This will launch the Courier transfer dialog, where you can now select what items you wish to transfer, or you can drill into selecting specific files or overwriting modes, by selecting "advanced settings" (Image 5)

You have now performed your first deployment with Courier. Now to dig a little deeper, I suggest you watch the Courier 2 videos on umbraco.tv (free) read the documentation on Courier, (if you need to work with apis or custom configurations) found here, or simply ask any questions you have on the our.umbraco Courier forum.

Upgrading trial to full version

When its time to go from the trial version, to the fully licensed one, it is simply a matter of a installing a license file from umbraco.com, if you havn't done it already, purchase Courier 2 from here, either as the standalone product or as part of Umbraco Complete.

When you've purchased a license, you can find it on your profile page on umbraco.com, where you can configure the top-level domains you need for your site.

After that configuration is done, simply open the umbraco backoffice, go to the Courier section, and enter your credentials on the Courier dashboard (image 3). This will give you the option to install the Courier licenses you've purchased directly on your site. Simply click "install" and your licenses is instantly installed, with Courier ready to use. Do this on all the sites you need Courier on.

Remember: Launch discount

To celebrate the Courier 2.5 launch, we're for a limited time offering
Courier 2, Full version at a discounted price of just €99, that means you save €350

To get the discount, simply enter the discount code "fgdtt2237asds" on the Cart page, during checkout. Offer ends December 1st

 

Tuesday, November 15, 2011 by Per Ploug

After a final round of checks and small bug fixes, we feel the 2.5 release is ready to get out to the masses. It is now available on our.umbraco.org for download, along with documentation and installation instructions.

To get a taste of what Courier can do, watch the videos here, or read this blog post, which outlines the latest version.

 

Courier 2.5 improvements

Robust task manager
Handles all your tasks, even very long running ones, so transfers, deployments and packaging tasks all run safely in their own threads, ensuring that nothing stops in the middle of an operation.

Support for community projects
Out of the box, uComponents and DAMP 2.0 datatypes are supported. At the same time, we've launched CourierContrib on codeplex, to ensure that we keep sharing code for adding compatibility for 3rd party datatypes. If you want to be part of this, or simply want to add courier support to your datatype, give us a shout on the forum or read the docs on dataresolvers for courier

Refined architecture
After feedback on 2.0 we decided to undertake the larger task of changing the core APIs to handle the common issues of timeouts, too many dependencies collected and the way responsibility was shared between core and the individual providers. It has been a big push to get done, but future development will be faster and more solid than before.

Improved UI
2.5 has been about improving the lives of non-technical users, who just want to right-click and deploy, so the UI in that area has been massively upgraded to give better feedback and handle users with limited permissions better - for instance, if a user is not allowed to transfer document types, courier will simply check if this is needed at all, so the deployment can continue.

Future development

This was the big push to get past the big issues, for the next releases planned, we will be doing small and focused releases, aimed at fixing immediate issues, reported by our users, and keep major feature development on hold, until we have had a good amount of maintance releases - stability is the main goal for the next releases.

Courier and version 5?

Future development of course also includes Version 5 support, and building a free Courier Provider for moving content from Version 4 to Version 5. It will support moving all the items that makes sense to move, namely content and media data, as well as much as possible of their respective media and document type information, we will keep you posted on the progess as we know more.

Courier for moving content and media from Version 4 to Version 5, will be free for everyone to use.

We hope you will enjoy this release, and give us feedback, good or bad so we can improve it even more.

Monday, November 14, 2011 by Niels Hartvig

A frequent topic we meet as we approach the release of Umbraco 5 is "how can I upgrade to Umbraco 5 [from Umbraco 4]". The answer is simple - you can't. But what's even more interesting is - you wouldn't even if you could. What you worry about is irrelevant - it's what I call "The Upgrade Myth".

As much as many of you want the latest and greatest, the lust isn't rational. We rarely need the new features, often not even most of the bug fixes. This is why most Umbraco installations aren't upgraded and haven't been the past three years (which is how long we've been monitoring it)?

Before you jump straight to the comment fields and claim that you do, please take a deep breath. While you may have done loads of patch upgrades (ie. from 4.7.0 to 4.7.1) of Umbraco installations, just how many of the sites you own or have made have been through a minor (ie. from 4.5.0 to 4.7.0) or major (ie. from 3.0.5 to 4.5.0) upgrade? If you say all of them, you're a minority. Less than 2% (updated from 1%, see comments) of Umbraco sites have been through minor or major upgrades.

This is because most sites have a lifespan of two to three years. Best practices on the web - both conceptually and technically - moves so fast that active sites often go through a complete re-do in that period. That doesn't mean that you swap your CMS or make very dramatic changes, but it's often enough to start from scratch (although you might import parts of your existing site).

We'll keep supporting Umbraco 4.x

Umbraco 4 is a solid platform and the version that gave us the major breakthrough. It'll be around for quite a while, is known by a huge community of experts and we'll keep supporting it with bug fixes and improvements for at least two years after the release of Umbraco 5. Period. It is still a safe choice.

To five or not to five

When people are asking "how can I upgrade", it's often consultants - not end-users - who ask. And what they really ask is "what happens to the Umbraco I know so well"? The answer is that it's changing - for the better. The downside is that it means that you'll need to change too.

Umbraco 5 is a whole new beginning. New underlying framework (ASP.NET MVC), new data layer (Hive) and a re-written UI (KnockoutJS). It's pretty bold. And maybe a little insane.

You see, we could all - core team, HQ, community - have chosen to rest on our laurels and enjoyed the huge success that Umbraco 4 is. And while we patted each other's backs and touched glasses of Krug we could witness how the wrinkles would appear and the energy slowly fade away.

But we're not like that. We're a rare crowd of curious, bold, hungry and foolish people. And Umbraco 5 is the testament.

You don't have to worry about upgrading your Umbraco site. But it's time to upgrade yourself.

Friday, November 11, 2011 by Alex Norcliffe

Hi everyone! It's Friday, so it must be time for an updated release of Umbraco 5. We're calling this one Beta 1 - there's still work to do, but it's getting more and more stable, the APIs are becoming more and more final, and your feedback will be as valuable as ever.

If you're new to Umbraco 5 or you've come here from a web search, there is some background to the other releases we've done in the previous few months:

- Umbraco 5 Alpha 1 Release

- Umbraco 5 Alpha 2 is out today

- Umbraco 5 Alpha 3 is out today

You can download the Beta 1 web application zip from CodePlex, and within minutes of this blogpost going up our status page will reflect the latest updates too.

Trialling Umbraco 5

If you haven't had a play with the Alphas, or don't know what to expect, I recorded a quick screencast to show you how quickly you can get up and running. I'm not so hot with the new fandangled Screenr kids so I'd love some feedback in the comments on what you'd like or not like to see in the future!

What's in the Beta 1?

Our focus since Alpha 3 has been on a couple of core areas:

Editing templates

Matt has made some further improvements to the template editor and recorded a nifty Screenr here:

Along with those tweaks, we've also got a new "Books" node in there which gives an example of how you can do parent-child templates just like Umbraco 4.

Getting your content into your templates & pages

The new Homepage template in the Dev-Dataset also has a lot of content by default as a mini-tutorial that can take you through some example queries. Querying for content is something that we have started since Alpha 3, and some of the early methods are already in there to play with. Our aim is to have this pretty much complete in time for Beta 2.

image

Bug fixing

We've been getting a lot of great feedback from the various hackdays and meetups, and we've closed as many issues as we could find. For example:

  • Deleting a property in a document type should no longer error
  • Deleting a whole document type should be fixed
  • Publishing all content from the context menu should have fewer niggles
  • Registering your own Dashboards in the backoffice should be easier (Darren Ferguson has put up a great example blogpost here)
  • .. and so on! Of course, if you do find any problems, we'd love to know. There's an Umbraco 5 forum on Our Community site which we keep an eye on as often as possible. With the next beta, it'll also be time to start having an issue tracker which we'll help you out with when the time comes.

Performance

The Alpha 3 was slow, we know - especially if you're using SqlCe. It's better in the Beta 1 - not yet perfect, but you'll notice the difference. Why are things slow in these pre-releases? Primarily because we're getting the foundations right first, and coming back in later to profile the code and understand where to make efficiency savings. Premature optimisation can really hurt a project - for example, if we added workarounds or caching before the full extent of the system was fleshed-out, we could hit a roadblock or find that the caching was lying to us.

So, now we've started our round of betas, we're in the phase where we start to profile the code and put effort into optimisation. This doesn't just mean adding caching - it's taking a look at the actual code as it runs and ensuring we're doing things efficiently.

This phase has started - the tree should be more performant in the backoffice, for example, but we know of plenty of other places where we can make it lightning fast as we move closer to the main release.

Performance part 2

As you may know, Lucene is extraordinarily fast at reading data from the local filesystem. If you don't know it - that's OK, just trust me when I say it's very often used to index data to a set of small files that make it much quicker to read or query, taking some of the burden off your database. In my past life I ran a team that moved Vogue.co.uk entirely onto Lucene in fact, and our database server only ever got contacted by our Lucene indexer once in a while and started to feel quite lonely.

Our goal is to let everyone have Examine / Lucene indexing in Umbraco 5 with very little setup or even to know it's happening. In addition to our core coding practises and database design, this is one of the ways in which we'll ensure Umbraco 5 is scalable and performant, long-term. Because of the way our data layer ("Hive") works, we can combine providers together in a configuration file, so that whoever responds first with a piece of content wins.

So Shannon has put a lot of work over the past few weeks into writing a Hive provider for Examine. It's included in the Beta 1, but it's disabled by default as we've got a bit more work to do. If you enable the provider, you can install just as normal - with your SQL Server totally switched off, if you like - and edit / display content just fine. Here's another Screenr if you'd like to have a play:

Known issues / limitations

We're still in pre-release mode even though this is a Beta 1, so there will be bugs and performance issues, but we really are grateful for you giving it a go so that you can be a part of a stable Umbraco 5 release! We've put the issues list on the CodePlex release page to keep it in one place.

Collaboration - Umbraco 5 Contrib!

In my last post I asked for input on what you think we should do to make it a more welcoming place to contribute to the codebase. As a result of some of the great feedback, at one of the recent UK hackdays we started a new CodePlex project called Umbraco 5 Contrib. We'd love for this to be a great playground for anyone who wants to have fun making property editors, custom trees, custom Hive providers, dashboards, anything really. Of course, Umbraco remains open source and that will never change - you can still fork the main codebase and we're always grateful for pull requests! But if you'd rather work on plugins in parallel, now there's a place to do it in collaboration with us and your fellow community members. Check out the code, there's already a Wordpress Hive provider, an example Products Hive provider, and an example Dashboard on there thanks to Darren and David! And I know more are coming - Morten is looking at a Flickr Hive provider, and Lee on a Google Maps property editor.

That's all for now, I hope you enjoy the Beta 1 and as always let us know what feedback you have!

Happy bug-hunting and thanks again for helping!
Team 5

Thursday, November 10, 2011 by Per Ploug

It is with a huge amount of pride and happiness I'm able to introduce Courier 2.5 today. This new version is a major step forward and is a result of the experiences and feedback we got from launching Courier 2.0 in May.

Courier is our take on a deployment tool for websites built on Umbraco. It's focused around 2 things:

  • Easy access to performing a deploy directly from the umbraco backoffice, so even non-technical editors can do it
  • Keeping track of the dependencies and resources needed for a deployed item to function

Courier 2.5, will be a free upgrade to Courier 2.0, and Courier 1.3 as well!

Looking back

It's not a long time since Courier 2.0 was released. It was received really positive, but as with everything, it was not a perfect fit to everyone. And it soon became apparent that 3 issues were widely reported:

  • Timeouts due to too much data being transferred at a time
  • Courier collecting tons of data, juts to transfer a single document
  • No default support for uComponents and other community data types.

Major changes

Courier 2.5 solves those 3 common issues, along with another 80 bugfixes and smaller enhancements. Let's dive into the new big changes.

A dedicated task-manager

Pushing a big site with all its files and data is something that can take a while to do. First of all, it has to push all those changes across a webservice connection, and collect and process all the data on both ends. So with Courier 2.5, everything is handled by a taskmanager, which handles long running tasks in the background, queues tasks if something is currently being processed, and gives live feedback on the process of each task. This makes those long-running tasks rock-solid and at the same time provides status on how far your deployment is.

Support for uComponents and DAMP 2.0 built-in

Massive respect to both of these community projects. They have built up an amazing traction and is used on the majority of all Umbraco sites being developed today. So from version 2.5, Courier supports and understands these datatypes, and at the same time, we've added a ton of helpers and sample code to help other projects do the same, all available on the newly launched Courier Contrib project page (which I will blog about very soon)

Tweaking dependency collection

When you transfer a document, you don't just transfer that single document, Courier performs a analysis on the items you want to deploy, and then collect all the files and data for those items to function properly in their new environment.  A good example is that if you want to transfer a document, you would obviously also need to have its document type, template, css, images, macros and so on, transferred with it, or you would end up with a deployed page, that might not work.  We've done a lot of work to make sure that items transferred still work, but require fewer dependencies and are therefore faster to transfer. And we will continue to do that, even for minor releases.  

Finally, Courier 2.5 comes with a hugely refactored architecture, and simpler and more clear API to use, so for those who want to write extensions or run Courier from a console or WPF application, it has become much simpler. I will blog about these changes in the coming weeks as well.

Try it today

Courier 2.5 pre-release is available as a package file  and manual install files, and samples and documentation is found here. We will make sure to provide files and documentation on our.umbraco.org as soon as 2.5 is launched.

Launch discount

To celebrate the launch, we're for a limited time offering
Courier 2, Full version at a discounted price of just €99, that means you save €350

To get the discount, simply enter the discount code "fgdtt2237asds" on the Cart page, during checkout. Offer ends December 1st

Thursday, November 10, 2011 by Niels Hartvig

We've decided to drop our plans of XSLT Support in v5 (it will be around forever in Umbraco 4!). For some this will cause some stir, so trust us that we didn't do this just for the fun of it.

XSLT has served us really well. In Umbraco 4 all published content is cached in one big XML document, making XSLT the obvious choice for manipulating the documents. For those who have mastered XSLT it's been a well-known and very powerful tool when making Umbraco sites. It's highly flexible, optimized for hierarchical content and blazingly fast.

XSLT in Umbraco has been there since the very start, in fact since version 1.0 that I made using classic ASP. Back then XML was all the rage, websites were simple and relatively small. And Microsoft loved XML. That was eight(!) years ago - remember those days?

Since then a lot of things has happened. We've learned that XML doesn't solves all problems, websites have become more sophisticated in their information architecture and new techniques have emerged. Sometimes you have to let go of your darlings to discover something new. And to be brutally honest, XSLT haven't been a happy marriage for most people. In fact, it repeatedly comes out as the number one disliked 'feature' of Umbraco whether you talk to front-end devs or .NET devs. It's time for a break-up from version 5. Here's why:

  1. It's tough to learn, hard to master
    While powerful, XSLT is very complicated to master. There's simpler tools that does a better job in most cases and does a fine job in edge cases. XSLT only does a better job for the 1% who knows the very heart of it
  2. It's not in tune with modern website architectures
    In the good ol' days, websites had a very strict IA. That was a perfect fit for Umbraco's hierarchical XML and XSLT templating. Times has changed. Today website structures are more fluent, more taxonomy based and more diversed (ground principles may be hierarchical but most content is tabular and relational). This doesn't make XML storage - thus XSLT processing - an obvious fit.
  3. It would be slow
    Now that Umbraco 5 no longer stores data in a published XML, the core would need to simulate this in order for XSLT to work. It means converting data. And that means loosing the blazingly speed, that makes even haters accept XSLT today
  4. The support from the mothership is non existing
    While we don't lay down flat when Microsoft change direction, it's no secret that the native XSLT processor in .NET is old and dated. It's many years since XSLT 2.0 saw the light of the day, but the .NET implementation is still based on 1.0 - which for instance doesn't know what a "date" is! We could grab a non-official XSLT implementation, but that would mean taking the responsibility for maintaining it and those resources could be used much, much better elsewhere.
  5. The alternatives are better now
    The way we've implemented data access in v5 and combined with the razor view engine, means that making anything from basic navigations to complex taxonomy based lists is much simpler than even the most elegant XSLT. We'll be providing lots of guidance and examples in the editor to make it easy to get going fast.

Changing habits is never easy but even the most stubborn XSLT rebel alliance members I've talked to think the case is good. So do I, and remember that I liked XSLT so much that I added it to the core in the first place. The same joy I felt back then when the first result of XSLT processing inside Umbraco 1.0 appeared on my screen, I feel with Razor now. And when used together with the data wrapper called "Hive" in Umbraco 5, it's a thing of beauty and speed.

To help with the transitioning,  we've decided to make the razor tutorials on Umbraco.TV free. So what are you waiting for, really - go on, learn something new and build better websites tomorrow!