Click here to Skip to main content
15,896,453 members
Articles / Database Development / SQL Server

Overview of XQuiSoft Data Using the Provider Pattern (Open Source)

Rate me:
Please Sign up or sign in to vote.
3.59/5 (12 votes)
16 Jun 2009BSD8 min read 40.9K   77   28  
A data abstraction layer for .NET applications. Write your application code to be database neutral. Swap out the type of database your application uses without updating or even recompiling your business components.
Note, In order to build this project depends on another open source 
project on sourceforge called xqs-provider.

** 2.2
+ demo project finally updated to utilize latest features.
+ documentation (word document) updated recommending latest features (in 2.0)
	with recommended design shown in updated demo project.

** 2.1
+ more robust handling of null on return parameter values.
+ new Oracle client implementation (separate project - dll output)

** 2.0
+ Added method overloads to Procedure that take parameter constructor values, 
including Value for the case when db 'maps' are not being used.
+ Added DbContext.ExecuteReader, DataProvider.ExecuteReader, and the same for 
the SqlClient versions.  This feature was made possible by the DbContext 
concept (added in v1.5.5000.0).  It would have been difficult to manage beforehand.
+ Aded DbContext.Execute overload tht takes a method delegate in place of an IDataFactory
instance.  Same overload was added to DataProvider and SqlDbContext.

** 1.6.5000.0
+ removed DataProvider.Name overload and call base.Initialize from Initialize
+ fixed bug - DataProviderCollection constructor now passes correct type to base class.

** 1.5.5000.0
+number sychronized with rest of this XQuiSoft core release
+References the updated Provider pattern implementation in
XQuiSoft.Provider v 1.5.5000.0
+Added DbContext class.  This class is used when multiple data
operations need to be wrapped into a single transaction.  It
contains the implementations of all the Execute commands from
DataProvider.
+DataProvider adds abstract method GetContext().
+DataProvider delegates Exectute method calls to a new instance
returned from GetContext().  Essentially these are useful when
only a single db call needs to be made that is not part of a
transaction.  This also provides backward compatibility for code
that used these before.
+DataProvider.BeginTransaction was removed.  Instead create a new
DbContext and BeginTransaction on it.
+DataProvider.CommitTransaction was removed.  Use a DbContext instead.
+DataProvider.RollbackTransaction was removed.  Use a DbContext instead.

** 1.3.5000.0
+Added DataProvider abstract method CheckConnectability(...), 
also added to SqlDataProvider.
+use ProviderHelper to read configuration values

**1.2.5000.0
Updated to use the new object pooling feature of the provider component.

**1.1.5000.0
Added a Default property to DataManager.Providers.  This allows
access to the default provider as defined in the configuration.
This is not necassarily the connection with a name of 'Default'.
Now any other classes that use the DataManager do not have to
explicitely define which connectionName they wish to use.
-no new bugs found/fixed

dependency: XQuiSoft.Provider 1.0.5000.2

**1.0.5000.2
added more license details to AssemblyInfo
-no new bugs found/fixed
-no new features

dependency: XQuiSoft.Provider 1.0.5000.2

**1.0.5000.1
fix bug where output parameters were not being populated
-no new features

dependency: XQuiSoft.Provider 1.0.5000.1

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The BSD License


Written By
Web Developer Nexul Software LLC
United States United States
Mike has worked in the .Net platform since the beta 2 release of version 1.0. Before that he worked on VB6 windows forms applications automating other applications such as AutoCAD and "Intent".

Mike has released a number of open source applications in javascript and C#.Net. Most of them can be found on github.
github/michael-lang

You can find older .Net open source projects on sourceforge at:
http://sourceforge.net/users/versat1474/

Mike is currently blogging at candordeveloper.com

Comments and Discussions