Free Support is upon us

 

Offering a support option for your products is something every software vendor just has to have, and so do we at Vaadin. In Vaadin’s case, however, the support option needs to be extra good and bring more value than your average support subscription, because the Open Source product itself already has a very good forum and tons of free help material online. Vaadin Support is designed to help you in every phase your project has, from zero to done, from design to maintenance. Here is what our support customers have to say:

"We have used Vaadin Support for difficult issues, of which we didn't have experience yet, or we couldn't find answers to in a short time. Sometimes we only ask opinions on how to use or build components. In our experience, Vaadin Support has worked perfectly. Every issue has been resolved and we are very pleased with the team’s professional skills and response time."
Ari Koskenvaara, Project Manager, Festum Oy

We have a plenty of really satisfied support customers and our rating has always been above 4.5 out of 5.0. To give you a taste of this, we are launching a first-of-its-kind Free Support Week! Our Free Support Week starts next Monday with a Webinar that explains everything about it and how you can get your own free support experience.

Sign-up now for the Webinar!

Vaadin Support may be used for various purposes, depending on what phase your project is in. Read below to see how Vaadin Support can help you along the way.

Design & planning phase

When a new web application is still on the concept board, it’s time to make many critical choices that will have an impact during the whole lifecycle of your application. What components to choose and what type of layout structure you should have. Namely, how to ‘componentize’ your UI designs and requirements. Vaadin Support can help you with this. Our support personnel immediately know what components or Add-Ons to use and how your layouts should be constructed. We also have the experience from hundreds of projects on how Vaadin should be integrated to various backend technologies and architectures.

Your application might also be the first Vaadin project in your company. In these cases Vaadin Support can be used as a personal mentor for making all the right choices. Well made choices early-on typically carry a very good Return On Investment (ROI) for the entire project. Our Silver package is well suited for this purpose.

Implementation phase

When you start implementing your application, it is possible to run into many types of issues you didn’t anticipate in the beginning. This is a natural course of any project. You might for example encounter some of these:

  1. Need for a custom component or extension, including client side implementation.
  2. Bug in your application, where deep Vaadin expertise is needed to debug.
  3. Help with custom theming.
  4. Help needed with new Vaadin Framework or Vaadin Pro Tools features.
  5. Help needed with Add-Ons.
  6. You actually found a bug in one of our products./li>

For bug fixing, we have a Bug Fix Priority included in our Gold and Platinum support packages. It means that you can mark any bug with a priority tag. These bugs will be first in the queue and fixed faster by our R&D.

Creating custom features that require deep understanding of the client side programming may be tricky. Our experts know Vaadin Framework inside out and probably can implement that kind of features in a much shorter time than anyone else. This is a good investment, since it frees your hands to do work where you are most productive. You can also take steps in learning to implement these yourself and we can provide assistance.

Long-term projects and gradually developed new releases of your application might also benefit from the new features Vaadin introduces. For example, recently many of our customers have been replacing the Table component with the Grid component. Where Table was performing well with Vaadin 6 and IE8, Grid is a much more efficient choice with modern browsers and Vaadin 7. Vaadin Support can help you hands-on with this migration.

Maintenance phase

Finally the application is put into production. But development rarely ends there. An application typically consists of many open source libraries, Vaadin Framework being only one of them. These are required to be kept up to date. Unfortunately side effects might happen and upgrades reveal latent bugs that need to be addressed. Sometimes quick answers and workarounds are needed, especially if your application is mission critical. There we help with our Platinum package by offering a short SLA time.

Free Support week is next week!

Vaadin Support is tuned and adjusted to be easily worth the investment. There are many ways to benefit from it, no matter what your phase is. Join the free support week and get your own experience while we solve a problem you are having right now.

Sign-up now for the Webinar!

Join Vaadin Dev Day in Berlin

Vaadin DevDay

 

