Merged
Conversation
Major architectural overhaul to enable online Dataverse data fetching via an out-of-process proxy. Introduces new projects for proxy server and IPC contracts, implements named pipe communication, and refactors core logic to use a new IOnlineDataService abstraction. Removes legacy direct connection code, adds support for parallel test execution, and packages the proxy with NuGet for auto-discovery.
Removed all out-of-process DataverseProxy infrastructure, including server, client, contracts, and related tests. Online data fetching now uses direct connection via DataverseConnection and ServiceClient, with no proxy process or named pipe communication. Cleaned up all proxy-specific code, settings, and abstractions. Updated project dependencies and documentation accordingly.
Refactored codebase to always include IOnlineDataService support by removing most #if DATAVERSE_SERVICE_CLIENT directives. Constructors and methods now accept IOnlineDataService parameters, defaulting to null when not provided. Online data features are now guarded by runtime checks instead of compile-time flags. Updated XrmMockup365.GetInstance and StaticMetadataCache usage accordingly. This simplifies maintenance and enables more flexible runtime configuration.
…de Dataverse Service Client package
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 refactors the way the codebase interacts with online data services, moving away from the legacy
OrganizationServiceProxyapproach to a newIOnlineDataServiceabstraction. This change modernizes the code, improves testability, and prepares the project for better compatibility with Dataverse Service Client. Additionally, it introduces new scripts for local packaging and versioning, and slightly updates the local settings.Refactoring and modernization of online data access:
OrganizationServiceProxywith the newIOnlineDataServiceinterface throughoutCore.csandXrmDb.cs, updating constructors, fields, and method calls accordingly. This also includes updating the logic for retrieving and pre-filling data from an online service. [1] [2] [3] [4]OrganizationHelperclass and all related proxy-building code, consolidating online service creation inBuildOnlineDataServicewith conditional compilation for Dataverse support. [1] [2] [3]XrmDbclass and related methods to useIOnlineDataServicefor online data retrieval, including pre-filling and entity reference resolution. [1] [2] [3] [4]Script and tooling improvements:
Pack-Local.ps1andSet-VersionFromChangelog.ps1for local NuGet packaging and version management, and updated the solution file to include them. [1] [2]Pack-Local.ps1to accept an output directory parameter for more flexible packaging.Configuration updates:
.claude/settings.local.jsonto allow Bashfindcommands, improving local script compatibility.These changes collectively modernize the codebase's approach to online data services, streamline local development workflows, and improve maintainability.