DubUrl.Extensions.DependencyInjection 0.4.14

Suggested Alternatives

DubUrl.Extensions

Additional Details

The scope of the legacy package `DubUrl.Extensions.DependencyInjection` is now included in the package `DubUrl.Extensions`

dotnet add package DubUrl.Extensions.DependencyInjection --version 0.4.14                
NuGet\Install-Package DubUrl.Extensions.DependencyInjection -Version 0.4.14                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DubUrl.Extensions.DependencyInjection" Version="0.4.14" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DubUrl.Extensions.DependencyInjection --version 0.4.14                
#r "nuget: DubUrl.Extensions.DependencyInjection, 0.4.14"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install DubUrl.Extensions.DependencyInjection as a Cake Addin
#addin nuget:?package=DubUrl.Extensions.DependencyInjection&version=0.4.14

// Install DubUrl.Extensions.DependencyInjection as a Cake Tool
#tool nuget:?package=DubUrl.Extensions.DependencyInjection&version=0.4.14                

DubUrl

DubUrl provides a standard, URL style mechanism for parsing database connection strings and opening DbConnections for .NET. With DubUrl, you can parse and open URLs for popular databases such as Microsoft SQL Server, PostgreSQL, MySQL, SQLite3, Oracle Database and most of the other SQL databases. This project is inspired from the package dburl available in the GoLang ecosystem and is trying to match the aliases for portocols.

About | Overview | Quickstart | Examples | Schemes | Installing | Using

About

Social media: website twitter badge

Releases: nuget licence badge

Dev. activity: GitHub last commit Still maintained GitHub commit activity

Continuous integration builds: Build status Tests CodeFactor codecov FOSSA Status

Status: stars badge Bugs badge Top language

Mappers for ADO.Net Provider implemented badge Mappers for ODBC drivers implemented badge Mappers for OLE DB providers implemented badge Mappers for ADOMD.NET providers implemented badge

Upcoming features badge Upcoming databases badge Upcoming ADO.Net badge Upcoming ODBC badge

Database Connection URL Overview

Supported database connection URLs are of the form:

driver:alias://user:pass@host/dbname?opt1=a&opt2=b

Where:

Component Description
alias database type (see below)
driver driver/provider name (only for odbc/oleodbc)
user username
pass password
host host
dbname<sup>*</sup> database, instance, or service name/ID to connect to
?opt1=... additional database driver options (see respective SQL driver for available options)

<i><sup><b>*</b></sup> for Microsoft SQL Server, /dbname can be /instance/dbname, where /instance is optional. For Oracle Database, /dbname is of the form /service/dbname where /service is the service name or SID, and /dbname is optional. Please see below for examples.</i>

Quickstart

Database connection URLs in the above format can be parsed to a standard connection string with the [Parse] as such:

string connectionUrl = "mssql://{server}/{database_name}";
string connectionString = new ConnectionUrl(connectionUrl).Parse();

Additionally, a simple helper, [Open], is provided that will parse, open, and return a standard DbConnection.

string connectionUrl = "mssql://{server}/{database_name}";
IDbConnection connection = new ConnectionUrl(connectionUrl).Open();

If you don't want to open the connection but only return it and manage its state by yourself, use the function [Connect]

string connectionUrl = "mssql://{server}/{database_name}";
IDbConnection connection = new ConnectionUrl(connectionUrl).Connect();

Example URLs

The following are example database connection URLs that can be handled by [Parse], [Connect] and [Open]:

mssql://user:pass@remote-host.com/instance/dbname?keepAlive=10
oledb+mssql://user:pass@localhost/dbname

postgres://user:pass@localhost/dbname
odbc+postgres://user:pass@localhost:port/dbname?option1=

mysql://user:pass@localhost/dbname
oracle://user:pass@somehost.com/sid
db2://user:pass@localhost/dbname

Protocol Schemes and Aliases

ADO.Net data providers

The following databases and their associated schemes are supported out of the box:

Database Aliases Provider Invariant Name
Microsoft SQL Server mssql, ms, sqlserver, mssqlserver Microsoft.Data.SqlClient
MySQL mysql, my MySqlConnector
PostgreSQL pg, pgx, pgsql, postgres, postgresql Npgsql
IBM DB2 db2 IBM.Data.Db2
MariaDB maria, mariadb MySqlConnector
Oracle Database oracle, or, ora Oracle.ManagedDataAccess
DuckDB duck, duckdb DuckDB.NET.Data
Firebird SQL fb, firebird FirebirdSql.Data.FirebirdClient
SQLite3 sq, sqlite Microsoft.Data.Sqlite
CockRoachDB cr, cockroach, cockroachdb, crdb, cdb Npgsql
Snowflake sf, snowflake Snowflake.Data
Teradata td, teradata, tera Teradata.Client
Trino tr, trino NReco.PrestoAdo
QuestDb quest, questdb Npgsql
Timescale ts, timescale Npgsql

