/ Desktop Application Framework (JSR 377) / Dolphin Platform: A Sneak Peek

Dolphin Platform: A Sneak Peek

Today I want to give you a first overview of the Dolphin Platform, a new open source project on that Michael Heinrichs and I are currently working at Canoo.


The Dolphin Platform is a framework that implements the presentation model pattern and provides a modern way to create enterprise applications. As you might know there are several of this frameworks out there. So let me start this post by describing what makes the Dolphin Platform special and why we decided to create it.

Architecture overview

Since most of you know Michael and me as part of the JavaFX community, we don’t stop here when talking about the Dolphin Platform. The Platform will provide several client implementations. Currently it’s our main goal to provide a first preview at JavaOne with JavaFX, AngularJS and Polymer client support. Based on this you can simply create desktop, web or mobile clients with the Dolphin Platform. The client APIs are pure Java or JavaScript APIs and you don’t need to learn any new language to use them.

What we’ve started on the client side will be continued on the server. Here the Dolphin Platform provides an API to create server side controllers that will automatically be managed by the underlying platform. Therefore we create a Spring and JavaEE implementation of the public APIs on server side. As you will see later you can simply inject all your business services in a controller and don’t even think about any lifecycle because the web container will handle that for you. But before I go into the details I want to give a short overview about presentation models and the patterns that are implemented and provided by Dolphin Platform.

Synchronized Presentation Models

In the Dolphin Platform all models will automatically be synchronized between client and server. By doing so you don’t need to think about any specific endpoints or requests.
Based on this the Dolphin Platform defines server side controllers that contains all the controller logic for a specific view. The lifecycle of these controllers is automatically synchronized with the view lifecycle. By doing so you have a MVC group for each client view with a synchronized model and a managed controller.

Ok, I think this was enough description and I hope that you want to see some code 😉 I will post a preview of the controller API, the model API and the view API the next days.

Here are the links to additional DOlphin Platform sneak peeks:


Send Us A Message Here

Your email address will not be published. Required fields are marked *

  • 2015/10/04

    So, an Angular running in the browser and a desktop app running javafx will share the same lifecycle, and dolphin is taking care of that?

    btw, what do u use for drawing the flow chart of dolphin in this page?


    • 2015/10/04

      About lifecycle: you are right. The Dolphin Platform defines MVC groups / widgets with a synchronized lifecycle. The view can be a JavaFX, AngularJS or whatever view in that case. I will publish more information the next days including a preview of the 2 APIS: controller, model and view.
      I use Keynote to draw the images.

    • 2015/10/05

      But this don’t mean that a Angular client and a JavaFX client that runs parallel shares the same lifecycle and model. You can combine them so that the model or parts of the model will be the same on both clients. In general you can say, that Dolphin Platform defines MVC groups that can be used in JavaFX, Angular, etc. and only the View part is client specific. As you will see in the following previews this is only a very small layer that just does some bindings between the model and the view components.

  • Pingback:JavaFX links of the week, October 5 // JavaFX News, Demos and Insight // FX Experience

  • Pingback:JavaFX links of the week, October 5 | État de veille

  • 2015/11/24

    So. Since I had the chance to hava a chat with you after your talk at JUG.ch, I promise to give the platform a try… I think I have a personal litle project to try to use it for…


    PS: Greetings to Dirk and Alexander when having a drink 😉

    Daniel Zimmermann
    • 2015/11/29

      Cool! Ping me if you have any questions.

      • 2016/08/28

        Hi Hendrik,

        How can we make an executable for a single desktop application ?

  • Pingback:JavaFX links of the week, October 5 – My Worlds