Windows Framework

Documentation

Everything you need to build, extend, and deploy modular Windows applications with the Forsetti Framework. From initial setup to advanced module patterns.

Setup

Getting Started

Set up your development environment, build the framework, and create your first module.

Requirements

Visual Studio 2022 (17.8+) with the C++ Desktop workload, CMake 3.28 or later, vcpkg package manager, and a C++20-capable MSVC compiler. Windows 10 SDK (10.0.19041.0) or later.

Building the Framework

Clone the repository, configure with CMake presets, and build. The framework uses vcpkg manifest mode for automatic dependency resolution. Three presets available: debug, release, and test.

Creating Your First Module

Implement the IForsettiModule interface, create a JSON manifest declaring your capabilities and dependencies, and register your module with the runtime discovery system.

Topics

Core Topics

Architecture Overview

Understand the 4-layer architecture, one-way dependency rules, and how ForsettiCore, ForsettiPlatform, ForsettiHostTemplate, and modules interact.

Module Structure & Contracts

Learn how to structure a module, implement the IForsettiModule interface, and define capability contracts through abstract base classes.

Manifest Configuration

Detailed reference for the JSON manifest format including module identity, type declarations, capability lists, dependency specifications, and compatibility rules.

Validation & Compatibility

How the compatibility checker validates modules against host requirements, platform constraints, dependency satisfaction, and manifest integrity.

Entitlements & Capabilities

Understanding the entitlement system, capability declarations, access policies, and how the runtime enforces entitlement-aware activation.

UI Contributions (WinUI 3)

How UI modules contribute WinUI 3 views through toolbar items, view injections, and overlay routing. Includes extension point contracts and contribution lifecycle.

Event Bus & Services

Using the framework event bus for decoupled module communication and registering services with the service container for cross-module dependency resolution.

API Reference

Complete API reference for ForsettiCore headers including IForsettiModule, ForsettiRuntime, ManifestLoader, CompatibilityChecker, EventBus, ServiceContainer, and UISurfaceManager.

Build

Build Commands

The framework uses CMake presets for reproducible builds. All dependencies are resolved automatically through vcpkg manifest mode.

Configure

cmake --preset debug

Configure the project with the debug preset. This resolves vcpkg dependencies and generates build files for MSVC.

Build

cmake --build --preset debug

Build all targets including ForsettiCore, ForsettiPlatform, example modules, and test suites.

Test

ctest --preset debug

Run all test suites including unit tests for Core, Platform, and example modules using CppUnitTest.

Explore the source.

The complete framework source, example modules, test suites, and CI/CD workflows are available on GitHub.