Major feature expansion and modernization, including new CRM type support, bug fixes, CI/CD migration, and documentation overhaul#21
Merged
imranakram merged 11 commits intomasterfrom Mar 11, 2026
Conversation
Project renamed to Xrm.Json.Serialization with updated namespaces, assembly info, and NuGet metadata. Upgraded target framework to .NET 4.8 and refreshed all NuGet dependencies, including Microsoft.CrmSdk.CoreAssemblies, Newtonsoft.Json, and xUnit. README and nuspec improved for clarity and accuracy. No changes to serialization logic or test functionality.
Major breaking changes: namespace changed to Xrm.Json.Serialization, removed Innofactor branding, updated assembly metadata, and moved projects to root. Upgraded to .NET 4.8, updated Newtonsoft.Json, xUnit, and System.Text.Json. Added changelog, upgrade guide, and restructure script. No changes to serialization logic; all tests and converters updated for new structure.
- Updated solution and project files to use "Xrm.Json.Serialization" naming and removed legacy "Innofactor" references. - Added Xrm.Json.Serialization.nuspec and icon.png for NuGet packaging. - Updated .csproj files: set processorArchitecture=MSIL, removed redundant <Private> tags, added missing .NET references, and improved NuGet error messages. - Upgraded xunit.analyzers to v1.27.0 and included fixes analyzer. - Removed obsolete fix-structure.ps1 script. - Overall, improved maintainability and aligned with modern .NET/NuGet practices.
Significantly enhance README with badges, feature list, supported types table, detailed usage examples, and new sections for format, requirements, use cases, contributing, and changelog. Add NuGet tags and initial release notes to nuspec for improved discoverability.
Refactored BasicsConverter to use JsonWriter.WriteValue for string serialization, removing custom CodeDomProvider logic. Added and corrected unit tests to verify proper escaping of quotes, backslashes, newlines, and tabs in serialized strings.
- Add AliasedValueConverter for FetchXML linked entity support - Add OptionSetValueCollection and BooleanManagedProperty converters - Add EntitySerializer helper for easy serialization/deserialization - Change target framework to .NET 4.6.2 for plugin compatibility - Update XrmContractResolver to register new converters - Expand README with plugin usage, deployment, and new formats - Update NuGet packaging and dependencies for net462 - Add 27 new unit tests for new converters and scenarios - Fix string escaping issues in serialization
- Switched from AppVeyor to GitHub Actions for CI/CD, with build, test, and NuGet publish workflows - Adopted CalVer versioning (1.2026.3.0) and updated .nuspec, README, and CHANGELOG - Added AliasedValue, OptionSetValueCollection, BooleanManagedProperty converters, and EntitySerializer helper - Fixed string escaping bug (#20) and reverted target framework to .NET 4.6.2 - Improved documentation, added usage examples, and updated solution structure and metadata
Updated the changelog to adopt Calendar Versioning (CalVer) with the format Major.Year.Month.Patch, replacing previous Semantic Versioning references. Added a section explaining CalVer with examples. Updated version entries and the version comparison table to use the new scheme, and clarified the 2026-03-11 release notes to mention bug #20.
Updated build-and-test.yml and publish-nuget.yml to use a PowerShell script that locates vstest.console.exe for VS2022 or VS2019, and falls back to the xunit console runner if neither is found. This enhances CI reliability by ensuring tests run regardless of available test runners.
Added the xunit.runner.console package (version 2.9.3) to packages.config as a development dependency for .NET Framework 4.6.2. This enables running xUnit tests via the command line.
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.
PR Classification
Major feature expansion and modernization, including new CRM type support, bug fixes, CI/CD migration, and documentation overhaul.
PR Summary
This PR modernizes the Xrm.Json.Serialization library with new converters, improved string handling, expanded test coverage, and updated infrastructure for Dynamics 365/CRM/Dataverse development.