MDriven - August 2024
This release includes a mix of new features, bug fixes, and improvements across Designer, Framework, and Turnkey.
Designer
- Checksum Improvements:
- Addressed a difference in checksum calculation when model constructors were introduced (Framework - Revision 15891).
- Improved handling of missing model methods removed manually from code files (Designer - Revision 15830).
- WPF DataGrid Fix: Resolved an issue where DataGrids only displayed a maximum of two rows (Designer - Revision 15877).
- CodeGen Performance: Enhanced CodeGen performance by adding an await Dispatcher.Yield() (Designer - Revision 15872).
- ActionEditor Enhancement: Added a "New" button to create new ViewModels within the ActionEditor (Designer - Revision 15850).
- Other Bug Fixes:
- Fixed various unspecified issues (Designer - Revision 15881, Revision 15877).
Framework
- Debugger Enhancement: Improved error message clarity for failing expressions in the debugger (Framework - Revision 15894).
- Cell-Level Read-Only Behavior: Addressed inconsistencies in cell-level read-only behavior (Framework - Revision 15892).
- Blazor Integration:
- Extensive work on Blazor integration, including numerous bug fixes and improvements (Framework - Revisions 15895, 15886, 15882, 15879, 15878, 15876, 15874, 15866, 15865, 15864, 15861, 15857, 15855, 15854, 15853, 15849, 15847, 15846, 15844, 15837, 15834, 15832, 15829, 15827, 15826, 15824, 15823, 15820, 15819, 15818, 15817, 15816, 15815, 15814, 15813, 15812, 15811). Key areas of focus include:
- Pre-rendering checksums
- View creation and re-rendering
- Styling (buttons, grids)
- Grid features (paging, columns, visibility)
- Runtime CSS refresh
- DataGrid improvements
- External component import
- Navigation and URL handling
- Toolbar behavior on small screens
- Folding menus and sections
- Improved SoapCalls security by validating certificates, including support for self-signed certificates (Framework - Revision 15849).
- Extensive work on Blazor integration, including numerous bug fixes and improvements (Framework - Revisions 15895, 15886, 15882, 15879, 15878, 15876, 15874, 15866, 15865, 15864, 15861, 15857, 15855, 15854, 15853, 15849, 15847, 15846, 15844, 15837, 15834, 15832, 15829, 15827, 15826, 15824, 15823, 15820, 15819, 15818, 15817, 15816, 15815, 15814, 15813, 15812, 15811). Key areas of focus include:
Turnkey
- Blazor Rendering: Optimized Blazor rendering by removing a redundant div level and shifting responsibility to components (Turnkey - Revision 15895).
- AppReady Response: Modified AppReady server response behavior to hold for 10 seconds if needed, allowing clients to request directly without overloading the server (Turnkey - Revision 15893).
- SkipWhenBacking Tag Respect: Ensured Turnkey Angular respects the SkipWhenBacking tagged value on ViewModels (Turnkey - Revision 15888).
- vCurrent Bug Fix: Addressed a bug in vCurrent propagation for VMClass in nested Turnkey scenarios involving combo boxes (Turnkey - Revision 15884).
- CSS Turnkey Change: Simplified the &.full-height CSS calculation for better compatibility with the toolbar (Turnkey - Revision 15862).
- Other Bug Fixes and Improvements:
- Introduced various bug fixes and improvements related to Blazor in Turnkey (Turnkey - Revisions 15893, 15888, 15856, 15854, 15853, 15846, 15845, 15835, 15832).
General
- Updated Microsoft.AspNetCore.Components to version 8.0.8 (Framework - Revision 15866).
MDriven - July 2024
Designer
- Blazor Enhancements:
- Implemented error handling and helper text for improved user experience.
- Fixed issues with ViewModelColumn editing in InplacePopup.
- Added support for notifications in Blazor.
- Introduced constraints for Blazor components.
- Started development on InPlacePopup.
- Improved TextArea and GlobalMenu visibility and enablement.
- Implemented proper styling and visibility for PlacingCOntainer ListView.
- Added double-click functionality and checkbox cell styling for grids.
- Updated tk-checkbox for grid reuse and style updates.
- Fixed Memcheck issues related to negative numbers.
- Enabled file upload and image upload functionality.
Framework
- NuGet Updates: Consolidated and updated NuGet packages for Microsoft.IdentityModel.JsonWebTokens, Microsoft.IdentityModel.Logging, Microsoft.IdentityModel.Tokens, System.Diagnostics.DiagnosticSource, System.IdentityModel.Tokens.Jwt, System.Text.Encodings.Web, System.Text.Json, System.Threading.Channels, and Microsoft.IdentityModel.Abstractions.
- Blazor Improvements:
- Resolved issues with the leftside menu blinking.
- Integrated SignalR 8.0.7 and cleaned up old Blazor implementations.
- Added support for sending TaggedValues with metadata and corrected PreventDefault for contextmenu.
- Implemented ContextMenu functionality.
- Added alert dialogs for various actions.
- Introduced modal windows with OK/Cancel buttons.
- Implemented leftside actions.
- Added CenteredPopUp functionality.
Turnkey
- Fixed spurious exceptions during style removal.
- Introduced CenteredPopUp in MiscSettingsSingleton.
Server
- Owin Update: Updated Microsoft.Owin package to version 4.2.2.
- NuGet Updates: Consolidated and updated NuGet packages for Microsoft.IdentityModel.JsonWebTokens, Microsoft.IdentityModel.Logging, Microsoft.IdentityModel.Tokens, System.Diagnostics.DiagnosticSource, System.IdentityModel.Tokens.Jwt, System.Text.Encodings.Web, System.Text.Json, System.Threading.Channels, and Microsoft.IdentityModel.Abstractions.
This release includes significant enhancements to the Blazor framework, improved user experience, and updated NuGet packages.
MDriven - June 2024
Designer
Enhancements
- GlobalMenu Data Access: Added access to GlobalMenu data as XML for Blazor client. Introduced BlazorClientMetaRenderer to provide page structure for the Blazor client. Updated MDriven.SharedInterfaces.WebAssembly to remove dependency on Eco.Interfaces for version information. (Revision 15735)
- New APIs for Blazor Client Meta Info: Introduced GlobalActionsMeta2 and ViewMetaBlazorClient APIs for enhanced Blazor client metadata handling. (Revision 15737)
- GlobalCenteredPopUp Tag: Introduced GlobalCenteredPopUp tag for better popup management. (Revision 15730)
- SysDocBatch Pattern Extension: Extended the SysDocBatch pattern by adding the method
OnSysDocBatchViewClose
. (Revision 15699) - LibreOffice Conversion Support: Introduced support for PDF, DocX, and XLSX conversions using LibreOffice. (Revision 15697)
Fixes
- Checksum Strategy Update: Fixed an issue where the "Model has changes - codegen?" question was not updated to look at the new checksum strategy, resulting in messages being displayed at the wrong time. (Revision 15736)
- MDrivenZeroServerSide: Added condition definitions for MDRIVENZEROSERVERSIDE. (Revision 15739)
- Null Checks: Implemented null checks in QP and Ocl_Existing. After 10 BusinessDeleteWarnings, the system will now ask, "Do you want us to continue to warn you?" Additional null check added. (Revisions 15734, 15728, 15714)
- Debugger List Update: Removed triggers and trigger queries from the debugger list of operators. (Revision 15727)
- oclEditor Rescue Functions: Resolved an issue where the oclEditor Rescue functions, which offer to add a missing variable or attribute, were getting confused too easily. (Revision 15726)
- Version Update: Correct version applied to MDriven.SharedInterfaces.WebAssembly assembly and NuGet. (Revision 15721)
- Filename Handling in ZIP: Replaced colons with underscores in filenames within ZIP archives to avoid issues. (Revision 15713)
- AutoFormSeekers Exception: Fixed an issue where AutoFormSeekers for transient classes failed with an exception. (Revision 15710)
- ViewModelOpenDocumentReports: Addressed issues with static fields in ViewModelOpenDocumentReports that could cause strange report results in multiuser systems (e.g., turnkey/mdrivenserver), where images could get mixed up between reports. (Revision 15708)
- LibreOffice Compatibility: Fixed an issue where LibreOffice would not open ODT files with images due to incorrect updates to the meta-inf/manifest.xml file. (Revision 15707)
- Action Optimization: Improved optimization for checking ActionsThatShowThis ViewModel. Added consideration for the root expression due to ViewModel changes in root type or requirement. Renamed the expression "Score" to "Cost" to better reflect the measurement. (Revision 15706)
- SysDocBatchChecks Update: Moved SysDocBatchChecks to DefaultEcoSpace. Fixed an issue where a missed action occurred when a button with abstractaction opted out and displayed a modal window. Added GraphAPISupport GetContentFromDriveIdAndIdAndVersion. (Revision 15704)
- StartTransactionNoChecks: Introduced a protected virtual method
IDbTransaction StartTransactionNoChecks()
on AbstractIDatabaseImpl to facilitate custom transaction starts, enabling Firebird-specific options. (Revision 15703) - Convert.ChangeType Fix: Resolved an issue with
Convert.ChangeType
failing for string to Guid conversion by implementingTypeDescriptor.GetConverter(t).ConvertFromInvariantString(safeval as string)
for all string values. This fixed the issue with converting posted data to Guid at FI. (Revision 15700) - MDrivenServerAutoForm Update: Removed the FileType parameter from
selfVM.Download
, extended the SysDocBatch pattern withOnSysDocBatchViewClose
, and dropped Convert attributes from the SysDoc pattern due to incompatibility with the ZIP function. Fixed a bug in MDrivenServerAutoForm when converting nullable DateTime. (Revision 15698) - Popup Management: Fixed positioning of popups called from toolbar dropdowns, adjusted popups overflowing the viewport, and addressed min-height in advanced tables. (Revisions 15719, 15718, 15717, 15724, 15729)
- WatcherTableHeight Error: Fixed watcherTableHeight error in the console. (Revision 15716)
- selfVM.Download Operator: Fixed an issue where the new selfVM.Download operator did not correctly trigger multiple downloads in turnkey. (Revision 15712)
- SysDocBatchViewRequestedShowButNotShown: Changed parameters to
ViewModel.SysDocBatchViewRequestedShowButNotShown
. (Revision 15711) - Enable/Visible for WPF: Fixed an issue with lagging Enable/Visible for WPF due to late action enable evaluation triggering some derived effects on early action enable. (Revision 15720)
- DuckType Error Checks: Fixed DuckType error check for Association classes and DuckType column name checking for derived targets that cannot be assigned. (Revisions 15702, 15701)
Technical Improvements
- Turnkey Update: Refined the IExternalLateBind implementation of Turnkey to better support pattern-based methods from MDrivenServer. (Revision 15695)
- SysDocBatch Pattern Update: Updated SysDocBatch pattern for WPF and wecpof. (Revision 15709)
Turnkey
Enhancements
- GlobalMenu Data Access: Added access to GlobalMenu data as XML for Blazor client. Introduced BlazorClientMetaRenderer to provide page structure for the Blazor client. Updated MDriven.SharedInterfaces.WebAssembly to remove dependency on Eco.Interfaces for version information. (Revision 15735)
- New APIs for Blazor Client Meta Info: Introduced GlobalActionsMeta2 and ViewMetaBlazorClient APIs for enhanced Blazor client metadata handling. (Revision 15737)
- GlobalCenteredPopUp Tag: Introduced GlobalCenteredPopUp tag for better popup management. (Revision 15730)
- SysDocBatch Pattern Extension: Extended the SysDocBatch pattern by adding the method
OnSysDocBatchViewClose
. (Revision 15699) - LibreOffice Conversion Support: Introduced support for PDF, DocX, and XLSX conversions using LibreOffice. (Revision 15697)
Fixes
- Checksum Strategy Update: Fixed an issue where the "Model has changes - codegen?" question was not updated to look at the new checksum strategy, resulting in messages being displayed at the wrong time. (Revision 15736)
- MDrivenZeroServerSide: Added condition definitions for MDRIVENZEROSERVERSIDE. (Revision 15739)
- Null Checks: Implemented null checks in QP and Ocl_Existing. After 10 BusinessDeleteWarnings, the system will now ask, "Do you want us to continue to warn you?" Additional null check added. (Revisions 15734, 15728, 15714)
- Debugger List Update: Removed triggers and trigger queries from the debugger list of operators. (Revision 15727)
- oclEditor Rescue Functions: Resolved an issue where the oclEditor Rescue functions, which offer to add a missing variable or attribute, were getting confused too easily. (Revision 15726)
- Version Update: Correct version applied to MDriven.SharedInterfaces.WebAssembly assembly and NuGet. (Revision 15721)
- Filename Handling in ZIP: Replaced colons with underscores in filenames within ZIP archives to avoid issues. (Revision 15713)
- AutoFormSeekers Exception: Fixed an issue where AutoFormSeekers for transient classes failed with an exception. (Revision 15710)
- ViewModelOpenDocumentReports: Addressed issues with static fields in ViewModelOpenDocumentReports that could cause strange report results in multiuser systems (e.g., turnkey/mdrivenserver), where images could get mixed up between reports. (Revision 15708)
- LibreOffice Compatibility: Fixed an issue where LibreOffice would not open ODT files with images due to incorrect updates to the meta-inf/manifest.xml file. (Revision 15707)
- Action Optimization: Improved optimization for checking ActionsThatShowThis ViewModel. Added consideration for the root expression due to ViewModel changes in root type or requirement. Renamed the expression "Score" to "Cost" to better reflect the measurement. (Revision 15706)
- SysDocBatchChecks Update: Moved SysDocBatchChecks to DefaultEcoSpace. Fixed an issue where a missed action occurred when a button with abstractaction opted out and displayed a modal window. Added GraphAPISupport GetContentFromDriveIdAndIdAndVersion. (Revision 15704)
- StartTransactionNoChecks: Introduced a protected virtual method
IDbTransaction StartTransactionNoChecks()
on AbstractIDatabaseImpl to facilitate custom transaction starts, enabling Firebird-specific options. (Revision 15703) - Convert.ChangeType Fix: Resolved an issue with
Convert.ChangeType
failing for string to Guid conversion by implementingTypeDescriptor.GetConverter(t).ConvertFromInvariantString(safeval as string)
for all string values. This fixed the issue with converting posted data to Guid at FI. (Revision 15700) - MDrivenServerAutoForm Update: Removed the FileType parameter from
selfVM.Download
, extended the SysDocBatch pattern withOnSysDocBatchViewClose
, and dropped Convert attributes from the SysDoc pattern due to incompatibility with the ZIP function. Fixed a bug in MDrivenServerAutoForm when converting nullable DateTime. (Revision 15698) - Popup Management: Fixed positioning of popups called from toolbar dropdowns, adjusted popups overflowing the viewport, and addressed min-height in advanced tables. (Revisions 15719, 15718, 15717, 15724, 15729)
- WatcherTableHeight Error: Fixed watcherTableHeight error in the console. (Revision 15716)
- selfVM.Download Operator: Fixed an issue where the new selfVM.Download operator did not correctly trigger multiple downloads in turnkey. (Revision 15712)
- SysDocBatchViewRequestedShowButNotShown: Changed parameters to
ViewModel.SysDocBatchViewRequestedShowButNotShown
. (Revision 15711) - Enable/Visible for WPF: Fixed an issue with lagging Enable/Visible for WPF due to late action enable evaluation triggering some derived effects on early action enable. (Revision 15720)
- DuckType Error Checks: Fixed DuckType error check for Association classes and DuckType column name checking for derived targets that cannot be assigned. (Revisions 15702, 15701)
Technical Improvements
- Turnkey Update: Refined the IExternalLateBind implementation of Turnkey to better support pattern-based methods from MDrivenServer. (Revision 15695)
- SysDocBatch Pattern Update: Updated SysDocBatch pattern for WPF and wecpof. (Revision 15709)
Framework
Enhancements
- GlobalMenu Data Access: Added access to GlobalMenu data as XML for Blazor client. Introduced BlazorClientMetaRenderer to provide page structure for the Blazor client. Updated MDriven.SharedInterfaces.WebAssembly to remove dependency on Eco.Interfaces for version information. (Revision 15735)
- New APIs for Blazor Client Meta Info: Introduced GlobalActionsMeta2 and ViewMetaBlazorClient APIs for enhanced Blazor client metadata handling. (Revision 15737)
- GlobalCenteredPopUp Tag: Introduced GlobalCenteredPopUp tag for better popup management. (Revision 15730)
- SysDocBatch Pattern Extension: Extended the SysDocBatch pattern by adding the method
OnSysDocBatchViewClose
. (Revision 15699) - LibreOffice Conversion Support: Introduced support for PDF, DocX, and XLSX conversions using LibreOffice. (Revision 15697)
Fixes
- Checksum Strategy Update: Fixed an issue where the "Model has changes - codegen?" question was not updated to look at the new checksum strategy, resulting in messages being displayed at the wrong time. (Revision 15736)
- MDrivenZeroServerSide: Added condition definitions for MDRIVENZEROSERVERSIDE. (Revision 15739)
- Null Checks: Implemented null checks in QP and Ocl_Existing. After 10 BusinessDeleteWarnings, the system will now ask, "Do you want us to continue to warn you?" Additional null check added. (Revisions 15734, 15728, 15714)
- Debugger List Update: Removed triggers and trigger queries from the debugger list of operators. (Revision 15727)
- oclEditor Rescue Functions: Resolved an issue where the oclEditor Rescue functions, which offer to add a missing variable or attribute, were getting confused too easily. (Revision 15725)
- Version Update: Correct version applied to MDriven.SharedInterfaces.WebAssembly assembly and NuGet. (Revision 15721)
- Filename Handling in ZIP: Replaced colons with underscores in filenames within ZIP archives to avoid issues. (Revision 15713)
- AutoFormSeekers Exception: Fixed an issue where AutoFormSeekers for transient classes failed with an exception. (Revision 15710)
- ViewModelOpenDocumentReports: Addressed issues with static fields in ViewModelOpenDocumentReports that could cause strange report results in multiuser systems (e.g., turnkey/mdrivenserver), where images could get mixed up between reports. (Revision 15708)
- LibreOffice Compatibility: Fixed an issue where LibreOffice would not open ODT files with images due to incorrect updates to the meta-inf/manifest.xml file. (Revision 15707)
- Action Optimization: Improved optimization for checking ActionsThatShowThis ViewModel. Added consideration for the root expression due to ViewModel changes in root type or requirement. Renamed the expression "Score" to "Cost" to better reflect the measurement. (Revision 15706)
- SysDocBatchChecks Update: Moved SysDocBatchChecks to DefaultEcoSpace. Fixed an issue where a missed action occurred when a button with abstractaction opted out and displayed a modal window. Added GraphAPISupport GetContentFromDriveIdAndIdAndVersion. (Revision 15704)
- StartTransactionNoChecks: Introduced a protected virtual method
IDbTransaction StartTransactionNoChecks()
on AbstractIDatabaseImpl to facilitate custom transaction starts, enabling Firebird-specific options. (Revision 15703) - Convert.ChangeType Fix: Resolved an issue with
Convert.ChangeType
failing for string to Guid conversion by implementingTypeDescriptor.GetConverter(t).ConvertFromInvariantString(safeval as string)
for all string values. This fixed the issue with converting posted data to Guid at FI. (Revision 15700) - MDrivenServerAutoForm Update: Removed the FileType parameter from
selfVM.Download
, extended the SysDocBatch pattern withOnSysDocBatchViewClose
, and dropped Convert attributes from the SysDoc pattern due to incompatibility with the ZIP function. Fixed a bug in MDrivenServerAutoForm when converting nullable DateTime. (Revision 15698) - Popup Management: Fixed positioning of popups called from toolbar dropdowns, adjusted popups overflowing the viewport, and addressed min-height in advanced tables. (Revisions 15719, 15718, 15717, 15724, 15729)
- WatcherTableHeight Error: Fixed watcherTableHeight error in the console. (Revision 15716)
- selfVM.Download Operator: Fixed an issue where the new selfVM.Download operator did not correctly trigger multiple downloads in turnkey. (Revision 15712)
- SysDocBatchViewRequestedShowButNotShown: Changed parameters to
ViewModel.SysDocBatchViewRequestedShowButNotShown
. (Revision 15711) - Enable/Visible for WPF: Fixed an issue with lagging Enable/Visible for WPF due to late action enable evaluation triggering some derived effects on early action enable. (Revision 15720)
- DuckType Error Checks: Fixed DuckType error check for Association classes and DuckType column name checking for derived targets that cannot be assigned. (Revisions 15702, 15701)
- General Fixes: Various other minor fixes and improvements. (Revisions 15740, 15723, 15722, 15696, 15695)
Technical Improvements
- Turnkey Update: Refined the IExternalLateBind implementation of Turnkey to better support pattern-based methods from MDrivenServer. (Revision 15695)
- SysDocBatch Pattern Update: Updated SysDocBatch pattern for WPF and wecpof. (Revision 15709)
Server
Enhancements
- GlobalMenu Data Access: Added access to GlobalMenu data as XML for Blazor client. Introduced BlazorClientMetaRenderer to provide page structure for the Blazor client. Updated MDriven.SharedInterfaces.WebAssembly to remove dependency on Eco.Interfaces for version information. (Revision 15735)
- New APIs for Blazor Client Meta Info: Introduced GlobalActionsMeta2 and ViewMetaBlazorClient APIs for enhanced Blazor client metadata handling. (Revision 15737)
- GlobalCenteredPopUp Tag: Introduced GlobalCenteredPopUp tag for better popup management. (Revision 15730)
- Support for Pattern-Based Methods: Improved support for pattern-based methods from MDrivenServer by refactoring IExternalLateBind implementation in Turnkey. (Revision 15695)
Bug Fixes
- Checksum Strategy in Model Changes: Fixed the issue where the "Model has changes - codegen?" question did not consider the new checksum strategy, causing incorrect messaging. (Revision 15736)
- OclEditor Rescue Functions: Fixed confusion in oclEditor Rescue functions offering to add missing variables/attributes. (Revision 15726)
- Enable/Visible Lag in WPF: Fixed issue with lagging Enable/Visible states in WPF due to late action enable evaluation triggering derived effects. (Revision 15720)
- AutoFormSeekers Exception: Fixed exception in AutoFormSeekers for transient classes. (Revision 15710)
- ViewModelOpenDocumentReports: Fixed issues with static fields in ViewModelOpenDocumentReports that caused incorrect report results in multiuser systems. (Revision 15708)
- LibreOffice Compatibility: Fixed issue where LibreOffice couldn't open ODT files with images due to incorrect meta-inf/manifest.xml updates. (Revision 15707)
- New selfVM.Download Operator: Fixed issue where the new selfVM.Download operator did not correctly trigger multiple downloads in Turnkey, only taking the last one. (Revision 15712)
- SysDocBatch Checks: Moved SysDocBatchChecks to DefaultEcoSpace. Fixed issue with missed actions when a button with abstract action opted out and showed a modal window. Added support for GraphAPISupport GetContentFromDriveIdAndIdAndVersion. (Revision 15704)
- Download FileType Parameter Removal: Removed the FileType parameter from selfVM.Download. Extended SysDocBatch pattern with OnSysDocBatchViewClose method. Dropped Convert attributes from SysDoc pattern as they conflicted with the Zip function. Fixed bug in MDrivenServerAutoForm when converting nullable DateTime. (Revision 15698)
- Null Check: Implemented additional null check. (Revision 15722)
Adjustments
- Popup Overflow Adjustments: Adjusted newly opened popups to prevent them from overflowing the viewport. (Revisions 15729, 15724, 15717)
- Toolbar Popup Positioning: Fixed the positioning of popups called from toolbar dropdowns. (Revision 15719)
- Advanced Tables Cleanup: Cleaned up min-height settings in advanced tables. (Revision 15718)
- Watcher Table Height Error: Fixed console error related to watcherTableHeight. (Revision 15716)
- Correct Version in Assembly and NuGet: Updated MDriven.SharedInterfaces.WebAssembly to the correct version in the assembly and NuGet package. (Revision 15721)
- Filenames in ZIP: Replaced colons in filenames within ZIP archives with underscores. (Revision 15713)
- Ocl_Existing Null Check: Added null check in Ocl_Existing. After 10 issues with BusinessDeleteWarnings, users are now prompted with "Do you want us to continue to warn you?". (Revision 15728)
- Debugger Operator List Cleanup: Removed triggers and trigger queries from the debugger list of operators. (Revision 15727)
Internal Updates
- MDRIVENZEROSERVERSIDE Condition Definition: Updated MDRIVENZEROSERVERSIDE condition definition. (Revision 15739)
- Optimize ViewModel Checks: Refined optimization when checking ActionsThatShowsThis viewmodel to include root expressions due to potential changes in root type or requirements. Renamed expression Score to Cost for better clarity. (Revision 15706)
- DuckType Error Check: Fixed DuckType error check for Association classes. (Revision 15702)
- DuckType Column Name Check: Fixed issue where DuckType column name check did not produce errors for derived targets that couldn't be assigned. (Revision 15701)
- Convert.ChangeType Fix: Addressed Convert.ChangeType failure from string to Guid by implementing a safer value conversion method. (Revision 15700)
- Support for File Conversions: Introduced support for LibraOffice PDF/DocX/XLSX conversions. (Revision 15697)
Miscellaneous
- General Fixes and Updates: Various minor fixes and updates. (Revisions 15742, 15740, 15714, 15696)
MDriven - May 2024
Designer
- Improved Data Download Support: We've implemented the OnInitiateUserDownloadOfData function to better support the SysDocBatch pattern, allowing for more efficient data downloads. (Revision 15693)
- Easier Access to Authentication Tokens: Developers can now easily access GetDecodedAccessAndRefreshTokenOnClient for Graph API Support, simplifying authentication workflows. (Revision 15685)
- Enhanced Expression Handling:
- The score calculation for expressions now differentiates between PSExpression and ocl expressions, providing more accurate results. (Revision 15672)
- We've improved the overall score calculation for Expressions and ViewModels. (Revision 15669)
- The ExpressionAnalyze function now calculates a score based on MDrivenServer statistics, offering better insights into expression performance. (Revision 15668)
- The OCL editor tree now displays MDrivenServer statistics per class and associationEnd, along with the cost of all included expressions when analyzing expressions. (Revision 15667)
- WPF Improvements:
- The subscription on DirtyList has been enhanced to ensure the Save button updates correctly in WPF applications. (Revision 15660)
- A null reference exception related to focusing a combobox and context menus has been fixed. (Revision 15660)
- Thumbnail Performance Optimization: ViewModels and Diagrams thumbnails are now rendered using PNG files stored in a dedicated cache directory (_CachedImages). This approach improves performance and memory usage, especially for large models. (Revision 15652)
- Model Editing Enhancements:
- We've implemented error detection for ReadOnly and Visible expressions used within mounted ViewModels. This prevents potential issues arising from differences in the top-level self context. (Revision 15647)
- The "Find in model" functionality now includes PlacingContainer Visible and Style expressions in its search. (Revision 15645)
- Action Window Improvements:
- Action windows have been consolidated into a single window with tab functionality, allowing users to easily switch between different actions. (Revision 15642)
- Action windows now include "Close only this" and "Re-sort" tabs for better organization. (Revision 15643)
- The header of the action window is now updated upon opening. (Revision 15643)
- Action Opt-Out Clarification: The user interface for action opt-out has been improved for better clarity. The opt-out button has been removed from view model actions as it is no longer applicable. (Revision 15622)
Additional Bug Fixes:
- Resolved various other bugs and implemented minor improvements throughout the application.
Turnkey
This release builds upon the previous improvements to SysDocBatch functionality introduced in v15693. Here's a summary of the key changes:
- Enhanced SysDocBatch Support:
- Clarification on the purpose of the SysDocBatch pattern for managing downloads and prints in batch. (Revision 15694, Revision 15690, Revision 15687)
- Emphasis on the new selfVM operators:
- SysDocBatchEnsured(ViewModelReferenceType vmref): Ensures a ViewModelReference is downloaded as part of a batch.
- SysDocBatchZip(ViewModelReferenceType vmref): Zips a ViewModelReference for download as part of a batch.
- Other Improvements:
- Graph API User and Group Support: Reminder that SysGraphAPI was extended to include functionality for users and groups. (Revision 15678)
- Resolved potential deadlock issue: Addressed a potential deadlock scenario introduced in Revision 15650 related to pruning the _ServerToClientQueue. (Revision 15650)
- Toolbar Enhancements:
- Fixed a toolbar issue where only the first ActionGroup was displayed. Now the toolbar shows all action groups, including always-show actions. (Revision 15626)
- Improved toolbar styling. (Revision 15633)
- Toolbar Enhancements:
- Advanced Table Height: Removed the previously introduced height calculation for advanced tables, allowing them to follow placing container rules or row-span min-height rules. (Revision 15670)
- Other Bug Fixes:
- Fixed a JavaScript error caused by a missing null check. (Revision 15639)
- Addressed various toolbar-related issues to improve user experience. (Revision 15640, Revision 15634)
- Resolved a bug with the advancedTable.directive that caused table height changes when adding rows. (Revision 15657)
Framework
Bug Fixes
- SysDocBatch Support: Introduced a new pattern (SysDocBatch) for managing downloads and prints in batch. This feature includes new selfVM operators:
- SysDocBatchEnsured(ViewModelReferenceType vmref): Ensures a ViewModelReference is downloaded as part of a batch.
- SysDocBatchZip(ViewModelReferenceType vmref): Zips a ViewModelReference for download as part of a batch. (Revision 15687)
- Improved Data Download: Implemented the OnInitiateUserDownloadOfData function to support the SysDocBatch pattern, enabling more efficient data downloads. (Revision 15692)
- Graph API Authentication Support: Provided easier access to GetDecodedAccessAndRefreshTokenOnClient for GraphAPISupport, simplifying authentication workflows for developers. (Revision 15685)
- Enhanced Expression Handling:
- The ColumnFieldConsistencyCheck function now compares database and model field types to identify potential inconsistencies. (Revision 15661, Revision 15662, Revision 15664)
- OCL editor tree displays MDrivenServer statistics per class and associationEnd, along with expression costs. (Revision 15666)
WPF Improvements:
- DataGrid Performance Optimization: Enabled Row+ColumnVirtualization for WPF DataGrids to enhance performance, especially for grids with many columns. (Revision 15654)
- DirtyList Subscription: Improved the subscription on DirtyList to ensure the Save button updates correctly. (Revision 15660)
- Null Reference Fix: Resolved a null reference exception related to focusing a combobox and context menus. (Revision 15660)
AngularJS Editing Fix:
- AngularJS edit controls: String formatting for databinding is now handled differently to avoid breaking the databind while preserving number formatting. (Revision 15681)
Other Bug Fixes:
- Resolved various bugs related to SoapCalls, including encoding headers and decompression. (Revision 15683, Revision 15684)
- Fixed issues with combobox selection, CSSGrid rendering, and error messages. (Revision 15674, Revision 15676, Revision 15679, Revision 15651)
- Addressed database snapshot functionality in MDrivenServerCore. (Revision 15661)
- Improved handling of mounted ViewModels and expressions. (Revision 15647)
- Numerous other bug fixes and improvements throughout the application.
Server
This release focuses on improving database schema management and data integrity. Here's a breakdown of the key changes:
- Enhanced Database Schema Validation:
- Introduced a new function in MDrivenServer/Admin/ColumnFieldConsistencyCheck. This function analyzes and compares database field types with their corresponding model types. This helps identify potential inconsistencies that could lead to "will not evolve" warnings. (Revision 15661)
- Improved null handling in AdminORMapping to provide a clearer check for null values. (Revision 15691)
- Database Snapshot Fix: Resolved an issue that prevented DatabaseSnapshot functionality from working correctly in MDrivenServerCore. (Revision 15661)
- Admin Database Self-Repair: The self-repair functionality on startup has been improved to better handle issues within the admin database. It can now:
- Detect XML errors within the admin database and suggest potential fixes.
- Automatically fix missing tables in the database, preventing errors during the database evolution process. (Revision 15655)
These improvements provide more robust database schema management and help ensure data consistency within your application.
This is not an exhaustive list of all changes included in this release. Please refer to the changelog for more details.
MDriven - April 2024
Designer
AutoDiagram:
- Improved filter functionality: "Filter associations" renamed to "Filter members" for better clarity. This filter now effectively filters all elements on the screen.
- Enhanced performance during rendering by addressing inefficiencies caused by drawing during measuring.
ViewModelEditor:
- Fixed an issue where the ViewModelEditor combo box name wouldn't update correctly when switching to "No-Category."
Error Checking Optimization:
- Implemented changes to significantly reduce the time taken for subsequent error checks in modlr. This optimization tracks locally changed elements, their potential effects, and only re-checks affected areas.
Code Generation:
- Checksum based codegen. This speeds up code generation by incorporating a checksum written to code checks.
- Enhanced CodeGenGoverningInfo to identify code generation diffs even in scenarios where code generation wasn't performed (by you or someone else).
CloudForm:
- Improved the "Changes" button functionality within CloudForm. The process now begins with a quick checksum check, followed by an optional view of the checksum diff, and lastly, the optional view of upcoming database changes.
Other:
- Fixed a deadlock issue in the Designer that occurred when error checking attempted to look up ViewModelNames for Class.ViewModels variables.
- Resolved a long-standing WPF bug that prevented dragging elements from the debugger to the application. Unnecessary parameters were removed to address this issue.
- Addressed a problem with a hardcoded backslash for Unix systems. The correct Path.DirectorySeparatorChar is now used.
Turnkey
SignalR:
- Fixed an issue related to incorrect stopping of SignalR Core.
- Implemented proper disconnect from SignalR upon page reload.
- Added a client-side service shutdown to prevent communication with the server during page reload, avoiding potential interference with redirects.
- Enhanced logging for SignalR events.
General Bug Fixes:
- Resolved two separate null reference problems.
- Improved logging helpers to ensure log files are available before logging attempts.
- Addressed a hardcoded backslash issue for Unix systems, using Path.DirectorySeparatorChar for correct path handling.
- Fixed a case-sensitivity problem within Turnkey paths for Linux.
- Corrected two instances where MapPathService.MapPath was using the wrong slash type (forward slash needed for platform compatibility).
- Adjusted advanced table inputs and navbar resizing.
- Implemented a fix for image fallback behavior. A null image cannot be used directly, but a valid link is required for proper fallback image loading.
- Improved navbar wrapping and styling for save bar buttons.
- Adjusted navbar height to accommodate wrappable menu items.
Turnkey UI:
- Turnkey Toolbar: Introduced initial work on the ActionRenderPositionEnum Toolbar feature. This feature aims to categorize actions in the Turnkey UI:
- Actions that navigate without data changes remain on the left side menu.
- Actions that modify data, navigate, or involve saving/canceling/editing will be placed in a new horizontal toolbar below the main menu.
- Adjusted CSS to ensure proper height calculation for the #viewmodelSection element.
- Removed complex logic for main menu overflow handling. This will be replaced with CSS-based solutions.
- Implemented a new method to prevent JavaScript execution during page reloads.
- Defined the StartUpView concept for Turnkey Core, introducing a special page displayed while the application warms up. More details available here: https://wiki.mdriven.net/index.php?title=StartupViewTemplate
- Moved the StartupViewTemplate_AppOverride.htm file to the views\turnkey\ directory for better organization.
Server
Logging:
- Updated logging helpers to ensure they wait for log files to appear before logging attempts. This improves the reliability of logging messages.
Server-Side Jobs:
- MdrivenServer now automatically applies SSJobs (SQL Server Jobs?) on Evolve. This eliminates the need for the "Update Server-Side Jobs" button, streamlining the deployment process.
Framework
ViewModelEditor:
- Introduced a significant change to how variables and validations are edited. They are now displayed in a tree structure for better organization and accessibility.
Turnkey App:
- Resolved an issue with the "Toolbar mode" functionality (work in progress). More details and documentation are available here: https://wiki.mdriven.net/Documentation:MDriven_Framework
- Fixed a problem within Turnkey, Modal DesignedButton with ExecuteFrameworkRuntimeActionRT.DoModalOk. The button's enable property now correctly reflects the enable expression of the designed action.
Checksum Enhancements:
- Addressed a code generation (Checksum) issue related to Statemachines, ensuring they are fully included in the process.
- Continued improvements to the Checksum functionality:
- Method Checksum calculations now exclude namespaces, improving accuracy.
- Checksums for Enum types are now consistently represented as "ENUM."
Other:
- Resolved a deadlock issue involving SysMDrivenMiscSettingsSingleton locks.
- Fixed a bug that prevented updating validations in WPF when data changed for multiple columns. Validations are now consolidated for better efficiency.
- Addressed a situation where SysAsyncTicket objects might have a null rootid value. This is now prevented by ensuring the referenced object gets a persistent ID.
- Improved image download functionality using GetVMImageUrl when the application resides in a subfolder.
- Enhanced error handling for ViewModelActions connected to Buttons. The server now searches for the action across all ViewModelClasses if not found in the initially provided one.
- Updated the MySQL driver to version 8.3.0 to address reported Linux issues.
- Defined the StartUpView constant.
MDriven - March 2024
Improved User Interface
- Enhanced selection behavior in the View Model Editor to function even when action errors are present.
- Introduced a "Hide on Disable" option for actions, allowing for actions to be completely hidden from end-user when so desired.
- Error messages during OCL execution now pinpoint the specific method causing the issue.
Multi-Select Functionality
- Implemented multi-select functionality in web UI tables, improving workflow efficiency.
- Improved Model Upload
- Resolved an issue where model uploads caused the application to become unresponsive. Uploads now run asynchronously.
Data Handling
- Introduced a new vCurrent_Root variable for simpler access to the root element from any location within the view model. This streamlines copying and pasting view models while maintaining functional expressions.
- Enhanced context sensitivity during OCL editing, providing more relevant suggestions based on the current context.
Database Consistency
- Introduced a new validateA0DbData function for the MDriven server to identify and potentially fix inconsistencies within the database.
- Debugger Improvements
- Resolved an issue where the debugger lost the implicit selfVM variable upon model reread.
Error Handling
- Improved error message clarity for type mismatches, providing more informative warnings.
- Enhanced error handling for OCL expressions with mismatched data types, now displaying red dots to indicate errors within the model.
User Interface
- Fixed a bug where left menu actions appeared as permanently selected or executable.
- Addressed a navigation issue within pop-ups where the root object wasn't passed correctly.
Reverse engineering databases
- Improved functionality for reverse engineering, particularly for Postgres databases.
- Addressed general improvements to the reverse engineering process.
Access groups
- Access Group Permissions
- Resolved access group permission issues related to global actions.
Improved Handling of Division by Zero
- Errors caused by division by zero are now handled more gracefully. Instead of crashing the application, the result will be set to the maximum decimal value.
Advanced Tables Feature
- Introduced a new "Advanced Tables" turnkey feature. This feature can be enabled globally or for specific tables via tag values.
- Enabling Advanced Tables provides functionalities like resizing columns, sorting data, and other advanced table manipulation capabilities.
Additional Notes
- NavigateURL Overload: A new overload has been introduced for the selfVM navigate URL function. This allows you to specify whether you want to open the URL in a new tab or the current tab.
- Read-Only Mode Information: Refer to other resources for detailed information on the read-only mode.
- Improved Server Stability: Mitigated server restarts caused by errors in server-side jobs using the SQL pass-through operator.
- Enhanced Cache Invalidation: Fixed a bug where mounting view models within other view models didn't trigger proper cache invalidation, potentially leading to outdated data.
- MDriven Visual Studio Plugin - Improved Performance: Resolved an issue where code generation within the Visual Studio plugin caused the UI to temporarily freeze, especially for large models.
- Limited Data Fetching in OCL Expressions: Introduced a new feature to limit data fetching within OCL expressions, actions, and persistent storage execution. This helps prevent accidental retrieval of massive amounts of data that could overwhelm the system.
Improved Performance
- Introduced a new setting named "SSServiceSideJobParallelism" for periodic actions. This allows you to configure the number of parallel workers used to execute these actions on the MDriven server. This functionality helps optimize performance by controlling the number of jobs running concurrently.
Improved User Interface
- Fixed a bug where left menu actions displayed incorrectly.
- Addressed an issue where global actions and access groups interacted poorly.
- Enhanced Error Handling
- Introduced improved error messages for report generation failures.
Additional Notes: The new "Merge Model" functionality for OpenAI integration requires downloading additional components from GitHub. Refer to the MDriven documentation for detailed instructions.