ODBC driver locators

The following databases and their associated schemes are supported out of the box:

Database Aliases Name Pattern
Microsoft SQL Server mssql, ms, sqlserver, mssqlserver ^\bODBC Driver\s([0-9]{1,2}(?:.[0-9]{1,2}){0,2})\s\bfor SQL Server$
MySQL mysql, my ^\bMySQL ODBC\s([0-9]{1,2}(?:.[0-9]{1,2}){0,2})\s(ANSI|Unicode)\s\bDriver$
PostgreSQL pg, pgx, pgsql, postgres, postgresql ^\bPostgreSQL\s(ANSI|Unicode)((x64))?$
MariaDB maria, mariadb ^\bMariaDB ODBC\s([0-9]{1,2}(?:.[0-9]{1,2}){0,2})\s\bDriver$
DuckDB duck, duckdb ^\bDuckDB\s\bDriver$
Apache Drill drill ^\bMapR Drill ODBC Driver$
Trino tr, trino ^(Simba)\s\bTrino ODBC Driver$
Microsoft Excel xls, xlsx, xlsb, xlsm ^\bMicrosoft Excel Driver\s(*.xls, *.xlsx, *.xlsm, *.xlsb)$
Text files txt, csv, tsv ^\bMicrosoft Access Text Driver\s(*.txt, *.csv)$
QuestDb quest, questdb ^\bPostgreSQL\s(ANSI|Unicode)((x64))?$
Timescale ts, timescale ^\bPostgreSQL\s(ANSI|Unicode)((x64))?$

Extension for OLEDB provider locators

The following databases and their associated schemes are supported through the OLE DB data provider extension:

Database Aliases Name Pattern
Microsoft SQL Server mssql, ms, sqlserver, mssqlserver ^\bMSOLEDBSQL$
MySQL mysql, my ^\bMySQL Provider$
Microsoft Excel xls ^\bMicrosoft.ACE.OLEDB.([0-9]{1,2}(?:.[0-9]{1,2}){0,2})$
Microsoft Excel xlsx ^\bMicrosoft.ACE.OLEDB.([0-9]{1,2}(?:.[0-9]{1,2}){0,2})$
Microsoft Excel xlsm ^\bMicrosoft.ACE.OLEDB.([0-9]{1,2}(?:.[0-9]{1,2}){0,2})$
Microsoft Excel xlsb ^\bMicrosoft.ACE.OLEDB.([0-9]{1,2}(?:.[0-9]{1,2}){0,2})$

Extension for ADOMD.NET data provider

The following databases and their associated schemes are supported through the ADOMD.NET data provider extension:

Database Aliases Provider Invariant Name
Power BI Desktop pbidesktop, pbix, powerbidesktop Microsoft.AnalysisServices.AdomdClient
Power BI Premium powerbi, pbi, pbiazure, pbipremium, powerbipremium Microsoft.AnalysisServices.AdomdClient

Installing

Install in the usual .NET fashion:

Install-Package DubUrl

To install the extension for OLEDB provider locators

Install-Package DubUrl.OleDb

To install the extension for ADOMD.NET data provider

Install-Package DubUrl.Adomd

Using

Check the first steps guide on the website.

