Enabling Modular Persistence for Reactive Data Models in F# Client-Server Web Applications
In this paper, we investigate the use of F# compile-time metaprogramming techniques to enable developing type-safe, reactive client-server applications with seamless server-side persistence using WebSharper, a mature F# web framework. Next to the two-way binding between client-side data models and their corresponding presentation, the reactive data models in our work can also express the details of server-side persistence and synchronization, using a modular approach and a strongly-typed communication channel over web sockets with communicating agents between the two tiers.
The work presented also enables using annotated HTML markup templates, translated by an F# type provider to our statically-typed reactive data models. This way, the design artifacts can be externalized into native HTML that designers can easily work with, and markup changes are checked against the F# code base at compile time.
We demonstrate the combination of these techniques with a data-aware single-page client-server chat application, expressed entirely in F#. We find that type safety, the uniform F# programming model, and the reactive design around data binding, synchronization, and persistence greatly enhances developer productivity.
Tue 15 MarDisplayed time zone: Belfast change
14:00 - 15:00 | |||
14:00 30mTalk | Enabling Modular Persistence for Reactive Data Models in F# Client-Server Web Applications CROW | ||
14:30 30mTalk | Automatically Selecting and Optimizing Constraint Solver Procedures for Object-Constraint Languages CROW Tim Felgentreff HPI, Germany, Stefan Lehmann , Robert Hirschfeld HPI, Sebastian Gerstenberg , Jakob Reschke , Lars Rückert , Patrick Siegler , Jan Graichen , Christian Nicolai , Malte Swart |