I frequently receive e-mails from developers who are new to Umbraco asking for advice on how to get started with Umbraco development. If you find yourself in the same boat, this post has been written for you 🤟 Read this post and learn how to become a Umbraco ninja in no time 🐱👤🐱👤.
Umbraco CMS is developed on Microsofts ASP.NET technology stack. Unlike a lot of other CMS systems, it is possible to do a lot with Umbraco without knowing a lot about .NET or how to code. You can create templates, data types, and macros all within the Umbraco back-end (although this might not be considered best practice), however, in order to get the most out of Umbraco you will either need to be proficient in .NET, or you have access to someone who is.
If you don't have any programming skills and you don't know anyone who is proficient, please get in contact with me, here. Asides from offering freelance Umbraco work, I regularly help companies find the right Umbraco resources.
At the time of writing, Umbraco has been around for over a decade and has massively improved over the years. Everything with Umbraco keeps getting better and better. Umbraco v7 saw the release of an improved backend UI, improved performance tweaks and better support for load balancing. Umbraco v8 saw big changes to allow developers to architect code using enterprise-level programming patterns.
Familiarize Yourself With Umbraco CMS
The first step in mastering any CMS system is to download Umbraco and get to know the product, what features it provides out the box, what features you will need to implement yourself and how the back-end is organized. Installing Umbraco CMS is now done via Nuget which makes upgrading the CMS a lot simpler. If you are completely clueless about installing Umbraco, then I would suggest reading one or more of these articles:
When you install Umbraco, you will have the option to install a theme or a blank site. For first time users, I recommend using a theme. It's much easier to get to grips with a CMS when you have something to start from.
Become A Content Editor For A Day
After installing Umbraco CMS, you may be tempted to jump straight in head-first and start coding. Instead, I would recommend familiarizing yourself with how Umbraco works from a content editor's perspective. I've worked with a lot of companies where the developers have been working with Umbraco for a few weeks but still don't really understand the full capabilities of the platform. If you've read enough of my online babble, you will know I rank creating a slick and smooth back-end experience for content editors as an extremely important aspect of CMS development.
The content editors are the people who will be using Umbraco day-in-day-out. If you architect your solution in a way that makes it hell on earth for them to use, they will complain to the business and before long, a company might decide to completely re-platform. Meaning all your hard work will be scrapped. This step of learning Umbraco as a content editing platform is often overlooked by developers. Investing some time and figuring out how to optimally write content in Umbraco will help you get to know some of the basic concepts of the CMS. To make your life as easy as possible, Umbraco provides an Editor’s Manual that you can download from here. You don’t have to read through it all like War and Peace, but you should definitely skim it and make sure you understand the basics.
Development
Once you have Umbraco installed locally and you have familiarized yourself with how the backend works, you can now focus on writing some code and building your website. Umbraco can be developed with MVC or Webforms, if you do not know the difference use MVC!
Learning how to develop on Umbraco can be done in several ways. First, if you have the sample site installed you can have a look through the code and get a feel. If you don't know which sample site to use, you can always download my Umbraco Sample Site: here.
Topics I'd recommend looking into include:
Be curious and start changing things within the sample site. Make changes to the templates, add new properties to your document types and render them on the views. Try creating some common website components like a mega-menu, breadcrumb, contact us form, header or footer.
Packages
Umbraco, like a lot of other CMS solutions, provides a way for developers to write third-party plug-ins/modules that can easily be imported into your solution. If you have a common requirement, like creating a form, then it is very likely that someone has written a module for it. Head over to the 'Projects' section on the Umbraco website (available here) to start discovering and installing packages on your site. If you want to learn how to install a package, I suggest you read:
Learn Umbraco Under The Hood
As Umbraco is open-source, you can go over to the Umbraco Github, clone the source code, run it and look through the code yourself. One of the main ways I tend to learn a CMS is to go through the core assemblies in the website's bin folder with DotPeek to get a feel about what's happening under the hood.
Two key topics to understand in any CMS is how page routing works and how items are cached. Caching can be a complex and tricky beast to deal with, especially at the end of your project. Understanding how to write code in the most optimal way can save you a lot of headaches when deadlines approach and people start shouting and jumping up and down in anger.
Learn Umbraco Best Practices
Thousands of websites have now been built using Umbraco and figuring out how to architect your Umbraco website is a well-trodden path. This isn't something you need to figure out yourself. Opinions on best practices will always vary. Sometimes you will see conflicting advice online. I advise you to first build something that works, then make it better. The simple truth is that every company and project team is different, so there is no one guideline set in stone that will be applicable to everyone.
I've also written extensively on Umbraco best practices. Some areas I'd recommend having a rummage through would be the Umbraco Getting Started Advice and Umbraco API Explained. Some other useful online best practice debates include:
Get Involved With The Umbraco Community
You will invariably get stuck on your project and need help, what should you do? Umbraco has a great community. The Umbraco forums is a good way to get access to Umbraco gurus, available here. When you get stuck you can ask questions there that fellow Umbracians can help answer. From my experience, I've always got an answer within a few hours.
The other way you can gain Umbraco expertise is by simply trying to answer other people's questions. This tip isn't just focused on Umbraco, but any technology you want to learn. Join the forum, read people's problems and then go out and try to solve them. Even if you don't get the accredited answer, figuring out how to solve 10 forum questions a week will turn you into a Umbraco ninja in no time.
Umbraco has good meet-ups and if you live in the London area you can attend the monthly meet-up available here. Umbraco also throws an annual conference called Code Garden which is worth checking out.
These tips should definitely keep you busy for a while. Keep trucking along and you will aster Umbraco quickly. Happy Coding 🤘