Skip to content

Feature/online data#310

Merged
mkholt merged 5 commits intomasterfrom
feature/online-data
Feb 13, 2026
Merged

Feature/online data#310
mkholt merged 5 commits intomasterfrom
feature/online-data

Conversation

@mkholt
Copy link
Member

@mkholt mkholt commented Feb 13, 2026

This pull request refactors the way the codebase interacts with online data services, moving away from the legacy OrganizationServiceProxy approach to a new IOnlineDataService abstraction. 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:

  • Replaced all usages of OrganizationServiceProxy with the new IOnlineDataService interface throughout Core.cs and XrmDb.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]
  • Removed the legacy OrganizationHelper class and all related proxy-building code, consolidating online service creation in BuildOnlineDataService with conditional compilation for Dataverse support. [1] [2] [3]
  • Updated the XrmDb class and related methods to use IOnlineDataService for online data retrieval, including pre-filling and entity reference resolution. [1] [2] [3] [4]

Script and tooling improvements:

  • Added new PowerShell scripts Pack-Local.ps1 and Set-VersionFromChangelog.ps1 for local NuGet packaging and version management, and updated the solution file to include them. [1] [2]
  • Enhanced Pack-Local.ps1 to accept an output directory parameter for more flexible packaging.

Configuration updates:

  • Expanded the .claude/settings.local.json to allow Bash find commands, improving local script compatibility.

These changes collectively modernize the codebase's approach to online data services, streamline local development workflows, and improve maintainability.

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.
@mkholt mkholt merged commit cbf7b1a into master Feb 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant