MDriven v7.0.x - October 2025
Released: Nov 4, 2025
v7.0.x - October 2025 中的更新
特性
Designer
- Faster VS Loading and Saving: The file subscription mechanism in Visual Studio for EcoMdl files has been completely re-engineered from individual file monitoring to directory-level subscription. This significantly speeds up file loading and saving by reducing the overhead of checking for external changes.
- Enhanced Continuous Integration (CI): The CI documentation and logic have been updated to support a flexible two-step process. You can now produce a deployable ZIP package first (MODELAUTOMATION_PACKAGEONLY=true), and upload it later.
- Action Tree Usability: Added new right-click and header-click options in the Actions tree to Opt-out/Opt-in all actions within a menu group, making mass configuration faster.
- Git Stability for Actions: The sorting of Access Groups in the Actions file is now based on ID, which will make the file structure more stable for Git version control and reduce unnecessary diffs. (Note: This will cause a one-time "dirty" change to the Actions file upon the first save.)
- Assembly and NuGet Stability: Multiple updates to various System.Buffers, System.Memory, System.Text.Json, and Azure-related NuGet packages to improve stability and resolve known issues, especially in Visual Studio and the .NET 4.8 framework.
Framework
- Enhanced Debugging with OCLPS: The SysDebugger is smarter when executing OCLPS (OCL Play Script). It now checks the expression's resulting type to decide between using GetValue or Execute, enabling correct evaluation of expressions like Class.allinstances->size.
- Dynamic Views Security: The SysDynamicView pattern is now supported by Turnkey, and critically, security has been improved. Dynamic views are now assigned the correct access groups from the calling view to prevent unauthorized access to AutoForm URLs.
- Overriding Opt-Out Actions: A new tagged value, IgnoreOptOut=true, has been added to class actions. This allows core actions (like those used by SysDebuggerAutoform) to be called from any object, even when the default is set to opt-out.
- Refined Metric/Imperial Conversions: The MetricNotImperial tag has been broken down into specific presentation types: MetricNotImperial_Area, _Weight, _Temperature, _Volume, and _Velocity for more precise unit handling.
- Improved File Downloads: The Turnkey/GetImage endpoint is now more robust, correctly handling file downloads even when the filename contains characters that require escaping.
- New Clipboard Functions: Added the JavaScript function ReadFromClipbookMDriven to complement the existing WriteToClipbookMDriven.
- NuGet and .NET Updates: Multiple updates to core packages, including Azure, System.Text.Json, System.Buffers, and System.Memory, ensuring compatibility and stability for both .NET 4.8 and newer platforms.
Turnkey
- Enhanced Search Grid Export: When exporting an empty search grid to a file, only the headers are now sent. This makes it much easier to obtain a template for data import. Utility columns (_ReadOnly, _Visible, _Style) are automatically filtered out.
- Blazor Component Loading: The download mechanism for Blazor Components has been rewritten to better support Server-Side Blazor, ensuring component assemblies are only loaded once for efficiency.
- Instant Page Loader Documentation: Updated documentation is available for the Instant Page Loader.
- Core Dependency Updates: Multiple updates to core packages, including Azure, System.Text.Json, System.Buffers, and System.Memory to improve stability and compatibility, including resolutions for issues with MDrivenServer on .NET 4.8.
Server
- New CI Model Upload Endpoint: A dedicated endpoint, ServiceAdmin_WebApi/SubmitNewModelCI, has been added to facilitate Continuous Integration model uploads, streamlining your automated deployment process.
- Dynamic View Security Fix: Fixed a critical security issue where SysDynamicViews lacked AccessGroups. They are now correctly assigned the access groups of the calling view (usually the debugger), preventing unauthorized access to AutoForms.
- Progress Feedback on Save: Added a progress action to the save call, which will provide better user feedback during model saving operations.
- Logging and Stability: Increased the number of log files saved from 10 to 50.
- NuGet Updates: Multiple updates to core packages, including Azure, System.Text.Json, System.Identity.Client, and others to ensure stability and compatibility across the platform, including fixes for MDrivenServer on .NET 4.8.
修补程序
Designer
- VS Hard Close Protection: Fixed an issue in the Visual Studio Save model flow where background threads made the save process vulnerable to hard application closes.
- Cross-Reference Index Restored: A null check issue that had knocked out the crucial UsedBy cross-reference index has been fixed.
- Expression Analysis: Fixed an issue where the AnalyzeExpression feature failed when exposed to .allinstances calls on enumerations (e.g., SomeEnum.allinstances).
- Assembly and NuGet Stability: Resolved an AssemblyResolve issue where the system was incorrectly looking for Eco.Handles instead of the correct MDriven.Handles.netStandard assembly.
Framework
- Breaking Change (VMClass Baggage): The VMClass.Baggage dictionary has shifted from Dictionary<string, string> to Dictionary<string, object>. This was necessary to correctly handle variable values on MVC postbacks.
- OCL Execution Logic: Removed a restrictive check on self is new inside OclPS to allow the execution of more generic OCL expressions within PSEval, even if they don't explicitly use self.
- Debugger/UI Fixes:
- Fixed the /debug page in Angular, which was broken due to changes in MiniBlazor and actions being used as VMClass columns.
- Fixed an issue in SysDynamicView where constructing dynamic columns with XML-sensitive expressions failed.
- Addressed issues with Create New and Delete buttons being knocked out of debugger autoform seekers.
- MDriven Server Modernization: Continued work on MDriven.MiniBlazor, a strategy to bind Blazor Server-Side directly to VMClass to modernize the MDrivenServer UI.
- GraphAPI: The SysGraphAPIResultRow now correctly sets the Modified:DateTime? attribute if it is present in the results.
- Core Stability: Hunted and cured an infinite loop issue caused by the use of System.Drawing.Common, and removed excessive logging.
Turnkey
- Login Redirection Fix: Fixed a critical issue where login triggered by server automation (like OpenID) would fail to fully refresh an existing Angular application, neglecting the new login state. The system now forces a full page refresh on the first ViewModel load for a newly logged-in user to ensure correct state.
- URL Navigation Fix: Navigating to the root application URL (/App) without a hash no longer shows an empty page; it now correctly redirects to the index.
- Blazor Subfolder Fix: Fixed an issue with the Blazor Component download URL when the application is hosted in a subfolder.
Server
- MDrivenServer UI Modernization: Continued development on MDriven.MiniBlazor—a strategy to bind Blazor server-side directly to VMClass to give the MDrivenServer UI a more modern, responsive look and feel.
- Assembly and Dependency Fixes:
- Fixed an AssemblyResolve issue where the system was incorrectly looking for Eco.Handles instead of the correct MDriven.Handles.netStandard assembly.
- Resolved issues with MDrivenServer after modernizing it with AccessGroups.
- Logging and Stability: Removed excessive logging and fixed a recursive infinite loop issue caused by the use of System.Drawing.Common.