What should my application architecture look like, so that it scales when my application’s userbase grows? What would be the best way to learn about the best practices with Vaadin? How about if we already have a large team working on Vaadin and we want to minimize boilerplate?

The way to learn the answers to these questions has previously been to build dozens of projects with Vaadin. Not anymore! We’re happy to announce Vaadin Dev Day – a one-day workshop where you’ll learn the best practices from how to bind data to your Vaadin UI to how to optimize your client-side, from the most experienced Vaadin Experts the world has to offer.

Vaadin Dev Day is hosted in Berlin, Germany on May 24th 2016 – your unique opportunity to build better maintainable applications and leverage Vaadin to the max.

The topics for the day are:

  • Optimizing Vaadin Applications, 45min
  • Picking the right architecture, sticking to it and evolving it, 45min
  • Best practices: Binding business data to Vaadin’s components, 45min
  • Keeping business logic outside your UI, 45min
  • Supporting mobile, desktop and tablet by building impressive layout systems, 45min
  • Background threads, asynchronous communication and Vaadin: Doing it right, 45min
  • Creating Vaadin UIs without coding, in plain HTML or in WYSIWYG, 45min
  • Q&A with your specific questions 

Join Senior Vaadin Expert Peter Lehto and Vaadin Architect Petter Holmström and learn from the experience of hundreds of projects. The event will be arranged in Melia Berlin hotel, right in the heart of Berlin.

Join Vaadin Dev Day
Early bird price 590€ available until February 29th.

CUBA Studio — How we use Vaadin for our Web Development Tool

CUBA Platform is a fairly new and rapidly growing Java framework for efficient enterprise application development. A significant part of its success can be associated with its own development tool - CUBA Studio, which is Vaadin-faced to the users.

Often, to employ one or another framework, you have to leaf through hundreds of pages before you even get started with the first line in your source code. In order to minimize the barriers to entry for CUBA Platform, we have developed our own framework-aware development tool for rapid business application development - CUBA Studio. CUBA Studio provides a convenient and intuitive graphical interface to any feature of the platform, where you can create your “Hello world” CUBA application in minutes. The studio manages many common aspects of enterprise application development: data model creation, visual layout design, source code scaffolding and so on.

When we started the development of CUBA Studio, we already had built up a large quantity of experience with Vaadin in CUBA Platform, because the generic UI of the platform is also built over this framework. So, why did we choose Vaadin? In this post I will highlight the most valuable features and interesting use cases.

Pure Java for Complex UI

Since CUBA Studio is a UI-oriented application with a big codebase, it requires good readability and maintainability of its source code. With Vaadin, we can use Java for the entire application. Vaadin makes it possible to use all existing Java libraries from our UI code directly. In addition, Java enables us to inherit and extend the functionality of the framework and third party add-ons. This ability to customize and change the standard behaviour of the components brings flexibility that is fundamental to CUBA Studio.

Thanks to the API of Vaadin, we can code the UI layout simply and quickly, like we use Swing or C# WinForms.

Let’s see how we can create a dialog window of CUBA Studio with Vaadin:

final Window newProjectWindow = new Window();
newProjectWindow.setModal(true);
newProjectWindow.setCaption("New project");
newProjectWindow.setWidth(400, Unit.PIXELS);

VerticalLayout content = new VerticalLayout();
content.setSpacing(true);

// add grid with properties of a new project
GridLayout grid = new GridLayout(2, 2);
grid.setColumnExpandRatio(1, 1);
grid.setSpacing(true);
grid.setWidth(100, Unit.PERCENTAGE);
Label nameLabel = new Label("Name");
nameLabel.setWidthUndefined();
grid.addComponent(nameLabel);

// add input controls
TextField nameField = new TextField();
nameField.setWidth(100, Unit.PERCENTAGE);
grid.addComponent(nameField);
Label versionLabel = new Label("Platform version");
versionLabel.setWidthUndefined();
grid.addComponent(versionLabel);

