ComposeUI is a A .NET Core based general UI Container and Unified UI and App host which enables the hosting of Web and desktop content.
Our goal is to fill the feature gaps with respect to UI components, layout management, and subpar native hosting in other industry container solutions by providing a standard container as an open desktop platform. It is a hybrid solution that meets the needs of a diverse application catalog as well as a compelling opensource alternative.
It supports desktop and web applications in order to provide an evergreen alternative to Electron, OpenFin and similar by the use of WebView2.
As announced at OSSF NY '24 ComposeUI has successfully achieved the FDC3 2.0 Conformance on 9/30/2024 certified by FINOS. FDC3 is an open standard for applications on financial desktop to interoperate and exchange data with each other. Learn More https://fdc3.finos.org/
We're planning to release the FDC3 2.0 compliant container in v0.1.0-alpha.5 with an enhanced FDC3 Channel Selector and IPC related bug fixes. The pre-release artifacts can be found on the fdc3-2_0-conformance feature branch until the release.
- Node.js 18
- .NET 6
- Visual Studio: 2022
The javascript dependencies are managed by a lerna monorepo. To build them separately follow the steps below.
In the root folder
npm i
Build all modules:
npx lerna run build --stream
Test all modules:
npx lerna run test --stream
(If you don't want a detailed log, you can execute these without --stream)
Building a specific module:
npx lerna run build --stream --scope=@morgan-stanley/composeui-messaging-client
List all modules in the workspace
npx lerna list
For more information check the documentation.
The following steps are for building the experimental artifacts and shell for ComposeUI
Clone the main repository:
git clone https://github.com/morganstanley/ComposeUI.git
Open Powershell in the ComposeUI folder.
Restore nuget packages:
PS C:\projects\ComposeUI> .\build\dotnet-restore.ps1
Build .NET solutions:
PS C:\projects\ComposeUI> .\build\dotnet-build.ps1
Build javascript (with Lerna)
PS C:\projects\ComposeUI> .\build\lerna-build.ps1
Now the necessary artifacts have been built.
From the ComposeUI folder:
.\examples\fdc3-chart-and-grid\serve-chart-and-grid.ps1
Now the development servers are running:
- Chart: localhost:8080
- Grid: localhost:4200
- It's recommended to add the shell binary to your PATH environment variable so you can use a shorthand:
cd .src\shell\dotnet\
.\add-to-path.ps1
- Launch the FDC3 Example in the ComposeUI Shell:
MorganStanley.ComposeUI.Shell --ModuleCatalog:CatalogUrl file:///C:/ComposeUI/src/Shell/dotnet/examples/module-catalog.json --FDC3:AppDirectory:Source C:/ComposeUI/examples/fdc3-appdirectory/apps-with-intents.json
Similar steps can be taken in Visual Studio to have the same affect. See Prerequisites
The necessary solutions have to be built in the following order:
- Message Router
- ModuleLoader
- DesktopAgent
- AppDirectory
- Shell
See FDC3 Chart and Grid Example
- Open the Shell Solution
- Choose "Shell" as the startup project
- Run