Forget XForms - Episerver Forms is the new way to create flexible, connected forms. But what are the main benefits that justify the move, and what happens to your old forms data?
XForms is not an Episerver invention - it's a W3C standard format introduced back in 2007. For its time, XForms was a big leap from regular web forms, since it simplified the structuring, data modeling, re-use, validation and data capture aspects of creating a form. It used XML to describe how it all fits together, making the data universally available regardless of the programming language or platform of the app consuming it. But the web evolved, and brought new requirements and usability expectations.
Now, Episerver Forms is the new sheriff in town, which promises to make forms management much easier for both editors and developers - and making sure forms are accessible on every device.
These are the 5 most common questions we get regarding the switch.
Why should we move from old Xforms to the new Episerver Forms?
XForms was made available back in Episerver 4.50.
However, XForms hasn't evolved much since then:
- Episerver's XForms editor is a clunky, non-responsive, old-school overlay dialog, where the user builds the form by inserting rows, columns and form elements. A steady hand, and often HTML knowledge, is required of the editor to avoid building overly complicated layouts.
- The HTML output hasn't changed. XForms typically produce <table>s, which is considered a less flexible way of structuring markup. It also makes it harder for frontend developers to anticipate how the forms will look when viewed on non-desktop devices.
- The output renderer has quirks where certain form elements had to be grouped or separated in certain ways to avoid them being positioned incorrectly, or being rendered as wrong HTML element.
- There's no easy way of adding HTML5 attributes that describe how apps should present and validate each form field.
(Yes, there were hacks, but let's not go there.)
With the new Forms, there are some significant benefits:
- Forms are now Blocks. This means you work with them in a familiar UI, they can be versioned, indexed, personalized, workflowed, globalized, and reused anywhere just like any other piece of content.
- The new form elements support HTML5, which means the markup is semantically sound, you can specify various validation methods for the input, and you can use HTML5 attributes to present input fields in a variety of ways.
- Developers can easily create new, custom form elements to complement the built-in ones. There are several tutorials available already.
- Developers are free to customize the rendering of Forms for various display modes, and editors can easily preview how forms will look on different devices.
- Improved integration options means that Forms can simplify dataflow - pre-fetching data to help the user fill out the form with less effort, and pushing submitted data to connected systems where they are instantly available for your organisation.
For more information about features and capabilities, check out Allan Thraen's introduction, or see the user manual.
Do we need an additional license for the new Forms?
No, new Forms requires no license beyond the regular Episerver license you already have.
It's a free plugin, available as a Nuget package from the Episerver Nuget feed (which means, implementing it requires help from your dev team with installing and deploying to the server.)
Do we need to upgrade Episerver to use the new Forms?
Yes, you need to be on at least Episerver 9.0 to use it.
Thankfully, with the continuous release system introduced from Episerver 7.5 onwards, upgrading is easier than ever, and this might be a good time for you to make the jump to the latest and greatest version. (As a general rule, we at Epinova recommend you do an upgrade two times a year, to get all the new goodies and fixes.)
Will we lose our old XForms data when we move to the new Forms?
XForms is not deprecated (as in removed) - it's just been made less relevant by a newer, shinier version.
All your old forms will remain intact even when you upgrade to Episerver 9 and install Episerver Forms.
All your old submitted form data will also still be there, untouched.
You will still be able to use the XForms editor in Episerver 9 to work with your old forms, and you can view/export your data as before.
There's nothing stopping you from having both XForms and Episerver Forms co-existing on the same site. Though in the long run, we recommend you move all your forms to the new format, to reduce the amount of legacy technology in your solution.
Can we migrate our old XForms to the new format?
Unfortunately, no (not yet).
The old XForms are stored in the database in XML format, while the new Forms are created as Blocks (IContent). Currently, there is no tool (official or otherwise) to migrate XForms to the new format, and the same goes for submitted form data.
Will a migration tool become available? It's fully possible to create one, though it's probably not a priority for Episerver right now. The difficulty is not in converting old forms' markup to Blocks (there's a pretty close 1:1 mapping between the field types and settings from XForms to the new Forms), but rather handling forms that have custom elements or custom event hooks (many forms perform data processing with other systems on validation/submit.) Because there are so many possible variations, creating a catch-all migration tool would be hard.