This index helps you find MDriven concepts and choose the level of detail that fits your role, from first-time learner to technical implementer.
Use this index
Use the index as a map, not as a learning sequence. Entries point to pages that explain a concept in detail; a term without a destination page is still included so that you can identify the concept and continue your search elsewhere in the wiki.
- Start in Ring 1 when you are learning the vocabulary used to describe information systems, models, and user interfaces.
- Use Ring 2 when you are building and maintaining an MDriven application in MDrivenDesigner. This is the main working level for an MDriven developer.
- Use Ring 2 Meta when you need to inspect, extend, or debug the model itself.
- Use Ring 3 when you need implementation-level knowledge of databases, hosting, UI technologies, or persistence.
A concept can appear in more than one ring. This is intentional: the same concept can be understood from a business, modeling, extension, or technical perspective.
For a guided learning path, use HowTos:Reading list and HowTos:Taking It Further Still. For the broader documentation entry point, see Documentation:Index page.
The rings
| Ring | What it covers | Use it when | Example |
|---|---|---|---|
| Ring 1 | Concepts explained without requiring prior MDriven knowledge. | You need to understand the problem space and the common terms used in MDriven documentation. | Learn what an information model is before creating classes such as Person and attributes such as Name.
|
| Ring 2 | MDriven concepts explained in relation to other MDriven concepts. | You are designing, prototyping, delivering, or evolving an information system. | Define a ViewModel, add a ViewModel action, and test its behavior in a prototype. |
| Ring 2 Meta | The model layer and mechanisms for inspecting or extending it. | You need to look behind the modeled application or create model extensions. | Inspect TaggedValues or use a model debugger while investigating model behavior. |
| Ring 3 | Technical implementation concepts and their relation to the surrounding technology stack. | You are responsible for hosting, persistence, integration, or technical customization. | Configure MDrivenServer with a database and understand how model changes affect the database schema. |
Ring 1 — Foundations
These topics establish the vocabulary for modeling information and describing a system before you work with MDriven-specific features.
Information and modeling
- Information systems
- Information models
- The UML standard
- Classes, Attributes, and Relations
- Object-oriented
- State machines
- Domain Driven Design (DDD)
- Model Driven Architecture (MDA)
- Source code
- Databases
Expressions and presentation
- Object Constraint Language (OCL)
- ViewModel
- Declarative ViewModel
- User interface (UI)
- User Interaction
Delivery, architecture, and operations
- Agile development
- DevOps (Development and Operations)
- Knowledge building and retention
- Securing knowledge over time
- Service Oriented Architecture (SOA)
- Micro Services
- REST
- JSON
- XML
- LowCode / NoCode
Context and quality
- System Gist
- Modernity
- Fashion
- Information security
Ring 2 — Build with MDriven
Use these topics while modeling an application, defining its behavior, creating its user interface, and preparing it for delivery.
Model and diagram work
- MDrivenDesigner
- UML in MDriven
- Class Diagrams
- State Diagrams
- State transitions, triggers, and guards
- Methods
- Derived attributes and associations
- Reverse derived
- Constraints
- Validation rules
- Cross reference and Rename
- Versioning
- Processes and Enterprise Architect information
ViewModels and user interface
- Declarative ViewModels
- Rooted vs. Un-rooted ViewModels
- Seekers
- ValueStore pattern
- AutoForms
- UI-First
- PlacingContainer - responsiveness
- StylesInModel
- AssetsTK
For example, a ViewModel can present a multi-valued association as a nested grid. If Person has a multi-association named Cars I used to own, add a nested ViewModel class that follows that association and add a column with the expression self.RegistrationNumber. The nesting represents the multiple related objects; its columns become columns in the grid.
Actions and expressions
- Action Buttons
- ViewModel Actions
- Class Actions
- Global Actions
- Opt out Actions
- OCL, OCL-PS, and ActionLanguage
- To Evaluate expressions and expression results
- PSEval
- OCL Debugger
Choose an action scope based on where behavior belongs. A global action is available globally, a class action applies where its class type matches, and a ViewModel action is specific to the ViewModel context. An action button exposes behavior in the rendered user interface.
OCL evaluates and transforms data without changing the source data. ActionLanguage can change data. For example, an ActionLanguage expression can assign a value with :=; that operator is not available in OCL.
Server, persistence, and delivery
- MDrivenServer
- Prototyping
- MDrivenFramework
- MDrivenTurnkey
- Evolve Database
- MDrivenPortal
- ServerSide jobs
- Access Groups
- Model-patterns
- SysSingleton and SysUser Model pattern
- SysAsyncTicket Model pattern
When you upload a changed model to MDrivenServer, the server can update the database schema to match model changes. Adding a class can add a table; adding attributes can add columns; and associations can result in database structures such as indexes and foreign keys. Removing modeled data structures can remove corresponding database data. Treat destructive model changes as data-impacting changes.
Integration, generation, and transformation
- OpenDocument reports
- Expose REST API
- Consume REST API
- SOAP
- Tajson
- Transform
- Clone
- Generate c# Code
- CodeDress
Ring 2 Meta — Inspect and extend the model
These topics are for work on the model as a model: its structure, metadata, debugging, and extension mechanisms.
- ModelLayer model
- TaggedValues
- Tag extensions
- Model debugger
- Model Plugin declarative
- Model Plugin with code
For example, use tagged values and tag extensions when model elements need metadata beyond their standard properties. Use the model debugger when you need to inspect model-level behavior rather than application data in a ViewModel.
Ring 3 — Technical implementation
These topics cover the technologies and implementation details that support an MDriven solution. You normally need this level when configuring infrastructure, persistence, hosting, or custom technical behavior.
Databases and persistence
- SQLServer
- MySQL
- DatabaseCompact
- SQLite
- VistaDB
- XMLPersistence
- Building custom PersistenceMappers
- Custom ORMapping
- Reverse database to model
- Migrate data
- Parent, Own, and Child table mapping
Hosting, identity, and runtime
Client technologies and UI customization
- AngularJS
- MVC
- WPF
- CSS
- Usercss.css
- Turnkey components
- View override
- Tagexpander
See also
- Documentation:Index page
- HowTos:Reading list
- HowTos:Taking It Further Still
- MDrivenDesigner
- MDrivenServer
- OCL, OCL-PS, and ActionLanguage