Please note that DubUrl does not install actual drivers, and only provides a standard way to [Parse] respective database connection URLs then [Connect] or [Open] connections.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.4.14 298 11/16/2023 0.4.14 is deprecated because it is no longer maintained.
0.4.6 134 11/16/2023
0.4.5 128 11/13/2023
0.4.4 140 11/13/2023
0.4.3 131 11/12/2023
0.4.2 135 11/12/2023
0.4.1 134 11/7/2023
0.4.0 125 11/6/2023
0.3.3 126 11/6/2023
0.3.2 114 11/6/2023
0.3.1 128 11/6/2023
0.3.0 145 10/30/2023
0.2.13 132 10/30/2023
0.2.12 136 10/30/2023
0.2.11 131 10/30/2023
0.2.10 135 10/23/2023
0.2.9 139 10/23/2023
0.2.8 145 10/16/2023
0.2.7 149 10/16/2023
0.2.6 161 10/9/2023
0.2.5 137 10/9/2023
0.2.4 150 10/9/2023
0.2.3 150 10/2/2023
0.2.0 196 9/30/2023
0.1.233 198 9/21/2023
0.1.231 169 9/19/2023
0.1.230 138 9/18/2023
0.1.228 130 9/18/2023
0.1.227 173 9/15/2023
0.1.226 144 9/14/2023
0.1.225 152 9/12/2023
0.1.224 162 9/10/2023
0.1.223 152 9/10/2023
0.1.222 151 9/9/2023
0.1.219 159 9/8/2023
0.1.218 156 9/7/2023
0.1.217 157 9/6/2023
0.1.216 178 8/28/2023
0.1.215 165 8/28/2023
0.1.214 159 8/23/2023
0.1.213 157 8/23/2023
0.1.212 155 8/15/2023
0.1.211 134 8/14/2023
0.1.210 141 8/12/2023
0.1.209 199 8/8/2023
0.1.208 169 8/1/2023
0.1.207 173 7/31/2023
0.1.206 150 7/31/2023
0.1.205 153 7/31/2023
0.1.204 160 7/30/2023
0.1.203 159 7/30/2023
0.1.202 152 7/30/2023
0.1.201 165 7/29/2023
0.1.200 158 7/11/2023
0.1.199 150 7/3/2023
0.1.198 147 7/1/2023
0.1.197 147 6/30/2023
0.1.196 224 6/29/2023
0.1.195 148 6/26/2023
0.1.194 203 6/23/2023
0.1.193 150 6/23/2023
0.1.192 139 6/21/2023
0.1.191 151 6/19/2023
0.1.190 152 6/18/2023
0.1.188 150 6/18/2023
0.1.187 149 6/17/2023
0.1.186 158 6/16/2023
0.1.184 173 6/11/2023
0.1.183 150 6/8/2023
0.1.182 148 5/31/2023
0.1.180 152 5/30/2023
0.1.179 145 5/30/2023
0.1.178 150 5/29/2023
0.1.177 150 5/28/2023
0.1.176 150 5/27/2023
0.1.175 148 5/23/2023
0.1.174 148 5/22/2023
0.1.173 154 5/21/2023
0.1.172 155 5/20/2023
0.1.171 151 5/20/2023
0.1.170 149 5/15/2023
0.1.169 159 5/14/2023
0.1.168 155 5/13/2023
0.1.167 158 5/11/2023
0.1.166 149 5/11/2023
0.1.165 156 5/3/2023
0.1.164 185 4/27/2023
0.1.163 174 4/22/2023
0.1.162 174 4/18/2023
0.1.161 188 4/17/2023
0.1.160 201 4/17/2023
0.1.159 181 4/17/2023
0.1.158 190 4/17/2023
0.1.157 169 4/13/2023
0.1.156 193 4/10/2023
0.1.155 204 4/10/2023
0.1.154 195 4/10/2023
0.1.153 197 4/10/2023
0.1.152 208 4/4/2023
0.1.151 204 4/3/2023
0.1.150 215 3/28/2023
0.1.149 224 3/20/2023
0.1.148 221 3/14/2023
0.1.147 224 3/6/2023
0.1.146 234 3/5/2023
0.1.145 229 3/5/2023
0.1.144 295 3/1/2023
0.1.143 283 1/31/2023
0.1.142 288 1/31/2023
0.1.141 289 1/25/2023
0.1.140 283 1/23/2023
0.1.139 295 1/20/2023
0.1.138 310 1/3/2023
0.1.136 295 1/3/2023
0.1.133 309 12/26/2022
0.1.132 299 12/20/2022
0.1.131 303 12/20/2022
0.1.130 313 12/14/2022
0.1.129 328 11/28/2022
0.1.128 328 11/20/2022
0.1.127 329 11/20/2022
0.1.126 335 11/20/2022
0.1.125 343 11/19/2022
0.1.124 341 11/19/2022
0.1.123 354 11/19/2022
0.1.122 331 11/19/2022
0.1.121 330 11/19/2022
0.1.120 336 11/17/2022
0.1.119 341 11/17/2022
0.1.118 335 11/17/2022
0.1.115 337 11/9/2022
0.1.114 357 11/7/2022
0.1.113 361 11/2/2022
0.1.112 358 11/2/2022
0.1.111 355 11/2/2022
0.1.110 347 11/1/2022
0.1.109 357 11/1/2022
0.1.108 370 10/28/2022
0.1.107 384 10/28/2022
0.1.106 369 10/28/2022
0.1.103 408 10/22/2022
0.1.101 404 10/17/2022
0.1.100 437 10/17/2022
0.1.99 400 10/17/2022
0.1.98 395 10/17/2022
0.1.97 409 10/13/2022
0.1.96 398 10/3/2022
0.1.94 420 9/26/2022
0.1.93 414 9/26/2022
0.1.92 417 9/26/2022
0.1.91 438 9/24/2022
0.1.90 435 9/24/2022
0.1.89 437 9/24/2022
0.1.88 409 9/21/2022
0.1.87 415 9/20/2022
0.1.86 416 9/20/2022
0.1.84 443 9/15/2022
0.1.83 434 9/15/2022
0.1.82 403 9/11/2022
0.1.81 459 9/10/2022
0.1.80 432 9/10/2022
0.1.79 426 9/10/2022
0.1.78 454 9/10/2022