🚀 Welcome to
MDriven Learn
– Don’t miss the
latest Release Notes
.
X
Documentation
Training
Q & A
Model Examples
Best Practices
Copyright 2023 © M
Documentation
Training
Q & A
Model Examples
Best Practices
Release Notes
Glossary
Documentation
Discussion
View source
View history
QR code
E-Mail
Navigation Menu
Designer
Start here
Designer documentation home
Introduction to MDriven Designer
What is MDriven Designer
MDriven Designer at a glance
Modeling overview
Mockotype: simplified Designer mode
Tutorials and examples
Designer overview video series
Part 1: Introduction
OCL editor, prototyper and ViewModel
Part 3
Part 4: presentation and modal actions
Part 5: searching in databases
Part 8: link objects, association classes
Part 9: Turnkey, cloud, access groups
Part 10: actions and navigation
Part 11: ViewModel Designer updates
Guided tutorials and examples
Movie Theatre, part 1
Movie Theatre, part 2
Turnkey session 3: opting out actions
Turnkey session 4: ViewModel validation
Practice with model examples
Model examples gallery
Example: store complaint handling
Build your domain model
Classes and domain modelling
Information models
Domain modeling
Classes, attributes, and relations
Class
Object-oriented programming
UML in MDriven
Class diagrams
Attributes and data types
Attribute
Column
Blob
InitialValue
Allow Null
Initial and default database values
DefaultDBValue
Attribute with class type
Attribute or data type conversion
Associations and enumerations
Qualified associations
Embed
Unique constraints on 1-to-1 links
Enumerations
Enumerations in Modlr
Working in the Designer
Designer tools and model files
Designer features and settings
Property inspector
Ecomdl
Modlr
Package
Referenced package
Segmenting definition and logic
Component
Namespace in generated code
Diagrams in Diagrams
Autodiagram
Cross reference and rename
New Rename function
Snippets, patterns and plugins
Snippets–the productivity booster
User-paid model snippets
Model patterns
Calendar package
Singleton pattern
Pattern-supported methods
Plugins in Modlr
Modlr plugin
MDriven Gist
Documenting your model
Catching more information in your model
Tag extensions
Documtr and XPS
SysDocBatch
VerbalizePatterns
AI assistance and the meta model
MCP (Model Context Protocol)
ChatDesignerPrompt
ModelLayer model
AbstractAction LLM instructions
ViewModel LLM instructions
OCL expressions
OCL, OCL-PS, and action language
Expression separator (;)
Let and Derived associations
ToString
Parse
Modulus math
SysSingleton.UrlEncode
Further Linq enhancements
Calling stored procedures
Derived attributes and associations
Derivation expressions
OCL, part 3: derivation properties
Derivation is not available in the database
Derived settable attributes
Derived settable associations
Reverse Derivation
Constraints and business rules
Constraints and validation (OCL)
Guard constraints
Opt out a constraint in ViewModels
brokenConstraints
OclPreconditionQuery
Implementing business logic
ViewModel for Business
Side effects
Actions
Action basics
What are actions?
Application actions
EAL (Extended Action Language)
Actions Editor
Class actions
ViewModel actions
Standard actions
Web client actions in tables
Actions and ViewModels
Action patterns
Act as For Actions
Pop-up action
Menu groups for class actions
Periodic action
Charge end user
Calling base class
OnDelete
CleanForFree
Acting on object
IsolationLevel
State machines and workflows
State Diagrams
OnStateChange
OnStateChange operator
Transitions, triggers, and guards
Enforcing rules with state machines
stateMachineForceMode
Workflow management
Forms and approval workflows
Process automation examples
ViewModels
ViewModel basics
What is a ViewModel?
ViewModel Editor
UI first or information first
UI-first design
AutoForms: get more with less
AutoForm and debugger updates
ViewModel settings
ViewModelName
“No root object required” warning
Cursored or full tree
ViewModelColumn names with special meaning
FollowEnable
AsString
Declarative ViewModels and tab order
Timedout ViewModel
Variables and selfVM
SelfVM
SelfVM.DirtyList
Using vCurrent and self correctly
VCurrent Root
Clipbook
Geolocation
Nested and mounted ViewModels
Mounted ViewModel
ViewInView
ListActions
Adding buttons in nested ViewModels
Seekers and search
Seeker
Dashboards and seekers
Searching with seekers
Seeker results, paging, and ordering
Tables, search and ordering
Search result pages
ValueStore pattern
Seeker and Convergence docs
Build the user interface
User interface (UI)
Tables, grids and lists
Tables and grids
Edit in grid
Table grid column style
Simple table component
Pivot tables
Dragging and DragDrop actions
Forms, inputs and presentation
Input controls
The combobox
How null is shown in picklists
Databound placeholder text
Databind labels
Text formatting
Styles in the model
PlacingContainer
Toolbarmode
Logged-in person presentation
Custom rendering and MVC
UIOverride
TK Live View
Softview
InstantPageLoader
MDriven Text Format
MVC
Render MVC ViewModel without Turnkey
MVC generated ViewModel UI
MVC ViewModel handling
MVC ViewModel constraints
Comboboxes in MVC
MVC GetImage
Data and persistence
Data
How data is stored
Persistence
Database
SQL
OR mapping
Persistence mappers
SQL database
How classes are stored in SQL
SQL Server
MySQL notes
Parent, own, and child table mapping
Type mapping, OR mapping
Database indexing
Seeing everything that is persisted
ODBC support
Keys and object identity
Doing your own primary keys
AutoInc for all primary keys
Autoguid
Custom OR mapping
The ExternalId explained
The VMClassId explained
Object identity
Evolve the database and import data
Database evolve
ScriptAfterEvolve
Legacy data with DB reverse
Import data
Validate data in the database
Versioning and data lifecycle
Versioning
Versioning your data
Versioned on class
Data retention and lifecycle
Offline capabilities
Data synchronization
Performance
Optimizing for performance
Efficient ViewModel fetch
QueryPlan
Profiling ViewModel data fetching
ExecuteQueryPlan
CascadeFetch
Delayed Fetch
Memory optimization
Subscriptions and expression invalidation
CacheInvalidation
Collect very slow
Security and access
Authorization and roles
Access groups and permissions
Access groups
AccessGroupsEnabled
Restricting data access
AccessExpression
ViewModel access and security
AccessGroups, InterestGroups, Enable
Per-ViewModel read-only mode
Deeplink with authentication
Model access review
Users, sessions and tenants
SysUser
SysSingleton and SysUser pattern
SysSession
MultiTenantPrefix
Certificate
Data protection and risk
PII handling
Consent management
OWASP Top 10 alignment
High or low exposure to risk
Integration and services
Services
Expose REST services
Rest API
RestAllowed and UIAllowed
Receive post data not known at design time
Improved routes
TaJson
JsonToObjects vs TaJson
API documentation
REST API for versioned downloads
SignalR and realtime
Call external services
RestPost and other Rest operators
Import a web service as a model
JSON or XML as class template
Rest Post
Rest Put
Rest Delete
Rest Patch
RestPatch operator
RestHead
RestDownload
SoapCall
Sign REST requests with a certificate
JsonToObjects
MergeTaJson
ViewModelAsXml
Servers and architecture
Connecting to MDriven Server
Communication between MDrivenServers
Microservices architecture
ERP systems
Internal application use cases
Query model data for analytics
AssetsTK
RemoteTurnkeyGetStringValue
Debugging and testing
OCL debugger
WPF debugger
Change the model from the debugger
Simulate login
SysDesignMocker
Unit testing model logic
Check model errors
Logging what MDriven does
LogEntry
Types of software bugs
Troubleshooting
Common error messages and solutions
Known issues and limitations
Limitations and constraints
MDriven limitations and constraints
Designer and model errors
Action must have a name
Multiple instances of a singleton
Unknown valuetype
Codegen failed
Exception on starting
Before going nuts about an issue
PreserveLegacyFilenames
Mergables folder name too long
Missing Set button in AutoForm link
Threading bug
RecyclableMemoryStream
SQL Server Compact version mismatch
Database and server errors
Problem saving database script
SQL not trusted
Duplicate IDs in the database
String attribute overflowing
Database corruption
Object is already deleted
Certificate problems in IIS
Anti-forgery token decrypt error
WCF issues
ng-click not working
Best practices and model evolution
Best practices and teamwork
Best practices
Teamwork strategies
Data governance
Securing knowledge over time
Upgrades and migration
Changelog
Breaking changes
MDriven 7.2
Migrate .NET Framework to .NET Core
Working with legacy handles
Bootstrap (deprecated)
GroupBox (deprecated)
WebAssembly 2020
Reference
Tagged values overview
Tagged values
Tagged values in the Designer
Inherit tagged values from the class
MDrivenDesignerTaggedValueHints
MDrivenDesignerPropertyInspectorHints
Extensions
Operations
Column tagged values for display
Column.HideHeading
Column.Resizable
Column.FixColSize
Column.FormatAttr
Column.Placeholder
Column.StringFormat
Column.StringFormatAngular
Column.StringFormatRazor
Column.SkipStyleLogic
Column.Texttype
Column.DataIsHtml
Column.DataIsImageUrl
Column.DataIsLink
Column.BlobDownloadLink
Column.Angular Ext Component
Column.Switch
Column and attribute behaviour tags
Column.ClientSortable
Column.SeekerSortable
Column.autocomplete
Column.autofocus
Column.MaxFetch
Column.MaxFileSizeInBytes
Column.Eco.BlobType
Attribute.Eco.BlobType
Attribute.CheckIdNameConflict
ViewModel and nesting tagged values
Span.XmlRootTag
Span.FixColSize
Span.Savebar
Span.HideMenubar
Span.DoNotSearchOnEnter
Span.ModalSize
Span.HideSidebar
Span.Eco.AutoSave
Span.Eco.UIAllowed
Span.Eco.RestAllowed
Nesting.ClientSortable
Nesting.Editable
Nesting.IsSeekerResultGrid
Nesting.MultiSelect
Nesting.IncludeCurrentAndSelectedVariables
OCL comparison and search operators
Equal to (=)
Not equal to (<>)
Greater than (>)
Greater than or equal to (>=)
Less than or equal to (<=)
Addition (+)
Search
ReQuery
About MDriven and this wiki
Support options
Trust and guarantee
MCoins
MDriven ethical policy
GDPR policy
MDriven Summit 2022
Contributing to MDriven
Wiki content lifecycle
Content lifecycle metadata
Legacy documentation
Old documentation index
MDriven Brain activity log
DaisyTest (test page)
Documentation
/
MDriven Designer: new Rename function
MDriven Designer: new Rename function
Share
Facebook
X (Twitter)
Copy link
The
Rename
operation is described in detail here:
Categories
:
Intermediate-Friendly
Priority 60
Refactoring and Evolution
Rename, split, and merge classes safely