In this tutorial, you will learn about my honest review of using the official form building plug-in with Umbraco v6. Most websites will require you to build some type of web form. Unlike other CMS platforms, out-of-the-box Umbraco CMS does not ship with any type of web form building capabilities. To build forms within the CMS, you will either have to create something custom yourself, or use a third-party form building package. Umbraco has released an official form building solution called Contour/Umbraco Forms. This plug-in is not free and costs £169. In this guide, you will learn if you should spend that money or not 💰💰💰!
Umbraco Forms Vs Contour
Several people have asked me, what is the difference between Umbraco Forms and Contour. Umbraco Forms and Contour is the same thing. If you buy a license for one, you can also use that key on the other version. Contour was the original Umbraco Forms in Umbraco v7 .1 and below. Umbraco Forms was developed to replace Contour and works with Umbraco 7.2 onwards. From my understanding, the plug-in provides similar features, however, the newer Umbraco Forms has been given significant refactoring and deserved a new name. One thing to note, if you are running an older version of Umbraco and try to install Forms, your site will blow up not work. It's important you install the correct version of the plug-in compared to the version of the CMS you are using ⚠️⚠️⚠️
This post is a review specifically on Contour. I have not used Umbraco Forms as of writing. Unfortunately, from my experience, there were a lot of bugs with the installation and un-installation path that I'll cover in more detail below. I hope these issues got resolved in the newer version, however, I am unsure!
Purchasing & Registering
Purchasing the package from Umbraco was simple. I went to the Contour purchase page, here and entered my client's credit card details. After purchasing the license, I received an email from Umbraco asking me to log into Umbraco.com to register the Contour license.
After you log in to Umbraco.com, you should see your Contour license, however, you can not download it yet. You need to associate your license to a domain first. To do this click on the
Configure/Add domain button.
From this screen, you will need to add in your website's domain and any test domains that you use (think dev server Url, localhost, etc...)
After filling in your website's domain details, from the license page you should now be able to download your license.
Installing Contour is similar to how you would install any other Umbraco package.
In the Umbraco backend, go to the
Developer' section, click on
Packages and either use the
Umbraco package Repository and search for
Contour, or manually install it (you can find the package file here.
Sadly, this is the stage where I started encountering installation issues with Contour. After installing Contour I tried to build my solution. The client's web solution had originally been set up as a website in Visual studio rather than a web application. If your website has also been set up as a Visual Studio website (not web-application ❗❗❗) you will probably run into this known issue with Contour. After installation, when you try to build your website you encounter these three errors:
The plugin breaking the build has been a known issue for several years and as of writing the issue has not been fixed. If you use Reflector to look in the
Umbraco.Forms.Core assembly, you will see the code-behinds don't exist. My workaround was to manually delete the references to
ExportFormEntries.aspx from my solution. The other issue I encountered was the use of an
AntiForgeryToken. The view named
ContourForm.cshtml referenced an obsolete override:
ContourForm.cshtml remove the broken reference, so it looks like this:
For a commercial product, I think this should have been fixed and not something that has been outstanding for years, so personally, I was a little disappointed.
After having to hack Contour to get it installed, I was looking forward to getting to grips with it. To access contour you should see a 'Contour' icon at the bottom of your Umbraco instance:
Before you can use Contour you will need to register it. You should be able to do this from the Contour Dashboard:
Unfortunately, this is where I ran into more issues. It's very small, however, at the bottom of the screenshot above, you will see an error. When I typed my Umbraco details into the Register section, nothing happened. When I tried reloading the page it hadn't automatically registered anything. I gave up with the automatic registration and manually installed my 'umbracoForms.lic'. To do this you will need to log into Umbraco.com here, download the license file and then put it into your 'Bin' folder of your website.
Apparently, this is a bug when you use the plug-in with v 7 so you can ignore it. Again, from a commercial product, I would really expect to see a lot more polish.
After installing Contour, I realized I had accidentally installed the latest version, rather than the version I intended, so I tried to uninstall it. When I uninstalled Contour my whole website blew up again with a YSOD with this exception:
Could not load file or assembly 'Umbraco.Forms.CodeFirst' or one of its dependencies. The system cannot find the file specified.
The installer sometimes doesn't remove everything correctly which causes this error. To resolve this problem, look in your
bin folder. After installation, if
Umbraco.Forms.Core.dll still exists the
bin folder manually delete it. There will also be two references in your
web.config you need to remove:
Installing Contour was a lot more complicated than it needed to be. Once it was installed, however, it did do everything the client required. Setting up new forms, customizing them and getting an email to send out on form submission was very easy. As this post is getting quite long, I've written the step-by-step guide for content editors on how to create a new form (available here.
Umbraco CMS is an open-source free product that is amazing 🔥🔥🔥. For £169 Contour provides a lot of functionality that you couldn't develop in-house for a fraction of that price. Contour also gets updated from time to time. I think my expectations from any commercial product is that it should be simple to install, manage and it should work out the box as expected. I would have been a lot more impressed with this plug-in if it was a bit more polished. From my experience installing it on Umbraco 6 seemed very clunky. I had to manually change three files in order to get it working. For a commercial product with a license, I would expect it would just work. The plug-in did meet the client's approval which made them happy. From a developer's point, it has been one of the buggiest things I've worked with for a while. Happy Coding 🤘