Version 4.0.138 - 27 May 2021

  • ADO.NET in VenturaSQL Studio: The DesignValue from the recordset editor is now converted to the correct .NET framework type when executing the recordset's query for code generation or displaying data. This change was needed for the Npgsql (Postgres) ADO.NET provider.
  • DLLs and executables and installer are signed with certificate.

Version 4.0.130 - 19 May 2021

  • Added the RequestData property to VenturaSqlServerEngine.
  • Modified the Web API controller C# code that needs to be copied into the ASP.NET Core project.

Version 4.0.129 - 14 May 2021

When opening the "Auto Create" window while the connection string is invalid, the window would freeze until ADO.NET throws an exception. Fixed it by rendering the window first and making sure the progress bar is animated.

Version 4.0.128 - 12 May 2021

VenturaSQL is now an open source project.

Upgraded to .NET 5

  • The VenturaSQL runtime VenturaSQL.NETStandard.dll is compiled as a .Net Standard 2.0 class library. Making it compatible with about any C# project.
  • The server runtime VenturaSQL.AspNetCore.Server.dll is compiled with .NET 5.0
  • VenturaSQL Studio, the WPF desktop program, is compiled with .NET 5.0

The server runtime for ASP.NET on .Net Framework 4.x is dropped.

NuGet packages for Ventura SQL 4

  • VenturaSQL.NETStandard contains the runtime DLL that is compatible with .Net Standard 2.0.
  • VenturaSQL.AspNetCore.Server for middle-tier server projects. The server bits require ASP.NET Core 5.0 or higher.


  • VenturaSQL Studio 4 runs on .NET 5, and this runtime does not support the dynamic loading of ADO.NET providers. Provider DLLs must be linked into the VenturaSQLStudio executable.
  • VenturaConfig was renamed to VenturaSqlConfig.
  • The middle-tier now uses a Web API controller.

Version 3.2.83 - Tuesday 29 September 2020

  • When opening an auto-generated recordset in the editor, a warning is displayed that any changes to the recordset will be overwritten at code-generation time;
  • Added NuGet packages for .Net 5.0: VenturaSQL.NET5Webserver and VenturaSQL.NET5Runtime.

Version 3.1.73 - Saturday 25 July 2020

  • Added support for incrementally loading rows from the database into a recordset;

Version 3.0.55 - Monday 1 June 2020

  • Made VenturaSQL compatible with Blazor WebAssembly;
  • Added the VenturaSqlConfig.SetHttpClientFactory() method for Blazor WebAssembly support;
  • Added a new Project Template: "Create a Blazor WebAssembly project with an ASP.NET Core 3.1 Web server as the middle-tier";
  • Updated the SQL Server connection strings in the New Project Templates as the sample AdventureWorks 2017 database on Azure SQL Server was moved from Azure "East US 2" to Azure "West Europe" (Amsterdam):,1433; Initial Catalog=AdventureWorks2017; Persist Security Info=False;User ID=reader; Password=easypassword9!; MultipleActiveResultSets=False; Encrypt=True; TrustServerCertificate=False; Connection Timeout=30;

Version 2.6.1950 - Monday 12 November 2018

  • Added Record.ResetToUnmodified and Recordset.ResetAllToUnmodified methods;
  • Added Record.IsModified(column name) method to query the modification status of an individual column;
  • Small improvements to the generated Recordset source code

Version 2.6.1910 - Monday 5 November 2018

  • Improvements to the generated records code;
  • Auto Create Recordsets now places (provider determined) quotes around column and table names.

Version 2.6.1902 - Friday 2 November 2018

  • Improved the "class summary" text for the generated recordsets;
  • RecordsetObservable<> was renamed to ResultsetObservable<>;
  • RecordsetData<> was renamed to ResultsetData<>;
  • Project Vacuuming. Deleted recordsets will also be deleted from the Visual Studio C# output projects. All folders you specify in a VenturaSQL project are now managed by VenturaSQL. Ventura will empty the folders as needed;
  • Auto-run "Auto Create Recordsets". The Auto Create Recordsets module runs every time when code generation is started. This makes Ventura easier to use when modifying tables in the database. Before: a) modify/add table column. b) delete Auto Create folder. c) run Auto Create d) run Generate. New: a) modify/add table column. b) run Generate.
  • Completed record-validation in the generated record code. It checks that all primary keys are set. If not, an exeption is thrown;

Version 2.5.1690 - Friday 28 September 2018

  • SQLite: fixed detection of a resultset even though the script didn't produce any resultsets. The provider produces a resultset without columns instead of no resultset.

Version 2.5.1652 - Thursday 13 September 2018

