Blog

Migrating to Vaadin 10 and beyond

By  
Juha Seppänen
Juha Seppänen
·
On Oct 10, 2017 8:30:00 AM
·

 

Revised November 2018 - few changes to our plans and product names

A year ago I wrote here about our plans how we help current Vaadin Framework 8 users to migrate to Vaadin 10 platform. Since Developer Preview was released we talked to Vaadin customers and got the message that migration path would be needed also for customers still on Vaadin Framework 7.

We listened and decided to add support for Vaadin 7 and Vaadin 8 in our Multiplatform Runtime tool. At the same time we decided to include MPR in Prime subscription.

We also renamed Valo 2.0 into Lumo to highlight that it is actually a new theme.

Original post continues here:

---------------------------------------------------

Vaadin 10 was just released as a Developer Preview and it’s available now for your evaluation. Vaadin 10 is a standards based web development platform helping you to build great web apps that users love. It retains the traditional Vaadin benefits we know and love.

As always with new release of Vaadin we will provide a clear and easy to follow path for developers to migrate their web apps to Vaadin 10. We have packaged these alternatives into three tiers - Core, Pro and Prime.

Core

Existing Vaadin 7 & 8 apps are able to reuse most conceptual aspects. Application architecture, imperative programming model, code structure and backend Data API & bindings stay the same. Specific components that are not part of Vaadin Elements need replacing. You need to update your 3rd party and custom add-ons. You also need to rewrite your own custom GWT widgets or repackage them as Web Components. If your application uses a custom theme you need to rework that to be compliant with Valo 2.0. 

You can reuse:

  • Stateful server-side architecture using Servlet 3.0
  • Event-driven component based programming model
  • Automatic communication using request-response or server push
  • Data bindings concepts introduced in Framework 8, i.e. Binder and DataProvider

You must rework:

  • The exact set of built-in components and the feature set of each component
    • The component set will still be targeting similar use cases
  • Universal features such as caption, icon and error indicator
  • Client-side integrations are no longer based on GWT Widgets and Connectors
    • Instead, Web Components are the main model with optional support for other types of JavaScript implementations
  • Lumo is a a new theming engine with different built-in themes, but the overall concept of a unified parameterized theme is preserved
  • Navigator is replaced with a declaratively configured Router

Detailed tutorials how to plan for migration and what exact steps need to be followed will be part of the Vaadin 10 documentation.

Pro

Migration steps with migration library:

  • Add the Vaadin 8 compatibility package to your existing app,
  • Replace your UI class implementation with a root view using Flow,
  • With this you can,
    • Replace views one by one in your Vaadin 7 or 8 app with Flow based,
    • Keep all the Vaadin 7 or 8 based views as is with minimal modifications,
    • Add any Vaadin 7 or 8 component inside Flow
    • Add any Flow components inside Vaadin 7 or 8
  • There are few limitations:
    • Some build system changes are needed,
    • Imports in add-ons need to be converted with a tool we provide,
    • Integrations on the VaadinService level may need to be reimplemented, e.g. any custom servlet implementations or bootstrap listeners,
    • You might need to duplicate e.g. custom DataProvider implementations since Flow and FW components have different package names for the interface,
    • New and old parts will use separate theme implementations and keeping them in sync will require some extra effort.

This also applies to Vaadin 7 apps because 8 has a built in support for 7. Some extra steps are required to first migrate a Vaadin 7 app to Vaadin 8. After that you can use the migration library to follow the steps above to complete the migration.

Legacy migration tool and runtime will be available for all Pro and Prime customers in early 2018 without an additional fee.

Vaadin provides a comprehensive migration assessment service that will guide you during the process
Request a call to learn about Vaadin Migration Assessment service

Prime

Prime subscription includes both Core and Pro so you'll get comprehensive documentation and you can run your Vaadin 7 & 8 applications in Vaadin 10. In addition Vaadin Prime subscription entitles you to get Vaadin team to help you hands on to make the migration simple for your team. We do an analysis of your application and map out your specific migration requirements and any further development needs you might have. After that we can do the migration work for you as expert on demand. All that remains for you is to deploy your shiny new Vaadin 10 application (and pay the bill).

Fourth option

There is naturally one more option. You can stay with Vaadin 8. We are going to maintain it at least until 2022. That gives you the option to plan your migration longer term. See the Vaadin 8 roadmap blog post about it for further information about what’s in store for Vaadin 8.

For details on our three tiers check out our pricing page. To get started on migration contact our team.

 

Juha Seppänen
Juha Seppänen
Product dude with special interest in product safaris, work informatics and design thinking.
Other posts by Juha Seppänen