Skip to content

SQL LocalDB Wrapper v2.0.0

Compare
Choose a tag to compare
@martincostello martincostello released this 01 Oct 17:35
428a2fc

SqlLocalDb v2.0.0

NuGet

Version 2.0.0 of SQL LocalDB Wrapper is a major rewrite of version 1.x.x which is now .NET Core compatible as it now targets netstandard2.0. It is available on NuGet as MartinCostello.SqlLocalDb.

This version is a breaking change, with the name of the package, its namespaces, and many of its types, renamed and refactored. The main motivation for this is to move the types and package out of System.Data and make it explicit that the package is not an official Microsoft package, which System.* implies.

The design for version 2.0.0 is intended to make the library more friendly for extensibility as well as dependency injection, particularly for scenarios such as .NET Core applications. A number of static types have been removed and various methods that used to be interface methods are now extension methods.

First-class support for Entity Framework-related concepts (such as parsing) entity connection strings has been removed to mainly give focus to just functionality of the SQL Server LocalDB Instance API itself.

To migrate a project from using a 1.x.x version follow the migration guide: Migrating to MartinCostello.SqlLocalDb from System.Data.SqlLocalDb

Changes

  • The NuGet package name is now MartinCostello.SqlLocalDb.
  • Types are now in the MartinCostello.SqlLocalDb namespace.
  • Core classes and interfaces are now:
    • ISqlLocalDbApi
    • ISqlLocalDbInstanceInfo
    • ISqlLocalDbInstanceManager
    • ISqlLocalDbVersionInfo
    • SqlLocalDbApi
    • SqlLocalDbException
    • SqlLocalDbInstanceManager
    • SqlLocalDbOptions
    • TemporarySqlLocalDbInstance
  • Various methods on previous classes and interfaces are now extension methods.
  • Configuration is now via the SqlLocalDbOptions class for use with the SqlLocalDbApi class.
  • Uses .NET Standard logging abstractions for logging rather than TraceSource.
  • Now compiled using the .NET Core SDK.
  • Tests now use xunit instead of MSTest.

Added

Fixed/Improved

  • Improved behaviour when testing for the existence of LocalDB instances.
  • The SQL Server LocalDB Instance API can now be unloaded from the process.
  • Logging now uses structured logging and specific event IDs.
  • Several types now override ToString() to return object names.
  • Improved behaviour if used in an application on Linux or macOS.
  • Simplified build infrastructure using the .NET Core SDK.
  • Use various new C# 7.2 language features to simplify the code.
  • Uses Version.TryParse() internally.
  • Added assets for working on the project in Visual Studio Code.

Removed

  • Removed the following types:
    • ISqlLocalDbInstance
    • SqlLocalDbApi (static class)
  • Configuration no longer via System.Configuration and .config files.
  • Removed old "Blog" sample application.
  • Removed Coverity scan integration.