Are you developing in C# and need to retrieve and update Sql Server data?

Runtimes for UWP, Xamarin, ASP.NET, WPF and WinForms are included.

Introducing the Ventura SQL Data Access Layer for .Net with C#:

UWP, Android and iOS

Direct Sql connections are not supported or desirable in modern apps. This makes sense as you do not want to expose your organisation's Sql statements to outsiders.

That is why you need to use a 3-tier architecture for modern apps.

We are the pioneer in integrating the middle-tier into the Data Access Layer.

In a 3-tier solution, the client does not connect to the database directly, instead it retrieves and updates data through a middle layer Web server.


Ventura SQL is the perfect ADO.NET enhancement. Ventura's Recordsets make retrieving and updating Sql server data a breeze. Recordsets replace SqlDataAdapter, DataSet, DataTable and SqlDataReader calls.

There is no need to learn Entity Framework and LINQ and Web services as you will only be needing Ventura Recordsets to retrieve and update Sql server data at record-breaking performance in a genuine 3-tier architecture.

Sql statements!

In Ventura SQL you define the Data Access Layer by entering Sql statements in Ventura SQL Studio. The DAL is then generated in the form of Recordsets, based on the resultset(s) as returned by Sql server.

This is a genius concept that maximizes programmer productivity.

There is no need to define models or mappings, and that is what keeps your Data Access Layer simple, understandable and manageable.

Ventura SQL makes defining your Data Access Layer as easy as entering a Sql statement and clicking the [Generate] button.

Using the generated Recordset in your code to retrieve and update Sql Server data is a breeze.

VenturaConfig.DefaultConnector = new Connector("DefaultConnection", 
       ConnectorMode.Http, "");
ChinookEmployeeRecordset rs = new ChinookEmployeeRecordset();
rs.ExecSql(5 /* EmployeeId */ );
// Add a record.
rs.FirstName = "Robert";
rs.LastName = "King";
// Enumerate records.
foreach (var record in rs)
    record.Phone = "+1 (403) 456-9986";
// Delete a record.
var first_record = rs[0];
// Data bind to control.
listView.ItemsSource = rs;