Kenova is een systeem voor rapid-application-development van zakelijke software met C# .NET die cross-platform in een browser draait.
Kenova is bijzonder geschikt voor het ontwikkelen van administratieve software die een veelvoud aan dialogen (paginas) bevat. Als je voor een programma honderd paginas moet ontwikkelen, dan moet het programmeren van een enkele pagina natuurlijk snel en efficiƫnt gebeuren.
De applicatie die met Kenova ontwikkeld is kan stand-alone en cross-platform in iedere browser draaien.
Het programma kan ook als een Windows Desktop of Android of IOS app gestart worden. In dit geval gebruikt de app de Google Chrome rendering engine voor de user-interface.
De dialoog definities en business-rules worden in C# geprogrammeerd.
Kenova gebruikt Microsoft ASP.NET Blazor voor het opbouwen van HTML code en de interfacing met JavaScript.
Blazor vs Angular/React/Vue
Angular, React en Vue zijn de meest populaire platformen voor het ontwikkelen van browser-bases software. Het grote nadeel van deze platforms is dat ze niet productief zijn. Alle code wordt geschreven in JavaScript of TypeScript.
JavaScript is bedoeld voor het manipuleren van de browser-DOM, het object model van de browser. Voor deze taak is JS perfect.
Voor het programmeren van zakelijke logica is JavaScript eigenlijk niet gemaakt. Zo kent JS alleen maar een floating point numeriek datatype wat het werken met financiƫele bedragen lastig maakt (afrondingsverschillen).
Grote bedrijven lossen het probleem van de onproductie softwareontwikkeling met Angular/React/Vue op door grote ontwikkelteams in te huren. Voor ondernemingen die niet over zulke grote budgetten beschikken is dit een probleem.
Met Blazor kan nu ook C# code cross-platform in de browser draaien.
C# in de browser
Voorheen ondersteunde de browser alleen JavaScript. Sinds eind 2019 bevatten alle browsers de WebAssembly bytecode runtime. WASM is een low-level bytecode formaat dat razendsnel instructies kan uitvoeren.

Microsoft heeft een .NET CLR runtime gemaakt voor WebAssembly. Daardoor kan de browser .NET DLLs inladen en C# code uitvoeren.
Vervangt C# JavaScript?
JavaScript is diep geintegreerd en verweven met het object model van de browser. Voor het dynamisch aanpassen van HTML elementen en het ontvangen van browser-events is JavaScript nodig. JavaScript is perfect uitgewerkt voor dit doel, en er is ook geen dringende reden om dit te vervangen.
Zakelijke logica programmeren en het definieren van paginas gebeurt wel vanuit C# code. Dit is waarvoor C# perfect uitgewerkt is.
JavaScript Interop
Als je vanuit C# een browser API wilt aanroepen, dan gebeurt dat altijd via JavaScript Interop. Omgekeerd is het ook mogelijk om vanuit JavaScript C# methods aan te roepen.