Skip to content

Migration Deployment and Rollout

Cheena Malhotra edited this page Sep 11, 2026 · 1 revision

Migration: deployment and rollout

Home / Migrate / Deployment

Deploy the restored/published application, not a replacement SqlClient DLL.

Review the deployment model

Environment Required review
.NET Framework Resolve package dependencies and application-specific binding redirects. For the aligned 7.0.2+ companions, account for assembly-version changes; rebuild rather than replacing DLLs in place.
Modern .NET on Windows Ensure publish output contains runtime assets for the application's architecture, including native SNI when used.
Linux/macOS and containers Use the supported managed networking path; provide globalization libraries, certificate trust, DNS, and authentication prerequisites in the actual image.
.NET Standard libraries Compile-time compatibility is not runtime implementation support. Verify the consuming application selects a supported runtime asset.
Single-file, trimming, or Native AOT Check support and known issues for the exact package/runtime/authentication path. Test the published output; managed networking alone does not establish support for the whole application.

Microsoft.Data.SqlClient.SNI serves .NET Framework; Microsoft.Data.SqlClient.SNI.runtime supplies Windows native assets for modern .NET. Native SNI versions are independent of the driver's package version.

The managed-networking switch on Windows applies to modern .NET, not .NET Framework. Treat a change of SNI implementation as a deliberate compatibility decision, not a universal native-load-error workaround.

If the runtime or OS changes too

Globalization-invariant mode is not supported. Configure the runtime and install the globalization libraries required by the selected OS/image.

For Kerberos, verify the realm, service principal, tickets, permissions, and host libraries. Do not switch to a different authentication system merely because an SSPI error occurred.

LocalDB and FILESTREAM require separate platform review. Distributed transactions and spatial CLR/native libraries have additional runtime/OS constraints: confirm the actual implementation and supported deployment rather than applying an "all .NET is unsupported" rule.

Cutover checklist

  • Run the published application on every target OS/architecture and authentication mode.
  • Compare data correctness, latency, throughput, allocations, pool pressure, timeouts, cancellation, and failover with the recorded baseline.
  • Include sync and async operations, large results, bulk copy, and transactions used by the application.
  • Confirm certificates, token acquisition, key stores, and configuration are present outside developer machines.
  • Roll out to a controlled subset; define acceptable signals and explicit rollback thresholds.
  • Keep the previous complete application artifact and compatible configuration. Roll back the application, not only the provider DLL.
  • Remove obsolete direct dependencies only after confirming remaining consumers; document any necessary SDS coexistence.

Complete when: the target artifact works in its real environment, behavior matches the accepted expectations, and rollout monitoring supports the cutover decision.

Next: Feature guides or Troubleshooting.

Sources: SNI packaging, support and globalization, 6.1 runtime-asset notes, 7.0.2 binding changes.

Clone this wiki locally