Featured

Welcome

This is the website of Frank Th. van de Ven. I am a Dutch software developer specialized in creating line-of-business software using C# with Blazor WebAssembly and ASP.NET Core. I also have good knowledge of SQL Server, Azure App Service 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 single-handedly creating 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 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. I never found a simple solution to insert images into a webpage where the images would be uploaded to the server automatically.

The previous “Ventura Tools” website is not being updated anymore and can be found at site.sysdev.nl.

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.

VenturaSQL 4 Web API

The VenturaSQL 4 middleware is exposed as a Web API using an ASP.NET Controller. The requestData byte array created by the Recordsets on the client and transmitted to the server in binary format. The VenturaServerEngine 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 records in Recordsets.

The VenturaSQL 4 server library will only be available for .NET 5 or higher. The libraries for .NET Framework 4.7 and ASP.NET Core 3.x will be discontinued.

using BlazorDemo.Client;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Threading.Tasks;
using VenturaSQL;
using VenturaSQL.AspNetCore.Server.RequestHandling;

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

            var processor = new VenturaServerEngine();

            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 == "BikeStores")
                return ServerConnector.BikeStores;
            else if (requestedName == "Pharmacy")
                return ServerConnector.Pharmacy;

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