Skip to main content
Welcome. This site supports keyboard navigation and screen readers. Press ? at any time for keyboard shortcuts. Press [ to focus the sidebar, ] to focus the content. High-contrast themes are available via the toolbar.
serard@dev00:~/cv

Workspaces, IDEs and Hot Reload

Status: Public design proposal and product vision. This series presents Diem CMF .NET’s intended architecture and capabilities. Proposed features remain subject to implementation and validation; existing components are identified separately.

A workspace is the editable source location used by generation, build tools and the IDE. The contract must ensure that a developer edits the same files the preview process actually observes.

Workspace identity and storage

A workspace must identify its owner instance/track, storage provider, source selection, selected toolchain and access policy. A Git workspace also records its base revision and working-tree state.

Filesystem-only workspaces must have explicit durability and snapshot behavior. Recreating a container must not silently destroy work that the UI presented as saved. A named volume or another configured durable provider can supply that guarantee.

Compiled artifact inputs have a different capability set. A DLL-only instance is not advertised as supporting source editing unless source material is supplied and linked explicitly.

IDE integrations

Both local and browser-based IDE providers may attach to the workspace. They must report supported editing, terminal, debugging and preview capabilities.

Connecting an IDE grants only the configured workspace and operation access. Host-engine operations and shared secrets follow separate provider policy.

Different IDEs can expose different experiences. The common contract is the identity of the workspace, tools and target process, not a claim that every debugger supports every remote scenario.

Save, apply and commit

Saving updates the workspace. Validation and generation determine whether the change can be applied. A successful preview update must identify the mechanism used:

Result Meaning
Hot-reload update applied The runtime accepted a supported change
Browser refresh or asset update The frontend refreshed affected resources
Static output rebuilt The configured static renderer produced a new preview
Rebuild/restart completed A new compatible process is ready
Change rejected Source remains editable and diagnostics identify why it is not running

A save must not automatically create a Git commit. A commit is a separate action that records selected changes and preserves an inspectable relation to the workspace.

.NET 11 development behavior

Use the selected .NET 11 preview SDK and compatible tooling. Watch the actual workspace path; container-mounted storage may require provider-specific polling or notification configuration.

A supported method-body edit can follow the hot-reload path. A generated type change, route graph change, plugin update or EF model change may require additional work. The implementation must report the real outcome rather than label every save “hot reload.”

The official dotnet watch documentation (ouvre dans une nouvelle fenêtre) defines platform behavior to verify against the selected SDK. Diem's contract adds workspace identity, policy and visible lifecycle results around that behavior.

Failure and concurrency

When compilation fails, the UI shows that the preview may still serve the previous successful state. It must not imply that the invalid source is active.

Concurrent IDE/editor changes must surface conflicts using file/model revisions. A background checkout or build must not discard uncommitted work to satisfy an incoming branch event.

A process restart may lose in-memory preview state. The UI should identify that transition, while persistent data remains governed by the instance's data scope.

Acceptance

DEV-01: local and web IDE providers edit the same selected workspace and the preview observes it.

DEV-02: saving changes preview behavior when valid without creating a commit.

DEV-03: a structural change reports a rebuild/restart or actionable failure rather than a false hot-reload success.

DEV-04: workspace files survive configured container recreation and a DLL-only import does not claim source-editing capabilities.


Previous: Lab: Branches, Builds and Deployments · Next: Extension Contracts and Compatibility · Series index · Section index

⬇ Download