ComboBox versionBox = new ComboBox();
versionBox.setWidth(100, Unit.PERCENTAGE);
versionBox.addItem("6.0.6");
versionBox.addItem("6.0.5");
grid.addComponent(versionBox);

// add OK and Cancel buttons
HorizontalLayout buttons = new HorizontalLayout();
buttons.setSpacing(true);
buttons.addComponent(new Button("OK"));
buttons.addComponent(new Button("Cancel"));

content.addComponent(grid);
content.addComponent(buttons);

newProjectWindow.setContent(content);
newProjectWindow.center();
// show window
UI.getCurrent().addWindow(newProjectWindow);

Let’s have a look at the result:

This code is very easy to read and modify, because of its homogeneous nature (pure Java) and it does not require HTML markup or CSS styling for the layout of the UI components on a screen.

Have a look at the screen editor in CUBA Studio to see how complex screens can be built using Vaadin. A rich set of UI components within the framework enables us to organize a workspace for our development tool, similar to traditional desktop tools. 


Screen properties


WYSIWYG Screen editor

Wide Community and Rich Set of Addons

Our choice of Vaadin was also dictated by the large community and the wide range of third party add-on visual components. You can find many useful components using Vaadin Addons Directory. Add-ons are easy to add to your Vaadin project, as Maven dependencies, or as a simple jar library. We use a couple of Vaadin add-ons in CUBA Studio. For example, CUBA Studio enables you to scaffold and code sources for entities and screens and services right from your web browser with syntax highlighting. This feature is provided by a Vaadin third party addon - AceEditor

One more addon we have used in CUBA Studio is DragDropLayouts. The Drag-And-Drop approach is used for the WYSIWIG Screen designer, as you can see in the picture below.

Simple Client-Server-Client Communication Using AJAX

Modern web applications should be responsive, fast and user-friendly. Users expect a good reaction on interactions from any IDE. This is very difficult to achieve in a web tool due to the network nature, but we can use PUSH technologies for communication with a server to increase the performance of a web UI. Vaadin enables us to use the WebSocket protocol to organize a client-server communication in case of long background processing. We use this approach a lot, for example, to index a project on Studio startup or during a web server start.

To illustrate the way of how it is used in CUBA Studio, let’s implement a simple handler for the OK button of our “New project” dialog, which executes a fake long operation in the background thread and shows a notification to a user once the long operation is completed:

buttons.addComponent(new Button("OK", new Button.ClickListener() {
   @Override
   public void buttonClick(Button.ClickEvent event) {
       grid.setEnabled(false);
       buttons.setEnabled(false);
 
       // you can use ../valo/shared/img/spinner.gif
       newProjectWindow.setIcon(new ThemeResource("img/spinner.gif"));
       newProjectWindow.setCaption("Creating new project ...");
       final UI ui = UI.getCurrent();
       Thread projectCreateThread = new Thread(new Runnable() {
           @Override
           public void run() {
               try {
                   // just emulate long project creation
                   Thread.sleep(5000);
               } catch (InterruptedException ignored) {}
 
               ui.access(new Runnable() {
                   @Override
                   public void run() {
                       newProjectWindow.close();
 
                       Notification.show("New project has been created", Type.TRAY_NOTIFICATION);
                   }
               });
           }
       });
       projectCreateThread.setName("AsyncProjectCreate");
       projectCreateThread.start();  
   }
}));

So, you don’t need to write JavaScript code and support all the tricks of different browsers. Read more about PUSH notifications in the Book of Vaadin.

Conclusion

To sum up, Vaadin became a very good fit for our product. I could go on and on telling you about the features you can get with this framework, but let me just say that “It’s better to see something once, than to hear about it a hundred times” and I invite you all to visit a live demo of CUBA Studio. The demo version is available in read only mode. To see the full power of it, you can always download it from our website.

Try CUBA Studio now