This build is released as a preview and is a major update that makes VenturaSQL a mature product with extended functionality:

  • The code generator, VenturaSQL Studio is feature complete:
  • Select any ADO.NET Provider in the provider page;
  • A new Advanced Provider Settings dialog;
  • When creating a new project, there is a list of templates to choose from;
  • A new recordset parameter definition dialog;
  • The Auto Create Recordsets module has been added;
  • A lot of improvements to the generated recordset C# code;
  • Major improvements to the runtime, making working with the database easier than ever before.

The VenturaSQL.NETStandard.WithoutADO.dll was removed. Every .NET framework flavor has the full ADO.NET functionality aboard by default, so it doesn't make sense to have a Ventura runtime without ADO.NET (System.Data) references.

Version 2.0.3 - Wednesday 8 August 2018

The UI has been improved:

  • The Project Explorer is always visible.
  • Multi-select, Move, Copy and Delete has been added to the Project Explorer.
  • The menu on the left side of each tab has been removed, and is replaced by buttons on the top row of the page.

Version 1.100.53 - Thursday 10 May 2018

The Ventura runtime libraries are now delivered as .Net Standard 2.0 class libraries. The runtime comes in two flavors:

  • VenturaSQL.NETStandard.dll contains the complete runtime;
  • VenturaSQL.NETStandard.WithoutADO.dll is the runtime without any ADO.NET/SqlClient references.

VenturaUWP.dll, VenturaAndroid.dll, VenturaIOS.dll, VenturaWPF.dll and VenturaWinForms.dll are replaced by the .Net Standard DLLs.

VenturaAspNet.dll still exists, but contains only the server bits, and must be referenced in combination with one of the fore mentioned .Net Standard DLLs.

VenturaAspNetCore.dll is new, and must be referenced with VenturaSQL.NETStandard.dll or VenturaSQL.NETStandard.WithoutADO.dll

NuGet identifiers

VenturaSQL.UWP, VenturaSQL.Android, VenturaSQL.iOS, VenturaSQL.WPF, VenturaSQL.WinForms are obsolete.

VenturaSQL.AspNet remains. VenturaSQL.AspNetCore is new. VenturaSQL.NETStandard is new.  VenturaSQL.NETStandard.WithoutADO is new.

Out-of-box experience

The out-of-box experience is vastly improved. When you create a new project, VenturaSQL Studio can generate sample recordsets and Visual Studio projects in the VenturaSQL project folder.


