DubUrl.Extensions.DependencyInjection
0.4.14
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
<PackageReference Include="DubUrl.Extensions.DependencyInjection" Version="0.4.14" />
paket add DubUrl.Extensions.DependencyInjection --version 0.4.14
#r "nuget: DubUrl.Extensions.DependencyInjection, 0.4.14"
// 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
Continuous integration builds:
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 |
---|---|---|
mssql, ms, sqlserver, mssqlserver | Microsoft.Data.SqlClient | |
mysql, my | MySqlConnector | |
pg, pgx, pgsql, postgres, postgresql | Npgsql | |
db2 | IBM.Data.Db2 | |
maria, mariadb | MySqlConnector | |
oracle, or, ora | Oracle.ManagedDataAccess | |
duck, duckdb | DuckDB.NET.Data | |
fb, firebird | FirebirdSql.Data.FirebirdClient | |
sq, sqlite | Microsoft.Data.Sqlite | |
cr, cockroach, cockroachdb, crdb, cdb | Npgsql | |
sf, snowflake | Snowflake.Data | |
td, teradata, tera | Teradata.Client | |
tr, trino | NReco.PrestoAdo | |
quest, questdb | Npgsql | |
ts, timescale | Npgsql |
ODBC driver locators
The following databases and their associated schemes are supported out of the box:
Database | Aliases | Name Pattern |
---|---|---|
mssql, ms, sqlserver, mssqlserver | ^\bODBC Driver\s([0-9]{1,2}(?:.[0-9]{1,2}){0,2})\s\bfor SQL Server$ | |
mysql, my | ^\bMySQL ODBC\s([0-9]{1,2}(?:.[0-9]{1,2}){0,2})\s(ANSI|Unicode)\s\bDriver$ | |
pg, pgx, pgsql, postgres, postgresql | ^\bPostgreSQL\s(ANSI|Unicode)((x64))?$ | |
maria, mariadb | ^\bMariaDB ODBC\s([0-9]{1,2}(?:.[0-9]{1,2}){0,2})\s\bDriver$ | |
duck, duckdb | ^\bDuckDB\s\bDriver$ | |
drill | ^\bMapR Drill ODBC Driver$ | |
tr, trino | ^(Simba)\s\bTrino ODBC Driver$ | |
xls, xlsx, xlsb, xlsm | ^\bMicrosoft Excel Driver\s(*.xls, *.xlsx, *.xlsm, *.xlsb)$ | |
txt, csv, tsv | ^\bMicrosoft Access Text Driver\s(*.txt, *.csv)$ | |
quest, questdb | ^\bPostgreSQL\s(ANSI|Unicode)((x64))?$ | |
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 |
---|---|---|
mssql, ms, sqlserver, mssqlserver | ^\bMSOLEDBSQL$ | |
mysql, my | ^\bMySQL Provider$ | |
xls | ^\bMicrosoft.ACE.OLEDB.([0-9]{1,2}(?:.[0-9]{1,2}){0,2})$ | |
xlsx | ^\bMicrosoft.ACE.OLEDB.([0-9]{1,2}(?:.[0-9]{1,2}){0,2})$ | |
xlsm | ^\bMicrosoft.ACE.OLEDB.([0-9]{1,2}(?:.[0-9]{1,2}){0,2})$ | |
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 |
---|---|---|
pbidesktop, pbix, powerbidesktop | Microsoft.AnalysisServices.AdomdClient | |
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 | Versions 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. |
-
net6.0
- DubUrl (>= 0.4.14)
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection (>= 8.0.0)
- Microsoft.Extensions.Logging (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Options (>= 8.0.0)
-
net7.0
- DubUrl (>= 0.4.14)
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection (>= 8.0.0)
- Microsoft.Extensions.Logging (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Options (>= 8.0.0)
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 | 284 | 11/16/2023 | |
0.4.6 | 125 | 11/16/2023 | |
0.4.5 | 119 | 11/13/2023 | |
0.4.4 | 131 | 11/13/2023 | |
0.4.3 | 120 | 11/12/2023 | |
0.4.2 | 126 | 11/12/2023 | |
0.4.1 | 125 | 11/7/2023 | |
0.4.0 | 119 | 11/6/2023 | |
0.3.3 | 119 | 11/6/2023 | |
0.3.2 | 108 | 11/6/2023 | |
0.3.1 | 121 | 11/6/2023 | |
0.3.0 | 139 | 10/30/2023 | |
0.2.13 | 125 | 10/30/2023 | |
0.2.12 | 127 | 10/30/2023 | |
0.2.11 | 123 | 10/30/2023 | |
0.2.10 | 128 | 10/23/2023 | |
0.2.9 | 133 | 10/23/2023 | |
0.2.8 | 138 | 10/16/2023 | |
0.2.7 | 142 | 10/16/2023 | |
0.2.6 | 154 | 10/9/2023 | |
0.2.5 | 129 | 10/9/2023 | |
0.2.4 | 144 | 10/9/2023 | |
0.2.3 | 144 | 10/2/2023 | |
0.2.0 | 187 | 9/30/2023 | |
0.1.233 | 191 | 9/21/2023 | |
0.1.231 | 161 | 9/19/2023 | |
0.1.230 | 131 | 9/18/2023 | |
0.1.228 | 123 | 9/18/2023 | |
0.1.227 | 166 | 9/15/2023 | |
0.1.226 | 138 | 9/14/2023 | |
0.1.225 | 146 | 9/12/2023 | |
0.1.224 | 156 | 9/10/2023 | |
0.1.223 | 146 | 9/10/2023 | |
0.1.222 | 145 | 9/9/2023 | |
0.1.219 | 151 | 9/8/2023 | |
0.1.218 | 149 | 9/7/2023 | |
0.1.217 | 150 | 9/6/2023 | |
0.1.216 | 171 | 8/28/2023 | |
0.1.215 | 158 | 8/28/2023 | |
0.1.214 | 152 | 8/23/2023 | |
0.1.213 | 145 | 8/23/2023 | |
0.1.212 | 148 | 8/15/2023 | |
0.1.211 | 127 | 8/14/2023 | |
0.1.210 | 134 | 8/12/2023 | |
0.1.209 | 189 | 8/8/2023 | |
0.1.208 | 162 | 8/1/2023 | |
0.1.207 | 166 | 7/31/2023 | |
0.1.206 | 143 | 7/31/2023 | |
0.1.205 | 146 | 7/31/2023 | |
0.1.204 | 153 | 7/30/2023 | |
0.1.203 | 150 | 7/30/2023 | |
0.1.202 | 142 | 7/30/2023 | |
0.1.201 | 153 | 7/29/2023 | |
0.1.200 | 149 | 7/11/2023 | |
0.1.199 | 141 | 7/3/2023 | |
0.1.198 | 138 | 7/1/2023 | |
0.1.197 | 138 | 6/30/2023 | |
0.1.196 | 215 | 6/29/2023 | |
0.1.195 | 139 | 6/26/2023 | |
0.1.194 | 192 | 6/23/2023 | |
0.1.193 | 139 | 6/23/2023 | |
0.1.192 | 132 | 6/21/2023 | |
0.1.191 | 142 | 6/19/2023 | |
0.1.190 | 137 | 6/18/2023 | |
0.1.188 | 141 | 6/18/2023 | |
0.1.187 | 140 | 6/17/2023 | |
0.1.186 | 149 | 6/16/2023 | |
0.1.184 | 162 | 6/11/2023 | |
0.1.183 | 141 | 6/8/2023 | |
0.1.182 | 140 | 5/31/2023 | |
0.1.180 | 139 | 5/30/2023 | |
0.1.179 | 136 | 5/30/2023 | |
0.1.178 | 141 | 5/29/2023 | |
0.1.177 | 141 | 5/28/2023 | |
0.1.176 | 139 | 5/27/2023 | |
0.1.175 | 137 | 5/23/2023 | |
0.1.174 | 141 | 5/22/2023 | |
0.1.173 | 144 | 5/21/2023 | |
0.1.172 | 146 | 5/20/2023 | |
0.1.171 | 142 | 5/20/2023 | |
0.1.170 | 137 | 5/15/2023 | |
0.1.169 | 150 | 5/14/2023 | |
0.1.168 | 146 | 5/13/2023 | |
0.1.167 | 147 | 5/11/2023 | |
0.1.166 | 142 | 5/11/2023 | |
0.1.165 | 147 | 5/3/2023 | |
0.1.164 | 176 | 4/27/2023 | |
0.1.163 | 164 | 4/22/2023 | |
0.1.162 | 165 | 4/18/2023 | |
0.1.161 | 178 | 4/17/2023 | |
0.1.160 | 192 | 4/17/2023 | |
0.1.159 | 174 | 4/17/2023 | |
0.1.158 | 179 | 4/17/2023 | |
0.1.157 | 158 | 4/13/2023 | |
0.1.156 | 185 | 4/10/2023 | |
0.1.155 | 197 | 4/10/2023 | |
0.1.154 | 186 | 4/10/2023 | |
0.1.153 | 188 | 4/10/2023 | |
0.1.152 | 199 | 4/4/2023 | |
0.1.151 | 191 | 4/3/2023 | |
0.1.150 | 207 | 3/28/2023 | |
0.1.149 | 216 | 3/20/2023 | |
0.1.148 | 215 | 3/14/2023 | |
0.1.147 | 218 | 3/6/2023 | |
0.1.146 | 226 | 3/5/2023 | |
0.1.145 | 221 | 3/5/2023 | |
0.1.144 | 286 | 3/1/2023 | |
0.1.143 | 274 | 1/31/2023 | |
0.1.142 | 279 | 1/31/2023 | |
0.1.141 | 277 | 1/25/2023 | |
0.1.140 | 276 | 1/23/2023 | |
0.1.139 | 288 | 1/20/2023 | |
0.1.138 | 301 | 1/3/2023 | |
0.1.136 | 288 | 1/3/2023 | |
0.1.133 | 302 | 12/26/2022 | |
0.1.132 | 292 | 12/20/2022 | |
0.1.131 | 296 | 12/20/2022 | |
0.1.130 | 306 | 12/14/2022 | |
0.1.129 | 318 | 11/28/2022 | |
0.1.128 | 319 | 11/20/2022 | |
0.1.127 | 320 | 11/20/2022 | |
0.1.126 | 326 | 11/20/2022 | |
0.1.125 | 334 | 11/19/2022 | |
0.1.124 | 332 | 11/19/2022 | |
0.1.123 | 345 | 11/19/2022 | |
0.1.122 | 322 | 11/19/2022 | |
0.1.121 | 321 | 11/19/2022 | |
0.1.120 | 327 | 11/17/2022 | |
0.1.119 | 332 | 11/17/2022 | |
0.1.118 | 326 | 11/17/2022 | |
0.1.115 | 326 | 11/9/2022 | |
0.1.114 | 348 | 11/7/2022 | |
0.1.113 | 352 | 11/2/2022 | |
0.1.112 | 350 | 11/2/2022 | |
0.1.111 | 346 | 11/2/2022 | |
0.1.110 | 338 | 11/1/2022 | |
0.1.109 | 348 | 11/1/2022 | |
0.1.108 | 361 | 10/28/2022 | |
0.1.107 | 375 | 10/28/2022 | |
0.1.106 | 360 | 10/28/2022 | |
0.1.103 | 399 | 10/22/2022 | |
0.1.101 | 395 | 10/17/2022 | |
0.1.100 | 428 | 10/17/2022 | |
0.1.99 | 391 | 10/17/2022 | |
0.1.98 | 386 | 10/17/2022 | |
0.1.97 | 400 | 10/13/2022 | |
0.1.96 | 384 | 10/3/2022 | |
0.1.94 | 411 | 9/26/2022 | |
0.1.93 | 404 | 9/26/2022 | |
0.1.92 | 408 | 9/26/2022 | |
0.1.91 | 430 | 9/24/2022 | |
0.1.90 | 427 | 9/24/2022 | |
0.1.89 | 429 | 9/24/2022 | |
0.1.88 | 401 | 9/21/2022 | |
0.1.87 | 403 | 9/20/2022 | |
0.1.86 | 407 | 9/20/2022 | |
0.1.84 | 434 | 9/15/2022 | |
0.1.83 | 426 | 9/15/2022 | |
0.1.82 | 395 | 9/11/2022 | |
0.1.81 | 451 | 9/10/2022 | |
0.1.80 | 422 | 9/10/2022 | |
0.1.79 | 417 | 9/10/2022 | |
0.1.78 | 444 | 9/10/2022 |