Topoix is a .NET based framework that provides a structure on which applications can be constructed and deployed. It encapsulates complex actions and presents the developer with simplified methods of performing them; this allows complex .NET applications to be developed without the developer requiring a full understanding of all the associated technical complexities. The main goal of Topoix is to reduce the time and effort involved in application development
Typical Topoix applications are both data entry and validation intensive. This is achieved by use of a disconnected data set model. This means that instead of accessing the database at every page refresh or every action on the page (e.g. clicking on an ‘Add’ button or a link), the dataset is saved or committed en masse at the end of the application.
Topoix operates with a stateless server environment in mind making it particularly suitable for load balancing and enterprise deployments.
Topoix is metadata driven
The metadata consists of one or more metadata files that contain the data needed for your application. These metadata files describe the data structure and functionality of your application. They define the variables, data types, constraints, properties, forms and controls that are used in the application. Topoix takes these files and uses them to produce a working application.
A Topoix application comprises the following components:
- Topoix Application Server
- Byteblock Server
- Metadata Server
User Defined Components:
- Define application behaviour; describe tables, columns, forms, controls, properties and constraints.
- Link controls on each form with their presentation in the html pages.
- Define the start control of each page, the flow of control through the page, the flow of control through the application and the functionality behind the controls.
- Define business logic that describes functionality and contains calls to business logic dlls.
- Business Logic
Is written as code snippets in Gravity, a simple language optimized for interaction with the Topoix Framework.
- Any .net language can be used to develop a set of business rules
Is used to present the application in Microsoft Internet Explorer.
- Images and StyleSheets.
Stylesheets are used in conjunction with html for presentation purposes.
A Topoix deployment consists of three main components:
1. Topoix Application Server
2. ByteBlock Server
3. MetaData Server.
Multiple instances of the Application Server can be deployed in a Web Farm configuration.
The Topoix Application Server runs on IIS and contains all relevant files for a Topoix application including the Topoix Assemblies.
The Topoix Application Server hosts the main application and instantiates the metadata supplied to it by the Metadata Server
The ByteBlock server is the central store of user sessions for Topoix applications.
Requests to Topoix in a web farm environment are directed to individual servers by a load balancer.
The ByteBlock is the session-based persistence mechanism for Topoix applications.
Persistence refers to the characteristic of data that outlives the execution of the program that created it.
Topoix data (application and session control) is persisted to a ByteBlock following each server request. This ByteBlock is loaded from the ByteBlock Server when a request is made, and is subsequently saved to the ByteBlock Server when the response has been processed.
The Metadata Server provides a centralized metadata store
The Metadata Server performs three functions:
- Maintains a mapping to a specific Metadata version.
- Manages the storage of Metadata.
- Allows retrieval of specific Metadata.
When Metadata is uploaded to the server, the Metadata ID is provided, and a new version number is allocated.
The Topoix server is hosted by IIS as a HTTP handler.
The Topoix Handler process, AJAX requests from and responds to the browser Client.