VenturaSQL 4 Web API

Starting with VenturaSQL version 4, the middleware is exposed as a Web API using an ASP.NET controller.

using VenturaSQL;
using VenturaSQL.AspNetCore.Server.RequestHandling;

namespace BlazorDemo.Server.Controllers
{
    [ApiController]
    [Authorize]
    public class VenturaSqlController : ControllerBase
    {
        [Route("api/venturasql")]
        [HttpPost]
        public async Task<IActionResult> Index(byte[] requestData)
        {

            var processor = new VenturaSqlServerEngine();
            processor.CallBacks.LookupAdoConnector = LookupAdoConnector;
            await processor.ExecAsync(requestData);
            Response.ContentType = "application/octet-stream";
            await Response.Body.WriteAsync(processor.ResponseBuffer, 0, processor.ResponseLength);
            return Ok();
        }

        private AdoConnector LookupAdoConnector(string requestedName)
        {
            if (requestedName == "DefaultConnector")
                return new AdoConnector(SqlClientFactory.Instance, "Server=tcp:sysdev-sqlserver-public.database.windows.net,1433;Initial Catalog=AdventureWorks2017;...");

            throw new Exception($"Requested connector name {requestedName} is unknown on server.");
        }
    }
}

In the C# code above, the requestData byte array is created by the recordsets on the client and transmitted to the server in binary format. The VenturaSqlServerEngine will perform the requested database operations and return the data to the client in binary format. The client then unpacks the data and fills the rows in the recordsets.

Welcome

Last updated on 7 November 2021.

This is the website of Frank Th. van de Ven. I am a Dutch software developer with over 25 years of full-time experience. I am specialized in creating line-of-business software using C#. My current focus is on Blazor WebAssembly and ASP.NET Core. I also have good knowledge of SQL Server, Oracle, Azure, UWP and WPF.

I don’t know if Microsoft’s .NET developer platform is the best in the world, but it certainly gets the job done, and how! Great productivity, great performance and amazing cross-platform support. C# code runs on almost any platform! Web, Mobile, Desktop, Cloud, IoT, Windows, Linux, macOS, Android, iOS and more.

Apart from building end-user software I also create software development tools. My tools make make developers productive. My specialty is designing and writing the tools you use to build a complete system: front-end, middleware, servers and the database layer. My solutions are totally integrated, and a development team using my tools, produces rapid, consistent and uniform results.

I am currently working on a system to rapidly build front end software with Blazor WebAssembly. Blazor WebAssembly allows us to run C# code cross-platform in any modern browser like Chrome, Edge, Firefox and Safari. The project is progressing rapidly and a demo is at blazordemo.com. Blazor WebAssembly is in the same category as Angular, React and Vue, but much easier to use, and much much more productive. This is thanks to the clever rendering engine and C# code running in the browser.

My website now runs on WordPress. What I really like about WordPress is the Gutenberg editor. It is much easier to post information and insert images compared to directly writing html.

The documentation for VenturaSQL is at docs.sysdev.nl. VenturaSQL is the 3-tier SQL framework for C# projects where database access and web services are integrated into a single solution.