If you’ve landed here, you’ve most likely learned about OpenFin Workspace and either
(a) you have already built your own workspace solution or
(b) our interpretation is just not the perfect fit for your experience.
OpenFin Container is a desktop runtime application environment that enables communication between all of your apps (web, legacy, third-party) for the enterprise desktop. It is built on top of Google Chromium and GitHub Electron and combines advanced interoperability, lightning-fast distribution, and robust security with an agile web development and deployment model.
Building a unified desktop experience is challenging! There are many aspects to consider when embarking on such an endeavor. Design, discovery, behavior, consistency, and content to name a few. On top of all that, you probably are supporting multiple teams with multiple apps who all have different needs, designs and release cadences. The OpenFin Platform API provides you with all the necessary tools to make building your Workspace application incredibly simple.
This article breaks down the Platform API architecture and its components.
The platform provider is the communication hub that coordinates among all the windows in a platform application. The provider runs in a hidden window and enables application providers to extend or overwrite default platform behavior through platform overrides. This is where you can control how your application will look and feel to create a custom branded experience.
Platform windows act as a “frame” for your platform views and can display UI controllers such as minimize, maximize and close. These are child windows of the platform provider and may contain one or many platform views.
processAffinity option at the view level or the
processAffinityStrategy option at the platform level.
Layout management enables applications providers to programmatically embed multiple views or “web apps” in a single platform window.
A snapshot defines an arrangement of platform window and view to be launched into a platform application. When a snapshot is added as a top-level option in a platform manifest, the platform launches with that snapshot by default. Application developers can replenish or restore saved configurations while the platform application is running.
This is the file that defines how an OpenFin platform application works and tells the OpenFin Runtime what your workspace looks like at launch.
By default, all child windows of a platform provider share a single renderer process, if they use content from the same origin. You can assign views into multiple processes by providing a
processAffinity option; views with the same
processAffinity value share a process. So, you can have two or more views share a process separate from other views. This can be quite useful in architecting your application for views that have a heavier memory profile.
You can also define whether a platform provider tries to keep views in the same process or different ones. The
viewProcessAffinityStrategy option in the platform configuration can be set to
"different". Setting this preference at the platform level can be simpler and more robust than handling process affinity at the view level.
Updated 14 days ago