Over last week I've been in Copenhagen to attend the Umbraco CodeGarden: I’ve been at this conference 4 years ago, in 2010, when I had 2 talks at the MVC pre-conference, but this time I was just a normal attendee.
The atmosphere during the event was amazing, exactly like I remembered 4 years ago, and conference looked bigger and better organized. It really shows how one of the biggest feature of Umbraco is its community.
I was planning to do a session-by-session review, but I realized that the post would become to longs, so I’ll just recap the main takeaways from the conference while highlighting some of the sessions I preferred.
TL;DR
Summarizing in few lines I’d say that Umbraco 7 is a mature CMS, both from the content editor and from the developer point of view: for editors because there are so many powerful and easy editing controls (aka as Property Editors) and for developers because now you can apply all the best practices of web development on .NET (like MVC, DI, Unit Testing) also to Umbraco, and in addition to that, you can build back-office property editors in a much simpler way, and making the UX of editors even better.
And now, with the detailed review…
The future of Umbraco in the Keynote
Given the many tweets with spoilers, that was the most expected talk: Niels showed what’s happening with Umbraco.
They announced the release of version 7.2 which includes many new features like the most expected grid editor built by the Catalan company LECOATI, better document type management (mixins and finally the possibility to move to another document type with automatic migration) and better support for responsive design.
In a session during the second day, Sky is the Limit, the guys from LECOATI made more demos of the grid editor and some other amazing UI tools that they are bringing into the core of Umbraco and as packages.
Also they demoed Umbraco as a Service, running on Azure and focusing more on easing the development and deployment workflow rather then on scalability. The solution they found is pretty actually: every change that developers make via the backoffice is serialized, and then versioned on git, and deploys and moving between environments is done by using git merge features.
Finally they gave a glimpse of what are the plans for vNext: they plan on moving the core to ASP.NET vNext and the “web/cloud optimized” CLR that doesn’t use System.Web, and they are planning on introducing the concept of node variations which will allow to have one-to-one translations of pages, but also to show different content based on other conditions (like referrals, devices and so on).
This was just a very quick review, but to get the full deal, you can watch the video of the keynote: http://stream.umbraco.org/video/9918428/umbraco-codegarden-14-keynote
Best practices for achieving good software design with Umbraco: Our first Umbraco 7 build, Core Internals for Website Development and MVC Purée
Those three sessions where really nice walkthrough of the core aspects of building a web site in a professional way, applying also the best practices of “normal” ASP.NET development.
I’ll link to the 3 presentations in a few lines, but the key takeaways of those 3 sessions is that with Umbraco 7 developers have much more freedom and flexibility of doings things in their own ways: for example you can use ASP.NET MVC to build your templates, mapping document types to POCO classes and building the view model out of them. You can also do a much better url interception and generation to create more (or less) meaning urls.
Also they showed a few interesting packages and tools to help with Umbraco development: Archetype for making document type more flexible, Glimpse7 and Inspect to have a view on what’s going on in a Umbraco page, ModelBuilder and UmbracoMapper which are two different approaches to creating view models out of document types
- Our first Umbraco 7 build: slides and video
- Core Internals for Website Development: slides and video, and the ModelBuilder tool built by Stéphane
- MVC Purée : notes, slides and video, and the Umbraco-Mapper tool built by Andy
Think about the UX of the editors, too… The Dark Side of the Moon and Thinking in Seven
Even if the two sessions had different objectives, they both brought mainly the same message: now that with Umbraco 7 and AngularJS it’s so easy to build property editors, you have to focus also on building great UX also for the editors.
Here some backend UX tips from the two sessions:
- Give editors controls that match the way information will be displayed and the way editors work
- In the back-end focus on the workflow used by editors
- Build “pickers” vs copy-pasting strings (for example if they have to select a product from an external application make a picker that connects via API to the external app, instead of asking them to go in the oher application and copy-paste the id of the product)
- Give editors immediate feedback of what they have entered (for example by showing a preview and giving context to what they entered)
- Build as much automation as possible
- But remember that since it involves development time that usually was not used before, this new approach has to be embraced both by PMs and by the client
For the dark side of the moon, the video is published already.
Mobile development on top of Umbraco: Going native with Umbraco and Phonegap
A few good tips came from this session too.
The first is that making a REST service to provide data to a mobile application is incredibly easy in Umbraco 7: just implement a class that inherits from UmbracoApiController (which on turn inherits from the ASP.NET WebAPI controller) to get a ASP.NET WebAPI endpoint as all the wiring up will be done by Umbraco.
The second is the choice of framework used to build the PhoneGap mobile application: he has chosen Ionic, a HTML5 mobile framework made to work with AngularJS and mainly designed for native apps rather than mobile websites like jQuery Mobile.
The last useful tip was: ditch jQuery and use native javascript calls and CSS3 animations as here you are dealing with just one browser (so no need of a compatibility layer that jQuery is) and with devices with a reduced computing power but with HW accelerated graphics (so, prefer native animations that can be rendered by the HW acceleration instead of js animation that need CPU time).
Here you can find the slides and some notes on the talk Mobile Development with Umbraco and PhoneGap.
The Future of ASP.net web tooling
The usual demo about the new web tooling available in Visual Studio: SASS, LESS, support for Grunt, Node.js, and so on. But something I never heard anyone else saying, is that Microsoft is making efforts in supporting all the possible tools available in the frontend development scene, but they are heavily betting on AngularJS and on Bootstrap. So if you are .NET developer and still haven’t spent time in learning this part of the world, start from those 2 libraries.
What now
Now I understood that I have to contribute back to this great community, and even if at my job I’m not going to use Umbraco any more I definitely have to try building a web site with Umbraco 7… maybe the new site for the Web.Next Conference, and probably my blog using the new blog package for Umbraco called Articulate.
And I’ve also seen that I have to start learning AngularJS better, and try to pay more attention to the frontend development side.
Well… the post came out long anyway… thank you for reaching the end of the post.
Did you attend the conference too? What are your takeaways and comments?
PS: Video are still being published, I’ll update the links as soon as they become available.