What is Persistate?

Hide Navigation Pane

What is Persistate?

Previous topic Next topic No directory for this topic  

What is Persistate?

Previous topic Next topic Topic directory requires JavaScript JavaScript is required for the print function Mail us feedback on this topic!  

Persistate is easy to learn.

Persistate allows you to define your application structure using an intuitive English-like language, which is easy to learn, and completely self-documenting. The definitions are entirely in your business domain, and describe the data that you want to store, as well as the operations that you want to perform on that data.

Persistate generates full applications.

Persistate generates a full application from this application definition. The generated application (package) rigorously follows the industry standard Model-View-Controller architecture, creating three modules.

The Model. This includes all database objects required to hold your business data, and all the C# classes to access them, in code. Data is held in industry standard databases, but you need no database expertise - Persistate generates everything for you.
The View. This is a full user interface to portray the business data for the user. The forms and grids generated by Persistate are automatically coupled to your business data and operations, and are ready to use.
The Controller. This is a set of stub methods, ready for you to code your business operations. Accessing your business data in these methods is exceedingly simple, requiring very little API. Persistate turns C# into a language for directly manipulating persistent business data.

Persistate is scalable.

Persistate creates a 'domain' for your persistent business objects. This domain can contain the business data for any number of Persistate applications, and you can easily share data amongst these applications.

Your domain can have any number of 'environments', allowing you to run the same Persistate package with entirely different data sets - say for different departments, or for production and test. Your domain can also contain a large number (thousands) of physical databases.

Setting up environments and databases is very simple - just a few clicks - and again you need no database expertise to do this. The business data in your environments can be distributed over the databases in a flexible manner.

Persistate packages are easily deployed

Persistate creates standard .Net assemblies, and you can use the standard deployment methods. The same assemblies making up a Persistate package can work in one of two modes.

Stand-alone. In this mode, Persistate packages are installed and run on a workstation. The business logic (controller) and user interface (view) both run in the workstation, however they still access your business data from the databases in your domain.
Viewer-Server. In this mode, Persistate packages are installed on a Persistate Server, and accessed from a Persistate Viewer running in a workstation. The business logic runs in the Server, and the user interface runs in the Viewer.

The Persistate Vision

Persistate is a fully working system, but is currently at version 0.6.1. This reflects the fact that it is only part way towards what it will become. The vision is that Persistate will eventually become a hosted service allowing businesses to create bespoke line of business applications in a very agile manner, and have them immediately hosted and available. See The Vision for more details.

Major features

Persistate works in the .Net environment, and includes a Visual Studio add-in.
You define your application using an easy to learn English-like language.
Persistate's Visual Studio add-in generates a C# application and supporting database(s) from this definition. Prototypes can be created quickly and easily.
Generated applications rigorously follow the well known Model-View-Controller architecture.
In code, you access a persistent object graph, using the generated Model classes.  Persistate turns C# into a language for manipulating persistent objects directly, with very little API involved.
The persistent object graph can span a large number of databases of different types, and Persistate generates all the necessary tables and other database objects.  Your code never sees these.
Persistate generates a complete ready to use user interface (View), which you can customise.
Persistate generates stub methods in the Controller, ready for you to code your line of business operations.
Communication between user interface (View) and Controller is formally abstracted, allowing different types of user interface to connect to the same Controller, which is unaware of the user interface type.
Any number of Persistate applications, called packages, can share the same multi-database persistent object graph. Packages can be reused by other packages.
Persistate includes a Server application.  This can service multiple packages, running sessions linked to user interfaces in multiple Persistate Viewers in remote computers.
Persistate includes a Viewer application.  This can host the user interfaces for multiple simultaneous sessions running on a Persistate Server.
The same Persistate application can be run as a stand-alone application, or in Viewer-Server mode.
The Persistate run-time framework is itself a Persistate application.  All the data it uses is accessible using the same techniques you use to access your own data, meaning there is a lot less to learn.