Welcome to OpenFin Docs

Explore our guides, resources and references for building with OpenFin

Get Started

Container overview

Overview

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.

What is OpenFin Container

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.

Any web app that runs in Google Chrome can run on OpenFin OS unmodified and in a matter of seconds. With OpenFin, developers write 99% of their code with standard HTML5 and the JavaScript frameworks of their choice, including React and Angular. OpenFin APIs (usually <1% of code) enable windowing, interoperability and system access.

Lets gets into it...

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.

Platform Provider

The Platform Provider is the main application window which is the communication hub that coordinates between 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 Window

Platform Windows act as a “frame” for your Platform Views and can be leveraged to display UI controllers such as Minimize, Maximize and Close. These are child windows of the Provider and may contain 1 or many Platform Views.

Platform View

Platform Views are your applications content and they reside within a Platform Window. The content (a web application) is loaded into a view and attached to a Platform Window. Views have their own JavaScript context that is distinct and unconnected to the window’s context, that have no DOM representation within the window. This allows views to move between windows without refreshing or otherwise destroying the context. Views can be tabbed/tabless and provide the end-user ease to arrange the layout of a Platform Window. For optimal performances, it is worth noting that views can be split into as many render processes as needed through processAffinity.

Layout Management

Layout management enables applications providers to programmatically embed multiple views or “web apps” in a single Platform Window.

Snapshot

A Snapshot defines the Platform Window and View configuration to be launched into a Platform. When added as a top-level option in your Platform manifest, the Platform will launch with that Snapshot by default. Snapshots also enable application providers the ability to replenish/restore saved configurations while the Platform is running.

Platform Manifest

This is the file that defines how an OpenFin Platform works and tells the OpenFin Runtime what your workspace will look like at Launch.

Process Affinity

By default, all child windows of a Platform Provider share a single renderer process, based on same-origin policy. Views can be separated into further processes by providing a processAffinity option. This enables application providers to 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.

Updated 25 days ago


Container overview


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.