We've installed Microsoft's AdventureWorks sample database on an Azure SQL Server ( The database is used in the samples.

Version 1.0.202 - Tuesday 26 December 2017

Cosmetic changes and minor fixes only.

Version 1.0.108 - Tuesday 4 April 2017

Cosmetic changes only.

Version 1.0.101 - Tuesday 31 January 2017

A minor but breaking change.

Recordset.SetLoadParams() was renamed to Recordset.SetExecSqlParams().

Version 1.0.100 - Sunday 29 January 2017

Breaking changes: The Load and Save methods of both the Transactional class and generated Recordset classes have been renamed.

Recordset.Load() was renamed to Recordset.ExecSql() and Recordset.LoadAsync() was renamed to Recordset.ExecSqlAsync()

Recordset.Save() was renamed to Recordset.SaveChanges() and Recordset.SaveAsync() was renamed to Recordset.SaveChangesAsync()

The Transactional class was modified in a similar way:

Transactional.Load() was renamed to Transactional.ExecSql() and Transactional.LoadAsync() was renamed to Transactional.ExecSqlAsync()

Transactional.Save() was renamed to Transactional.SaveChanges() and Transactional.SaveAsync() was renamed to Transactional.SaveChangesAsync()

With an SQL statement like "select * from Customers," calling the method executing the SQL statement "Load" is a perfect fit. However when your recordset contains, for example, an INSERT statement, "Load" is confusing. For this reason "Load" was renamed to "ExecSql" as this describes exactly what happens.

Version 1.0.90 - Thursday 26 January 2017

  • Implemented support for the INotifyPropertyChanged interface.
  • Implemented Calculated columns as an easy to implement alternative to XAML Value Converters and XAML MultiBinding.

Version 1.0.86 - Wednesday 25 January 2017

Due to a change in version 1.0.80 the [Move up] and [Move down] buttons stopped working. This was fixed.

VenturaSQL Studio will check if a Ventura update is available while starting, and display a message accordingly.

Version 1.0.80 - Tuesday 13 December 2016

The RTM release for version 1.0

Cosmetic changes only.

Version 1.0.60 - Release Candidate 4 - Saturday 3 December 2016

A minor fix.

When a resultset column contains an expression like SELECT SUM(Invoice.Total), the column will be nameless. For this reason you have to give the column a name by adding the "AS" clause. For example: SELECT SUM(Invoice.Total) AS 'TotalInvoiced'

The recordset validator did not check for missing column names, and this allowed recordsets to be generated with empty property names. The validator has been updated.

Version 1.0.49 - Release Candidate 3 - Wednesday 23 November 2016

Two small changes.

A SQL variable starting with @@ is a global variable. They are declared and set automatically by SQL server.

When parsing a SQL statement in the recordset, global variables would inadvertently be added to the parameter list. This was fixed.

Generated C# source code files were written in ASCII format. This was changed to UTF8 to allow for special characters.

Version 1.0.48 - Release Candidate 2 - Monday 21 November 2016

Cosmetic changes only.

The first lines of a generated Recordset .cs source code file now contain the name of the project file, target platform, generator version and the generation timestamp:

       Project file: "C:\Active\Ventura\Internaltest\UWP Test.venproj"
       Target platform: UWP
       Generator version: 1.0.46
       Generated on: Monday, November 21, 2016 at 11:28:39 AM

Also, the updateable table information in the class summary was improved:

       /// <summary>
       /// This Recordset can be used to insert, update and delete data for SQL Server table [Employee].
       /// All the columns of the updateable table are present in the Recordset:
       /// - Primary key column(s) of the updateable table present in the Recordset: EmployeeId.
       /// - Non-primary key column(s) of the updateable table present in the Recordset: LastName, FirstName, Title and Email.
       /// </summary>

Version 1.0.46 - Release Candidate 1 - Thursday 17 November 2016

Breaking changes

Connectors.Default = new Connector(...);

needs to be replaced with:

VenturaConfig.DefaultConnector = new Connector(...);

New features

  • The start page displays a Most Recently Used (MRU) list of recently opened Ventura projects.

Removed features

  • The "automatically open most recent project after opening VenturaSQL Studio" option was removed, as it is replaced by the Start Page with the MRU list.

Version 1.0.40 - Beta 4 - Friday 11 November 2016

New features.

Synchronous loading and saving

Synchronous loading and saving of data has returned.

A few months ago we dropped this feature as we came to the conclusion it was obsolete. However, while using Ventura ourselves to access SQL Server data via a direct Ado.Net connection in the Web Application, we found marking methods as async caused unneeded complexity to certain modules.

Synchronous loading and saving methods: Transactional.Load(..), Transactional.Save(), Recordset.Load() and Recordset.Save()

Asynchronous: await Transactional.LoadAsync(..), await Transactional.SaveAsync(..), await Recordset.LoadAsync() and await Recordset.SaveAsync()

Note that a Record.Load/Save call internally calls Transactional.Load/Save.

Version 1.0.36 - Beta 3a - Thursday 29 September 2016

Minor fixes.

  1. The 'Raw schema' dialog will not open and display a message instead when an SQL statement returns no result sets;
  2. The 'Run query' dialog will not open and display a message instead when an SQL statement returns no result sets;
  3. The 'Run query' dialog couldn't handle CLR-UDT columns and displayed an error.

Version 1.0.34 - Beta 3 - Monday 26 September 2016

  1. In the project setting dialog you now need to specify the target platform (UWP/WPF/WinForms/Asp.Net/Android/iOS). Previous auto discovery of the project type was removed;
  2. For WPF and WinForms projects you can optionally disable inclusion of the SQL statement in the generated Recordset classes for security reasons. A Recordset with the SQL statement included can connect directly to SQL server;
  3. Each of the 6 possible output Visual Studio projects can be (temporarily) disabled by clearing a checkbox;
  1. All SQL server data types (except sql_variant) are now supported. CLR-UDT's are only available on the WPF/WinFormsAsp.Net platforms since CLR-UDT's can not be deserialized on UWP/Android and iOS platforms as they are running on a different .Net framework;

Version 1.0.30 - Beta 2 - Thursday 15 September 2016

  1. Multiple resultsets;
  2. Improved extraction of SQL parameter list from SQL statement;
  3. SQL output parameters (as well as input parameters);
  4. Use Recordsets with direct SQL Server connection, thus without middle tier, in Asp.Net, WPF and WinForms projects simply by changing the connectstring;
  5. When inserting a new row, the identity (autoincrement) column value is transmitted back to the client and updated in the Recordset;
  6. Recordsets can implement the INotifyCollectionChanged (ObservableCollection) interface by ticking a checkbox.

Version 1.0.24 - Beta 1 - Thursday 30 June 2016

The first public beta release for Ventura.