Vision and Diem Heritage
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.
Diem CMF .NET proposes a continuous workflow from an application's domain model to the site people use and the tools used to develop it. The developer supplies the model and application-specific behavior. The framework supplies reusable generation, composition and lifecycle capabilities.
For a product team, this means developing the catalogue and enquiry process as one application with a generated admin. For an agency, it means delivering a client site, editing it in context and reusing successful components across projects. Both should be able to extend the framework through explicit contracts.
What comes from the original Diem
The original Diem was a PHP CMF built on Symfony and Doctrine. Its README describes projects whose modules are declared in configuration and whose code is generated for those modules. The archived tutorial connects a Doctrine schema and module declarations to a working administration interface. Historical README (ouvre dans une nouvelle fenêtre), admin tutorial, March 2011 (ouvre dans une nouvelle fenêtre).
The source makes the composition model more precise than the shorthand “pages contain widgets”:
| Historical concept | Responsibility |
|---|---|
DmPage |
Navigable page with module/action, optional record association and localized metadata |
DmPageView |
Composition selected by module/action and associated with a layout |
DmLayout |
Reusable layout and template |
DmArea |
Area associated with a layout or page view |
DmZone |
Ordered zone within an area |
DmWidget |
Ordered module/action widget instance with configuration |
Multiple pages can resolve to the same page view. Editing a shared view can therefore affect multiple entity pages. The distinction between a reusable view and one page's record context must remain visible in the .NET design. Doctrine schema (ouvre dans une nouvelle fenêtre), page-view resolution (ouvre dans une nouvelle fenêtre).
The front supported page creation, moving and sorting zones, widget configuration and clipboard operations. Its tutorial also demonstrated editing templates and components from the browser. These are concrete precedents for an interactive framework experience. Widget actions (ouvre dans une nouvelle fenêtre), front tutorial, February 2011 (ouvre dans une nouvelle fenêtre).
What this proposal adds
The proposed .NET product combines versionable modeling, pluggable generation, multiple frontend renderers and an integrated Lab. Extensions can bring their own domain types, admin surfaces and operational capabilities. A marketplace can distribute those extensions through NuGet-backed catalogues.
These are proposed capabilities. They are not attributed to historical Diem, and the original PHP classes are not a specification for directly porting every implementation detail.
Why begin with .NET 11
The chosen development baseline is .NET 11 previews with C# 15, ASP.NET Core 11/Blazor and EF Core 11. The product will follow compatible preview and release-candidate versions toward a stable release before commercial availability. This aims to incorporate the platform generation's changes during design and reduce a later migration effort.
Microsoft documents runtime, SDK and language changes in .NET 11 (ouvre dans une nouvelle fenêtre). The rendering and development chapter connects selected capabilities to Diem's needs. The benefit must be demonstrated with working features and upgrade checks, rather than assumed from a version number.
What success would look like
A team models Products and Categories, obtains an extensible admin, composes catalogue views, then opens a development branch at its own address. A changed model produces reviewable generated changes. Custom behavior survives regeneration. The team can release the new application without importing development enquiries into production.
That complete experience is the subject of the reference scenario.
Previous: Diem CMF .NET 11: Product · Next: Building and Editing the Front · Series index · Section index