DubUrl.Extensions.DependencyInjection 0.4.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package DubUrl.Extensions.DependencyInjection --version 0.4.2
                    
NuGet\Install-Package DubUrl.Extensions.DependencyInjection -Version 0.4.2
                    
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.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DubUrl.Extensions.DependencyInjection" Version="0.4.2" />
                    
Directory.Packages.props
<PackageReference Include="DubUrl.Extensions.DependencyInjection" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DubUrl.Extensions.DependencyInjection --version 0.4.2
                    
#r "nuget: DubUrl.Extensions.DependencyInjection, 0.4.2"
                    
#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.
#:package DubUrl.Extensions.DependencyInjection@0.4.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DubUrl.Extensions.DependencyInjection&version=0.4.2
                    
Install as a Cake Addin
#tool nuget:?package=DubUrl.Extensions.DependencyInjection&version=0.4.2
                    
Install as a Cake Tool

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.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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 382 11/16/2023 0.4.14 is deprecated because it is no longer maintained.
0.4.6 184 11/16/2023
0.4.5 175 11/13/2023
0.4.4 205 11/13/2023
0.4.3 177 11/12/2023
0.4.2 181 11/12/2023
0.4.1 194 11/7/2023
0.4.0 199 11/6/2023
0.3.3 184 11/6/2023
0.3.2 181 11/6/2023
0.3.1 183 11/6/2023
0.3.0 198 10/30/2023
0.2.13 184 10/30/2023
0.2.12 193 10/30/2023
0.2.11 199 10/30/2023
0.2.10 199 10/23/2023
0.2.9 206 10/23/2023
0.2.8 199 10/16/2023
0.2.7 211 10/16/2023
0.2.6 208 10/9/2023
0.2.5 198 10/9/2023
0.2.4 216 10/9/2023
0.2.3 216 10/2/2023
0.2.0 229 9/30/2023
0.1.233 265 9/21/2023
0.1.231 228 9/19/2023
0.1.230 193 9/18/2023
0.1.228 200 9/18/2023
0.1.227 245 9/15/2023
0.1.226 195 9/14/2023
0.1.225 214 9/12/2023
0.1.224 243 9/10/2023
0.1.223 235 9/10/2023
0.1.222 213 9/9/2023
0.1.219 245 9/8/2023
0.1.218 237 9/7/2023
0.1.217 211 9/6/2023
0.1.216 257 8/28/2023
0.1.215 228 8/28/2023
0.1.214 225 8/23/2023
0.1.213 218 8/23/2023
0.1.212 241 8/15/2023
0.1.211 214 8/14/2023
0.1.210 206 8/12/2023
0.1.209 297 8/8/2023
0.1.208 260 8/1/2023
0.1.207 260 7/31/2023
0.1.206 241 7/31/2023
0.1.205 239 7/31/2023
0.1.204 249 7/30/2023
0.1.203 252 7/30/2023
0.1.202 235 7/30/2023
0.1.201 248 7/29/2023
0.1.200 242 7/11/2023
0.1.199 232 7/3/2023
0.1.198 238 7/1/2023
0.1.197 219 6/30/2023
0.1.196 325 6/29/2023
0.1.195 238 6/26/2023
0.1.194 306 6/23/2023
0.1.193 252 6/23/2023
0.1.192 235 6/21/2023
0.1.191 247 6/19/2023
0.1.190 246 6/18/2023
0.1.188 243 6/18/2023
0.1.187 232 6/17/2023
0.1.186 251 6/16/2023
0.1.184 287 6/11/2023
0.1.183 241 6/8/2023
0.1.182 235 5/31/2023
0.1.180 251 5/30/2023
0.1.179 250 5/30/2023
0.1.178 256 5/29/2023
0.1.177 238 5/28/2023
0.1.176 265 5/27/2023
0.1.175 249 5/23/2023
0.1.174 251 5/22/2023
0.1.173 263 5/21/2023
0.1.172 254 5/20/2023
0.1.171 250 5/20/2023
0.1.170 253 5/15/2023
0.1.169 247 5/14/2023
0.1.168 258 5/13/2023
0.1.167 262 5/11/2023
0.1.166 253 5/11/2023
0.1.165 259 5/3/2023
0.1.164 299 4/27/2023
0.1.163 285 4/22/2023
0.1.162 260 4/18/2023
0.1.161 277 4/17/2023
0.1.160 303 4/17/2023
0.1.159 294 4/17/2023
0.1.158 288 4/17/2023
0.1.157 275 4/13/2023
0.1.156 299 4/10/2023
0.1.155 294 4/10/2023
0.1.154 303 4/10/2023
0.1.153 308 4/10/2023
0.1.152 314 4/4/2023
0.1.151 304 4/3/2023
0.1.150 314 3/28/2023
0.1.149 338 3/20/2023
0.1.148 325 3/14/2023
0.1.147 333 3/6/2023
0.1.146 334 3/5/2023
0.1.145 317 3/5/2023
0.1.144 400 3/1/2023
0.1.143 387 1/31/2023
0.1.142 391 1/31/2023
0.1.141 404 1/25/2023
0.1.140 393 1/23/2023
0.1.139 390 1/20/2023
0.1.138 425 1/3/2023
0.1.136 398 1/3/2023
0.1.133 397 12/26/2022
0.1.132 375 12/20/2022
0.1.131 418 12/20/2022
0.1.130 400 12/14/2022
0.1.129 418 11/28/2022
0.1.128 433 11/20/2022
0.1.127 429 11/20/2022
0.1.126 440 11/20/2022
0.1.125 440 11/19/2022
0.1.124 429 11/19/2022
0.1.123 464 11/19/2022
0.1.122 434 11/19/2022
0.1.121 445 11/19/2022
0.1.120 447 11/17/2022
0.1.119 437 11/17/2022
0.1.118 442 11/17/2022
0.1.115 446 11/9/2022
0.1.114 463 11/7/2022
0.1.113 462 11/2/2022
0.1.112 470 11/2/2022
0.1.111 457 11/2/2022
0.1.110 455 11/1/2022
0.1.109 462 11/1/2022
0.1.108 472 10/28/2022
0.1.107 486 10/28/2022
0.1.106 482 10/28/2022
0.1.103 521 10/22/2022
0.1.101 517 10/17/2022
0.1.100 543 10/17/2022
0.1.99 514 10/17/2022
0.1.98 485 10/17/2022
0.1.97 505 10/13/2022
0.1.96 493 10/3/2022
0.1.94 523 9/26/2022
0.1.93 540 9/26/2022
0.1.92 514 9/26/2022
0.1.91 552 9/24/2022
0.1.90 529 9/24/2022
0.1.89 545 9/24/2022
0.1.88 500 9/21/2022
0.1.87 522 9/20/2022
0.1.86 527 9/20/2022
0.1.84 555 9/15/2022
0.1.83 547 9/15/2022
0.1.82 516 9/11/2022
0.1.81 566 9/10/2022
0.1.80 518 9/10/2022
0.1.79 519 9/10/2022
0.1.78 571 9/10/2022