June development focused on optimizing diagram rendering performance and improving the reliability of the development environment.
ClassAutoDiagram Performance: Completely rewrote the rendering logic using ListView to significantly improve drawing performance and responsiveness for classes containing a high density of attributes and methods (50+).
UI & Component Stability: Resolved an issue with the BusyAnimation resource URI and performed a cleanup of the codebase by removing obsolete packages.config file references.
Mock Data Foundation: Continued architectural work on the upcoming Mock/Demo data generation framework.
Framework:
Framework updates prioritized thread-safety in asynchronous operations, authentication robustness, and improved display consistency.
Binding & UI Controls:
Async Threading Improvements: Improved DisplayQueue reliability by moving from thread-ID tracking to a dual-bucket system (Main vs. Async context). This prevents UI deadlocks caused by standard await/async patterns shifting thread IDs.
Tuple Rendering: Resolved an issue in Turnkey where lists displaying Tuples could lose ordering consistency during UI updates, ensuring data remains rendered correctly.
Infrastructure & Core Services:
Authentication Resilience: Changed cookie name comparison logic to be case-insensitive, preventing repeated OnCurrentUserChanged triggers that previously degraded performance.
Turnkey:
Turnkey enhancements focused on refining modal context management and ensuring the stability of data operations during action execution.
Modal Context Management: Completely rewrote the modal startup harness to safely capture and manage changes to "dirty" objects during Action.RootObjectExpression and Action.ExecuteExpression execution, preventing potential save-time exceptions.
修复
Infrastructure & Core Services:
Access Denied Handling: Fixed an exception occurring when accessing restricted screens with null root views, ensuring the system handles access-denied states gracefully.
Turnkey:
Expression Processing: Fixed a timing regression in CheckOnShowExpression where pending context switches could cause cancelled modal objects to incorrectly persist within the starting context.
MDriven v7.0.x - May 20262026年6月5日
功能
Designer:
Turnkey & Pattern Support: Merging models now accepts .ecomdl files, introducing VMClass CompleteOutofDate functionality designed for the SysTransientTKStatusSingleton pattern. This adds Turnkey support for tracking sessions and active ViewModels per session, alongside capabilities to reset specific sessions or isolated ViewModels. The pattern definition has been published to GitHub.
Mock Data Framework: Initiated foundational architectural work and implementation on a new Mock/Demo data generation framework.
Linux Case Sensitivity: Changed "content" to "Content" inside the LiveEdit view tkAsset validation routines to ensure seamless operation on case-sensitive Linux environments.
Refined the AddedBackArtificially logic to constrain the fallback system (which re-injects missing active values back into a picklist) to single-links only. This prevents unexpected layout behavior for default data types, zero values, or empty strings bound to general variables.
Infrastructure & Core Services:
Integrated framework logic to fully support the new SysTransientTKStatusSingleton pattern for session and ViewModel lifecycle management.
Added enhanced logging during the creation of SysExternalLogin instances.
Updated the LibreOffice printing implementation to automatically configure the -env:UserInstallation setting to point directly to the designated output folder.
Turnkey:
Session & State Management:
Integrated Turnkey runtime logic to support the newly introduced session tracking and resetting capabilities via the SysTransientTKStatusSingleton pattern.
UI Component Polish:
Restructured the Blazor DataGrid column resizing model to optimize responsiveness. Additionally, missing borders and styling layouts were applied to multiselect columns inside data grids.
Server:
Modernization & Component Compilation: Rectified an architectural issue introduced alongside the upgrade to .NET 10, where MVC autoforms processing large data structures rendered all generated HTML into a single continuous string. This surpassed the 60,000-character limit enforced by the Roslyn compiler and caused parsing failures. The system now inserts explicit newlines into the output stream to bypass this limitation.
修复
Designer:
UI & Platform Polish: Corrected an issue where modifying styles within LiveEdit accidentally disabled actions that did not contain an explicit ExecuteExpression.
User Interface Hardening: Fixed an unhandled error condition by applying defensive null checks within the designer's main error validation logic.
Framework:
Binding & UI Controls:
Resolved an issue where data assignment failed in both Blazor and Angular when a Combobox was bound to a list of standard integers while targeting a nullable integer.
Addressed an issue where fields utilizing standard string number formats instructed Angular to append "number", which inadvertently locked the UI component into a read-only state.
Database & Transaction Reliability: Resolved an issue where memory transaction rollbacks fell out of sync if selfVM.Save operations failed due to database constraints (such as missing nullability requirements). This ensures the underlying database error is explicitly reported instead of being masked by a secondary memory fault.
Infrastructure & Core Services:
Fixed an issue with SkipExternalAccountConfirmationScreen where changing providers misidentified a missing external login as a missing user; this is resolved by automatically generating the external identity and triggering a clean retry.
Optimized MiniBlazor execution loops by fixing a bug that queued a surplus of duplicate EnsureUpToDate tasks. General cleanup was also performed on the MDrivenServer file hierarchy to purge outdated packages and clean up the Blazor wwwroot directories.
Turnkey:
API & File Ingestion: Fixed a structural failure in UploadFileMultiPart that occurred after the underlying class was converted into an abstract type. This layout regression caused requests to fall back into a 404 catch-all route that suffered from a limitation triggering a NullReferenceException. Both issues have been resolved.
Session & State Management:
Corrected a permission issue in RefreshSysSingletonProperties where the system neglected to verify non-readonly statuses on infrastructure attributes, including ClientIp, SystemType, and UserAgent.
Fixed a stability issue by introducing defensive null checks inside the state management routine for SetValueFor__UserSidebarShowMemory.
UI Component Polish:
Fixed a CSS layout issue where the Blazor MainMenu failed to conform to the standardized var(--navbar-height) token.
Server:
Transaction Transparency: Integrated structural fixes to prevent unaligned memory rollback processes from swallowing the primary exception when selfVM.Save operations fail due to backend database constraints.
MDriven v7.0.x - April 20262026年5月11日
功能
Designer
Patching Infrastructure:
Implementation: The Designer now supports the ability to patch a TypeSystem, enabling UmlElements to be more fault-tolerant during patching scenarios.
Workflow Integration: We have implemented "PrototypeRunPatchEcoTypeSystem," which allows the system to apply changes from incomplete object-spaces (only changes since the last Mdr-upload) and merge in changed ViewModels, Actions, and Styles.
Detailed Coverage: Significant updates were made to ensure stability when patching.
State Machines. Methods. TypeSystems (including resolution of enumeration loading errors). Reference actions (fixing issues where incomplete actions were destroyed).
Turnkey Integration: Internal restructuring was performed to provide TurnkeyCore with the necessary logic for patching.
UI & Responsiveness
Responsive Styles: ResponsiveSizes measures have been added to the Theme, and responsiveness has been integrated into styles within the model.
ViewModel Editor: When selecting multiple ViewModelColumns and choosing "Move selected to new placingcontainer," the order is now correctly preserved.
UX Improvements: The scroll-into-view button has been relocated to improve visibility when nesting arrows point off-screen.
Framework
Security & Authentication
OpenID Updates: When creating a new user via OpenID, the system now checks both the Principal's Name and the Upn (User Principal Name) to determine the user's email.
Patching & Stability
Infrastructure: Continued support for the new patching capabilities across the framework.
ViewModelRuntime: Moved specific action-patching logic from Turnkey to the ViewModelRuntime.
AngularDataGrid: Fixed an issue where a "Not Visible" ViewModelColumn was still being rendered in the grid; this primarily impacted sub-column labels in tables.
UI & Responsive Design
Responsive Sizes: ResponsiveSizes measures have been integrated into Theme measures and model styles.
Blazor Server: Received general updates to the Blazor MDrivenServer implementation.
Turnkey
UI & Styling:
Blazor MainMenu: Fixed a CSS issue where the menu did not correctly utilize the --navbar-height variable.
Blazor DataGrid:
Resolved issues with multiselect column styles and lines. Updated the column resize functionality to improve usability.
Data Logic:
ComboboxPicklist: Implemented "AddedBackArtificially" logic. When a chosen value is missing from the list, it is added back to prevent UI controls from acting on stale data.
Pruning Fix: Added checks throughout the Turnkey stack to ensure that "AddedBackArtificially" correctly handles visibility across hierarchical lists and grids, preventing premature pruning of list items.
修复
Designer
Crash Fix: Addressed a bug that caused the MDrivenDesigner to crash if the OCL editor attempted to close while an RT model failed to convert.
Snippets: Fixed the "paste" button functionality in snippets, which had been broken since the .NET Core transition.
Framework
Patching & Stability
AngularDataGrid: Fixed an issue where a "Not Visible" ViewModelColumn was still being rendered in the grid; this primarily impacted sub-column labels in tables.
Server
MVC Autoforms: Resolved a critical issue encountered after switching to .NET 10, where large views generated a single line of HTML that exceeded the Roslyn 60K character limit. The system now correctly adds newlines to prevent this overflow.
MDriven v7.0.x - March 20262026年4月9日
功能
Framework
Deep Metadata & Database Insights
Added GenerateDBDescriptionJson: A powerful new administrative tool in MDrivenServer. This dumps a comprehensive JSON map of your database, including tables, columns, primary/foreign keys, tagged values, and model data types.
Use this JSON with an LLM (like Gemini) to instantly generate complex scripts, such as SQL obfuscation routines for string fields.
Class-Level Stats: MDrivenServer now tracks and displays live statistics—including the number of objects, IDs, and updates—per class, providing immediate insight into data growth and system activity.
OCL Editor Intelligence
Enhanced Suggestion Tree: The OCL suggestion engine is now more context-aware. It correctly identifies the return types of operations to suggest valid subsequent operators (e.g., ensuring TimeSpan results correctly suggest totalseconds).
Categorized Operations: The choice tree now separates Operations on Native types (C# backed) from Operations on ANY type (OCL operators), making it easier to find the right logic for your data.
Return Type Visibility: The editor now explicitly displays the Return Type of your expression, in addition to the cursor context, reducing guesswork during complex OCL authoring.
Rich Info Corner: (Also in Designer) Now builds a summary of CodeComments, Wiki links, Enum values, State details, and method bodies.
Stability & System Hardening
ODT 1.3 Support: Rewrote the OpenDocument zip handling using System.IO.Compression to resolve compatibility issues with the latest ODT 1.3 specifications.
Linux & Nginx Compatibility: Corrected URL and file-path casing to prevent breaks on case-sensitive Linux/Nginx environments.
Developer Experience
AutoForms Access: Resolved issues where strict AccessGroup enforcement made it difficult to view MDrivenServer AutoForms when using default security settings.
Target Assembly Keys: Added explicit keys to runtime assemblies to prevent .NET 4.8 SDK-style projects from getting confused by version mismatches between NuGet packages and local assemblies.
Turnkey
Security & Infrastructure: The "Secure Store"
Sensitive Settings Migration: We have introduced the Secure Store to move sensitive data (like API keys, passwords, and connection strings) out of the TurnkeySettings files and the MDrivenServer UI.
Environment Variable Support: You can now use system environment variables or a dedicated secure file to manage configurations, preventing sensitive information from being accidentally committed to source control.
Documentation: Secure Store and Environment Variables.
REST API & Logic Enhancements
Universal Request Headers: The vRequestHeaders variable (and other custom request parameters) now works across all HTTP verbs. Previously limited to GET requests, the system now correctly captures and injects these headers for POST, PUT, DELETE, and PATCH calls, enabling advanced authentication and metadata logic for all API interactions.
Resilient Configuration: Added improved error catching and logging for the TurnkeySettings file. If a settings file is corrupted or unreadable, the error is now explicitly reported in the log for faster troubleshooting.
UI & Styling Polish
Layout Stability: General updates to the CSS/SCSS architecture to ensure consistent rendering across different browser engines.
Server
Real-Time Monitoring & Diagnostic APIs
New WorkInfo API: We’ve introduced a dedicated endpoint to help you identify "hanging" database queries or long-running transactions. By calling /api/ServiceAdmin_WebApi/CurrentWorkInfo (Basic Auth), you can now programmatically monitor ongoing server-side actions.
Documentation: Check WorkInfo status via API.
Class-Level Analytics: The server now tracks and displays live statistics for every class in your model, including the number of objects, ID allocations, and update frequencies. This provides instant visibility into data hotspots and system usage patterns.
Database Mapping Intel: The new GenerateDBDescriptionJson tool allows administrators to export the entire A0 database schema (tables, keys, and metadata) as a JSON file. This is perfect for auditing or using AI to generate maintenance and obfuscation scripts.
Security: The "Secure Store"
Zero-Config Credentials: To move away from storing sensitive data in plain-text configuration files or the UI, we’ve implemented Secure Store and Environment Variable support. You can now keep your API keys and connection strings in the system environment, keeping them safe from accidental exposure in source control or logs.
Documentation: Secure Store and Environment Variables
MiniBlazor & Admin UI Evolution
Modernized Administration: Heavy development continued on the MiniBlazor UI, resulting in a faster, more responsive management experience.
AutoForm Accessibility: We resolved a conflict where strict AccessGroup enforcement made it difficult to view system AutoForms. They are now accessible under the correct security context without compromising safety.
State Management: Added explicit steps to re-initialize connection strings and settings when moving the server from a "Paused" state back to "Started," ensuring a clean recovery without requiring a full restart.
Stability & Messaging
Hardened Emailing: Improved the exception handling for outgoing emails. If a notification fails to send, the server now provides a much more descriptive error message to help you identify SMTP or configuration issues immediately.
修复
Framework
Improved Schema Mapping: Fixed a bug in XML mapping where foreign key definitions were incomplete; a new "Pass 3" was introduced to ensure all FK-tracking is accurate.
Hierarchy Fix: Resolved a critical issue in Turnkey where deeply nested ViewModel single-links (like those in Mounted Views) could become "zombies." If a parent was dereferenced, its child objects were previously left in the registry, causing stale data reuse. They are now correctly destroyed.
Association Class Cloning: Fixed a "stolen object" / Index Out of Bounds exception during DeepClone operations involving 1-to-many Association Classes.
Tuple Comparison: Fixed a NullReference bug when using IsEqual to compare nested tuples (tuples consisting of other tuples).
Combobox Z-Index Fix: Resolved a persistent visual bug where comboboxes in data grids would "bleed through" the table header when scrolling. The SCSS has been recompiled with corrected Z-index layering.
Server
Foreign Key Accuracy: Fixed a bug in the database mapping logic to ensure that foreign key definitions are 100% accurate in the XML mapping output.
MDriven v7.0.x - February 20262026年3月11日
功能
Framework
Core Infrastructure & Modernization:
Target Framework Update: Continued phasing out legacy targets, moving from .NET 4.7.2 to .NET 4.8 to ensure access to improved security and runtime features.
NuGet Ecosystem: Updates to core dependencies, including Microsoft Extensions (v10.0.2) and Azure AI OpenAI (v2.0), ensuring the framework remains at the cutting edge of performance and AI integration.
Logic & Performance Hardening:
Query Safety: Improved the resilience of the query engine. If a query fails to open (e.g., due to a missing database schema), the system now ensures the query is explicitly closed, keeping the active query cursor accurate.
Error Diagnostics & Logging:
Turnkey QueryPlanner: The QueryPlanner now provides significantly more context in the logs upon failure, making it much easier to pinpoint exactly which OCL or model structure caused a fetch error.
Turnkey
REST & Integration Enhancements:
Incoming Request Headers: In Turnkey REST calls, the system can now automatically populate a variable named vRequestHeaders. If this variable is present in your model, the incoming request headers will be injected as a JSON string, allowing for advanced logic based on metadata, custom auth headers, or origin tracking.
QueryPlanner Diagnostics: Added significantly more context to the logs when the QueryPlanner fails. This detailed tracing helps developers quickly identify precisely which part of a complex OCL fetch or ViewModel structure is causing an issue.
Performance & UI Polish:
Modernization (MiniBlazor): A significant amount of work was dedicated to the MiniBlazor initiative. This is a foundational project to transition the MDrivenServer UI to a modern Blazor-based architecture for a faster, more responsive admin experience.
Core Updates:
NuGet Ecosystem: Updated core Turnkey dependencies to align with the latest industry standards:
Support for legacy Turnkey versions via updated NuGet package compatibility.
Server
The MiniBlazor Evolution:
The majority of this month's development was dedicated to MiniBlazor, the next-generation administrative interface for MDrivenServer.
Modern UI Foundations: Continued heavy architectural work to bind Blazor Server-side components directly to the MDriven runtime.
修复
Designer
SDK-Style Project Conversion:
Modernized Build System: A large portion of the MDriven Designer source code has been converted from the legacy project format to the new SDK-style project format.
This resolves long-standing issues with NuGet package management, moving away from the old packages.config and localized package folders to a modern, centralized dependency model.
ClickOnce & Starter Fixes: The move to SDK-style projects required significant updates to the MDrivenDesignerStarter. Fixed issues where ClickOnce deployments behaved differently when running locally versus from the network, ensuring the Designer starts reliably in all environments.
Streamlined Output: Corrected issues with missing output paths and resource files (like SampleModleForAssociations.modlr) that occurred during the project format migration.
CodeGen & Automation Hardening:
Eliminating System.Void Gremlins: Continued the hunt for the elusive System.Void issue in CodeGen.
Now isolated the problem to user-code stubs interacting with the VS Code Model.
As a preventive measure, MDriven have disabled rename-handling during Automation-Codegen to ensure that automated builds remain stable even when the VS CodeDOM behaves unexpectedly.
NuGet Updates: Significant updates to core dependencies, including:
"Second Pair of Eyes" Fix: Identified a serialization conflict where System.Text.Json was failing within the Visual Studio environment (DEVENV). By switching this specific internal component to Newtonsoft, MDriven have restored full functionality to the "Second Pair of Eyes" AI-assistance feature. VS ModlrSave: Added defensive null checks during the Visual Studio model save process to prevent intermittent crashes during heavy design sessions.
Framework
Core Infrastructure & Modernization:
SDK-Style Project Conversion: Successfully migrated several core projects to the new SDK project format. This critical move resolves long-standing NuGet versioning conflicts and aligns the framework with modern .NET development standards.
Logic & Performance Hardening:
OCL & SQL Pass-through Stability: Identified and fixed a subtle issue where PSEval and SQLPassthroughs invoked from handles were being "forgotten" and not updated correctly.
To resolve this, MDriven introduced the OperationskipmemoryCursor in the IFetchConsolidationService.
Corrected a thread-context bug where main-thread calls were occasionally using incorrect variable values.
Concurrency Fix: Handled a rare SyncRoot null reference error in OrderBy operations that surfaced during heavy multi-threaded usage.
UI & Integration Enhancements:
MDrivenServer "MiniBlazor" Progress: Significant work continues on the MiniBlazor initiative, which aims to provide a fast, modern, and responsive administrative UI for MDrivenServer.
Blazor Grid Improvements: Fixed an issue in Blazor grids specifically related to the handling and display of TimeSpan data types.
Search & Import Polish: When importing Tab-Separated data with a CreateNew action, the "No Results Found" graphic now correctly hides as soon as the first row is generated.
Improved the WPF Debugger's UI refresh logic when hosted within WinForms containers.
Error Diagnostics & Logging:
Server Exception Truncation: Fixed a bug where exceptionally long error messages could fail to write to the ExceptionInfo table. The system now uses intelligent substring truncation to ensure all errors are logged.
Turnkey
Performance & UI Polish:
Periodic Action Mitigation: Identified scenarios where Periodic Actions could "stack up" if a previous execution was running slower than the trigger interval. MDriven have implemented mitigations to prevent this stacking, ensuring the server remains responsive even under heavy background workloads.
UI Styling: Corrected the CSS styling for buttons on the SaveBar, ensuring visual consistency and proper alignment across different themes.
Server
Stability and Multi-Framework Support:
Legacy Build Fix: Resolved a regression that had broken the .NET 4.8 build. MDrivenServer remains committed to supporting both modern .NET 8+ and existing .NET 4.8 environments, ensuring a smooth path for all users regardless of their current infrastructure.
Dependency Modernization: Massive NuGet update to align the server with the latest security and performance standards:
Microsoft Extensions & Primitives (v10.0.2): Optimized logging and configuration handling.
Azure AI OpenAI (v2.0): Preparing the server for advanced AI-driven management and analysis features.
The MiniBlazor Evolution:
Data Type Handling: Refined how the server-side Blazor grids manage specific data types, including a fix for TimeSpan handling to ensure precise duration displays in the admin UI.
MDriven v7.0.x - January 2026主版本2026年2月4日
功能
Designer
Editor & UI Enhancements:
Optimized Variable Window: The "Choose Type" combobox in the Variable window has returned, but with a performance twist: it now appears after the first character is typed. This prevents the sluggishness previously experienced when opening the window while still offering full searchability.
Access Group Clarity: The Access Group window now provides a clearer visualization of the default access group, making it easier to manage permissions at a glance.
Visual Studio 2026 & .NET 8 Migration:
Official VS 2026 Support: Introduced support for Visual Studio 2026. As part of this transition, core assemblies including MDriven.Wecpof.core and WPFViewModelExternalControls.core have been upgraded from .NET 6 to .NET 8-windows.
Build Automation & Persistence:
Robust Build Automation: The Build Automation engine now runs MSBuild out-of-process. This change avoids assembly load dependency conflicts and allows for much cleaner logging, including the explicit VSIX version in the logs.
Data Precision (Decimal to String): Updated XML persistence for Datablocks to use the G29 format when transforming Decimals to strings, ensuring maximum precision during round-trips.
Nullable Type Parsing: Improved the logic for converting strings back to values for nullable types. The system now verifies nullability first before parsing the base type, preventing "String to Value" errors.
Framework
Core Infrastructure & .NET 8 Migration:
Desktop Core Upgrades: Following the Designer’s lead, MDriven.WinForms.core and MDriven.WPF.core have been upgraded from .NET 6 to .NET 8-windows, ensuring full compatibility with the latest development stacks.
VS 2026 & CodeGen Stability: Hardened the CodeGen logic for Visual Studio 2026 to ensure user-implementation stubs use explicit void instead of System.Void.
Improved Error Diagnostics: Added innerexception details to Eco.ExternalLateBound errors, making it significantly easier to debug issues when external assemblies fail to load or execute.
REST & JSON Enhancements:
New OCL Operator JsonGetCollection: Building on the popular JsonGetProp, this new operator allows you to pull JSON arrays directly into a string collection for easier processing within OCL.
Flexible REST Timeouts: Introduced a new, more robust way to set call timeouts on REST requests while still effectively caching the HttpClient. This prevents long-running external calls from hanging your application.
Schema Validation: XmlValidateWithSchemas now provides much clearer error messages if a required schema cannot be downloaded or accessed.
MDrivenServer & Robustness:
Data Precision: Finalized the move to G29 format for Decimal-to-XML persistence and refined the parsing logic for nullable types to prevent data transformation errors.
Graph API & External Data:
Enhanced File Metadata: Graph API support has been extended. The LookUpFromDriveIdAndIdAndVersion method now extracts additional metadata, including the quickXorHash and the fileSize (as a long), for better file integrity tracking and management.
Turnkey
Authentication & Security:
Access Token Debugging: The error messages returned from RefreshAccessToken have been clarified. This provides developers with more actionable information when an OAuth or OpenID session fails to renew, simplifying the troubleshooting of expired credentials or configuration mismatches.
Server
Robustness & Startup Reliability:
Enhanced XML Schema Feedback: The server now provides better error messaging for XmlValidateWithSchemas when a schema cannot be downloaded, allowing for faster troubleshooting of external validation dependencies.
Clean Architecture:
Sorting Logic: Minor updates to sort order logic for internal server lists to ensure consistent data presentation.
修复
Designer
Editor & UI Enhancements:
State Machine OCL Fix: Fixed a critical bug where accessing the OCL Editor from Entry and Exit actions within state machine sub-regions would cause the Designer to crash.
Visual Studio 2026 & .NET 8 Migration:
Smart CodeGen Fixes: Resolved an issue specific to VS 2026 where user-implementation stubs for methods with no return value were incorrectly generated as System.Void. The generator now explicitly uses void to ensure clean, compilable code.
Streamlined VSIX: Removed legacy project dependencies (VS2012.csproj) from the server to eliminate key conflicts, ensuring the Model Editor remains optimized specifically for the VSIX environment.
Framework
MDrivenServer & Robustness:
Startup Synchronization: Resolved a race condition where Turnkey could throw an "Access to SQLPMapper before init" error. The system now intelligently waits up to 60 seconds for initialization to complete, making Turnkey much more resilient during server restarts.
Automated Deployment: The MDrivenServer info endpoint now returns any required Two-Factor codes needed for automated CI/CD processes.
Turnkey
UI & Navigation:
Angular Redirect Handling: Fixed an issue in the Turnkey Angular client where 404 RedirectViews were not being treated correctly. This ensures that users are properly routed to the intended fallback page rather than encountering broken navigation when a resource is missing.
Server
Robustness & Startup Reliability:
Initialization Buffer: Resolved a common race condition where Turnkey would fail if it tried to access the database before the server was fully initialized ("Access to GetConfiguredSQLPMapper"). MDrivenServer now waits up to 60 seconds for initialization to complete before returning an error, making the system much more resilient during automated restarts.
CI/CD & Automation:
Two-Factor Automation: The server info endpoint now returns the required Two-Factor codes to facilitate scripted and automated CI/CD deployments. This allows for a fully automated pipeline without compromising the security model.
Clean Architecture:
Legacy Dependency Removal: Removed the legacy Eco.Modlr.ModelEditor.VS2012.csproj from the server. This eliminates potential key conflicts and ensures the Model Editor remains a clean, VSIX-focused component, while still allowing for the future extraction of documentation caching features.
MDriven v7.0.x - December 20252026年1月10日
功能
Designer
OCL & ViewModel Editor Refinements
Smarter Variable Management: The ViewModel variable dialog has been overhauled. It is no longer sluggish or cumbersome to select types or collections; you can now simply type the name of the type to find it instantly.
Inline Variable Creation: The popular feature allowing you to create a missing variable directly from the OCL Editor has been restored.
LiveEdit & Turnkey Stability
Open in New Tab: The AbstractAction now includes a native OpenInNewTab option, providing built-in support for standard web navigation patterns.
Code Generation Efficiency: CodeGen is now more intelligent. Instead of stopping when a package is "OK," it now verifies checksums on individual class files within the package. This significantly reduces checksum mismatch issues without requiring a manual full code generation.
VS 2026 Readiness: Started cleaning away legacy packages.config files to ensure a smooth transition and compatibility with Visual Studio 2026.
UI, SVG, and "Inspiration"
Inspiration and Lift: Continued development on the new Inspiration UI, which now supports OwnHtml capabilities and better SVG handling.
SVG Standardization: Consolidated how SVGs are displayed across Angular and Blazor. Blazor now follows the Angular pattern of padding SVGs in a div with matching CSS classes for visual consistency.
Theme Variables: Added the missing --base-fg-color theme variable to Turnkey and updated the styling documentation.
Framework
Core Stability & Performance
VS 2026 Preparation: Legacy packages.config files have been removed to pave the way for compatibility with Visual Studio 2026.
UI & Developer Experience
New "No Results" Visuals: SearchGrids now display a dedicated icon (tkSearchNoRecords.svg) when a search returns zero results. Developers can easily customize this by overriding the file in their assets.
OCL Editor Productivity:
The ViewModel Variable Dialog is now optimized; you can now search for types by name instead of scrolling through lists.
The "Create Missing Variable" shortcut has been restored within the OCL editor.
Improved helper text for .NET-integrated operators: "calls through to .net" replaces the legacy "calls through to clr" phrasing.
Navigation: AbstractAction now supports the OpenInNewTab option, enabling standard browser tab behavior for web actions.
REST & Integration
Enhanced Multipart Uploads: When using RestPost for multipart content, you can now explicitly provide the Content-Type in addition to the filename, offering better control over file uploads to external APIs.
Documentation: OCL Operators RestPost
Theme & Styling: Added the missing --base-fg-color variable and fixed a misspelling in the baseline CSS that was affecting visual consistency.
Turnkey
UI & UX Refinements
New "No Results" Experience: Search grids now display a customizable SVG (tkSearchNoRecords.svg) when a query returns zero results. This only triggers after a search is executed, keeping the initial empty state clean.
SVG & Image Consistency: Blazor now mirrors the Angular rendering pattern for images and SVGs (padding them in a div with identical classes), ensuring a unified look across different web clients.
Combobox Tooltips (Angular): Fixed a Z-index issue to enable tooltips on comboboxes in the Angular client, allowing users to see truncated values more easily.
Theme Variables: Added the missing --base-fg-color variable to the Turnkey theme engine and documentation.
Navigation & Actions
Open In New Tab: The OpenInNewTab functionality for actions is now fully operational. A critical fix was applied to ensure the root object of the target view is correctly evaluated and assigned when opening in a new tab.
Server
Performance & Scaling
Increased Model Upload Limits: The RequestSizeLimit for the SubmitNewModel endpoint has been significantly increased. This change ensures that large, complex models especially those with extensive assets or generated code - can be uploaded successfully via the management interface and CI pipelines without hitting web server size constraints.
Continuous Integration (CI) Reliability
Robust Deployment: This increase in request capacity directly supports the new automated deployment workflows (CodeGen, Build, Upload), allowing for a smoother "Scripted Deploy" experience as projects grow in size and complexity.
修复
Designer
OCL & ViewModel Editor Refinements
OCL Editor Sync: Fixed an issue where the navigation tree failed to follow the context when switching between Action and OCL tabs.
Context Corrections: Fixed a logic error in the new OCL editor where the context class for Column ReadOnly, Visible, and Style properties was incorrectly targeting the nesting class instead of the ViewModel class.
LiveEdit & Turnkey Stability
Context Retention: Resolved a high-priority issue where LiveEdit would lose its context (or the screen would go white) after an edit. This was caused by double-reloading variables or issues with Enum-typed variables during the update process.
UI, SVG, and "Inspiration"
CSS Fixes: Corrected a misspelling in the baseline CSS styles that was affecting rendering.
Turnkey
Navigation & Actions
Startup Flow Fix: Resolved a NullReferenceException that occurred when explicitly requesting the StartUpView (the "Wait while we start" screen) during the boot process. The system now correctly handles redirections once the application is ready.
LiveEdit Stability
Context Retention: Major fixes for LiveEdit stability. Resolved issues where the screen would go "white" or lose the current object context after an edit. This was primarily caused by:
Double-reloading variables during design changes.
Issues with variables using Enum types.
Problems with ViewEdit logic during active design sessions.
Platform Assembly Loading: Fixed a file-finding error that occurred when loading platform-specific assemblies if the target directory did not already exist.