Home Blog Corner




BindKraft combines a client-side and a server-side framework to provide the utmost flexibility.

The client side is a JavaScript framework that offers a way to create, organize, and control containers for views and control elements. It provides semi-passive binding of data to the view, which is coded in the markup. This makes it extremely flexible and adaptable for various use cases. Reusability, extensibility, and sustainability were core objectives that were consistently prioritized during the development process. It is entirely written in object-oriented JavaScript and includes the conventional class inheritance and interfaces, along with the addition of interface implementers and helpers, forming what we call hybrid inheritance. This approach combines the advantages of multiple inheritance while maintaining the overall logical structure of single class inheritance.

The server side provides an extensible back-end that can seamlessly integrate with almost all modern data sources. It is built on .NET Core, making it compatible with multiple operating systems.

The framework aims to offer a core set of features that deliver fast and reliable performance, while also allowing for expansion through custom plugins that can integrate with our defined pipeline. It can be used with any popular database technology by utilizing user-defined TreeNodes (node structure in JSON), and it even offers the option of reading from and writing to files. It asynchronously processes all client requests and supports batch request processing. The result for each batch is retained on the server until the entire batch has finished executing, and then the response is sent back to the client.

If there is a specific technology that we do not support, we provide the option of expansion through custom plugins. You can add support for your own back-end technology and easily incorporate it into our execution pipeline. You can define the desired data loader in the TreeNode, write your custom plugin, and reference it within your TreeNode.