I frequently receive e-mails from developers who are new to Umbraco asking for advice on how to get started with Umbraco development. Today's post will attempt to answer that question for anyone new to Umbraco and wants to learn how to become an 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. if you want to , 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, via the 'Contact' link above, as 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, installing Umbraco via Nuget makes upgrading a lot similar. Umbraco can be developed with MVC, or the 'classic' web forms model. Umbraco 7 saw the release of an improved backend UI, improved performance tweaks and better support for load balancing.
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. 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. For first time users, I would recommend following this approach. It's much easier to get to grips with a CMS when you have something to start from.
After installing Umbraco CMS, you may be tempted to jump straight in head-first and start coding. Instead, I would recommend familiarising 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 one of the highest ranked deciding factors whether a company decides if your project was successful or not. 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 completely re-platform and scrap all your hard work. This step of learning Umbraco as a platform is very often overlooked as it might seem obvious, or boring, but by spending some time and figuring it out will help you get to know some of the basic concepts of Umbraco 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 and try out the basic concepts.
Once you have Umbraco installed locally and you have familiarised yourself with how the backend works, you can now focus on writing some code and building your website. You can do this in one of 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, available here. Topics I'd recommend looking into include:
Be curious and start changing things and generally play around with the site, make changes to the templates, add new properties to your document types and render it out. Try creating some common website components like a mega-menu, contact us form, header or footer.
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. If you head over to the 'Projects' section, available here, where you can start downloading and installing packages in your site. If you want to learn how to install a package, I suggest you read:
As Umbraco is open-source, you can go over to the Umbraco Github here, download the source code and step 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. One key topic to understand in any CMS is how pages and 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.
Thousands of websites have now been built using Umbraco, and figuring out how to architect your Umbraco website is a well-trodden path and isn't something you need to figure out yourself. Like any best practice advice, individuals will always disagree and have thoughts on opinions. 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 written extensively on Umbraco; some areas I'd recommend having a rummage through would be the Getting Started Section and the Api Explained section. Some other useful online best practice debates include:
Like any project, you will invariably get stuck and need help. The first thing I would recommend is using my contact page here. I get emailed by people, most weeks, who need some Umbraco advice. I don't have time to fix every problem, but in most cases, I can point you in the right direction. I tend to write 3 blogs posts a week and coming up with inspiration can be tough at times so your questions help me grow this site. One of the nice features of working with Umbraco is the forums, 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. You 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 an 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. You can also go to the annual Umbraco conference, Code Garden here.
Software Architect, Programmer and Technologist Jon Jones is founder and CEO of London-based tech firm Digital Prompt. He has been working in the field for nearly a decade, specializing in new technologies and technical solution research in the web business. A passionate blogger by heart , speaker & consultant from England.. always on the hunt for the next challenge