Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request refactors the OutSystems DataGridUtils .NET extension to improve thread safety, performance, and maintainability. The changes upgrade the target .NET Framework from 4.6.1 to 4.7.2 and update OutSystems platform dependencies to version 11.40.1.46624.
Changes:
- Replaced static
DictionarywithConcurrentDictionaryfor thread-safe reflection caching using atomicGetOrAddoperations - Refactored JSON serialization to use direct streaming instead of intermediate string concatenation, reducing memory allocations
- Improved date handling consistency by ensuring all dates are converted to UTC before formatting
- Enhanced resource safety by adding
finallyblocks for list iteration cleanup and properusingstatements for disposable resources
Reviewed changes
Copilot reviewed 8 out of 20 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| temp_ardoJSON.cs | Replaced Dictionary with ConcurrentDictionary for thread-safe field caching; improved list iteration safety with try-finally; simplified field name detection logic; added writeData method for streaming |
| ObtainMetadata.cs | Modified to pass null for simple field values in metadata to prevent data leakage; added writeMetadata method for streaming; improved resource management |
| DataGridUtils.cs | Refactored MssConvertData2JSON to use direct JSON streaming instead of string concatenation; added private ConvertDataToJSON helper method |
| DataGridUtils.csproj | Updated target framework from .NET 4.6.1 to 4.7.2 |
| AssemblyInfo.cs | Updated version from 11.14.0.33133 to 11.40.1.46624 |
| .gitignore | Added patterns to ignore build artifacts and Visual Studio files |
| .cursor/rules/project-context.mdc | Added project documentation for maintainers |
| Bin/.dll, Bin/.xml | Updated OutSystems platform dependency DLLs and documentation to version 11.40.1.46624 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
OS-pedrolourenco
previously approved these changes
Feb 20, 2026
gnbm
reviewed
Feb 22, 2026
3c79189
gnbm
reviewed
Feb 24, 2026
|
OS-pedrolourenco
approved these changes
Feb 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



This pull request makes several improvements and refactors to the OutSystems DataGridUtils .NET extension. The changes include refactoring the JSON serialization of the objects, enhancing thread safety for cached reflection data, updating the target .NET Framework, and improving documentation for maintainers.
What was happening
What was done
ConvertDataToJSONmethod inCssDataGridUtils, and updatedMssConvertData2JSONto directly write combined data and metadata JSON using new helper methods. This results in clearer separation of concerns and improved maintainability.writeDataandwriteMetadatamethods totemp_ardoJSONandObtainMetadatarespectively, allowing direct streaming of JSON data and metadata, reducing intermediate string allocations and improving performance.Dictionaryused for reflection field caching intemp_ardoJSONwith aConcurrentDictionary, ensuring thread safety in multi-threaded environments. Updated field/property caching logic to useGetOrAddfor atomic operations.nullas the value for simple fields in metadata, ensuring no accidental data leakage and clarifying the intent of metadata-only output.EndIterationis always called..cursor/rules/project-context.mdcto clarify directory layout, conventions, and dependencies for maintainers.Test Steps
Checklist