Core Components of zAppDev¶
As mentioned, zAppDev is a web-based RAD Suite. That been said, it becomes pretty obvious that zAppDev itself is a Web Application, designed and created to provide you with all the tools you might need to quickly and intuitively design and develop high-performance Applications.
To do that, zAppDev employs an explorer and wizard-like interface for navigating through the architectural components of your application, that consists of the following main components:
- Configuration Editor
- A comprehensive editor that enables you to configure your Application to your specifications, needs, security items, RBAC strategies, globalizations etc. with regards to the Implementation Strategy of your choice
- Business Objects Editor
- A UML-like designer that allows you to visually define the Business Objects and Data (Classes, Enumerations) of your Application, as well as define their functionalities, associations, restrictions, rules, encryption policies and more
- Form Editor
- A comprehensive, wizard-based, drag-and-drop, MVC (Model-View-Controller) designer that helps you design the UI and logic of your Application, define its data Models, present DataSets, create Events, place Validation Rules, add Conditional Formattings and Calculated Expressions and much more
- External and Exposed APIs Editor
- Two wizard-based Editors that allow you to connect to external systems and services in a matter of minutes, as well as to expose your own, modern REST APIs to the world
- Workflow Editor
- A visual designer consisting of building blocks that can define workflow-related logic using execution steps. The Workflow Editor allows you to set up tasks and precisely model not only their behavior, but their execution schedule as well.
- Data Transformations Editor
- A designer that will help you visually map one object or member to another, in a few seconds. It allows you to draw mappings, links and splits between any two structures, regardless of their types and pluralities and, if that is not enough, define your own Transformation logic that will be generated as ready-do-use functions, available anytime and anywhere you might require a conversion.
- Theme Editor
- An integrated, friendly editor with quick settings and rules that will allow you to change the look and feel of your Application.
, as well as countless build-in tools and helpers that provide intuitive functionality with regards to Source Control, Continuous Integration, Deployment, Refactoring, Team Management and so on and so forth.
zAppDev is a platform-agnostic Application Development Suite. Apart from countless Model-based designers, it also exposes its own native language to facilitate more detailed functionality implementation in a technology and platform-agnostic way: Mamba.
Mamba is a C-like High Level Programming Language that provides an even higher abstraction of common tasks and functionality. With Mamba, complex tasks and concepts can be accomplished in a few lines of code. Alleviating the need to be proficient in any programming language, framework, patterns and best practices, the zAppDev Developer can script complex tasks and concepts with a few lines of Mamba code, that, in turn, will be translated into state-of-the-art programming sources in the language of his/her choice, all the while being shielded from complicated or merely repetitive tasks.
As already mentioned, zAppDev offers a complete set of application development tools that integrate a collection of different technologies and software engineering best practices, to comprehensively capture the elements of an enterprise application in a series of models. These models, which can be further perfected with functionality written in Mamba, lead to the automatic generation of highly efficient software applications.
To achieve that, zAppDev feeds the Models to the selected, by the Developer, Implementation Strategy. The Implementation Strategy (or Coding Facility) is a code generator. It consumes Models and Mamba code and generates applications. Since zAppDev Models and language are target-platform-agnostic, Coding Facilities are 100% free to implement full-stack applications in any language, framework and combination of frameworks. This means that you do not need to worry about frameworks, languages, architectures, patterns, best practices, tests and so on and so forth. zAppDev, in compliance to the Implementation Strategy you choose while defining your Application, will automatically create the correct type of application architecture following the state-of-the-art technologies of your chosen target.
No matter which Implementation Strategy you might choose for your Application, the zAppDev’s Coding Facility will generate you an N-Tier Solution consisting of three (3) main components:
- Database Server
- Web Server
- Application Server
Since the Solution with all its source code is yours, after its successful generation, it will be up to you to decide whether you wish to deploy all components onto one dedicated physical machine, or span them through a more mixed, integrated deployment.
The Database Server hosts the database used to store the data of your Application. It communicates directly with the Application Server (and only that) in order to serve, insert, update and delete records.
The Server and Database used are defined via the Implementation Strategy. For example, the “Asp.Net MVC” Implementation Strategy uses an MS SQL Database, supporting any Microsoft SQL Server from 2008 and on.
The Application Server is responsible for executing business logic, authenticating and authorizing user actions and interacting with external systems, where required. It accesses the Database hosted in the Database Server, using an ORM, and it serves requests originating from the Web Server.
Requests are served over the HTTP protocol, while HTTPS is also supported, if configured via the Configuration Editor.
The Application Server is defined via the Implementation Strategy. For example, the “Asp.Net MVC” Implementation Strategy generates an Application Server implemented using the Microsoft ASP.Net Web Api Framwork, with C# in the back-end and tools such as the Identity Framework, the nHibernate ORM etc.
The Web Server is responsible for serving the Graphical User Interface (GUI) to the end users of the solution, in the form of a Web Page. It contains definitions for all the UI Elements (forms, lists, dashboards and more), as well as the logic behind them. Clients communicate with the Web Server via HTTP or HTTPS protocols.
The Web Server to be used is defined via the Implementation Strategy. For example, the “Asp.Net MVC” Implementation Strategy generates Web Applications to be deployed on an MS IIS Server.
Even though zAppDev allows you to freely model your Application, decide on its underlying components, technologies, servers and frameworks, implement your own logic and define your rules, it goes one step further and offers you unlimited extensibility and customization with no black boxes or hidden parts. In other words, you will never feel trapped inside a proprietary development environment or runtime engine: You have full ownership over the generated source code, that you can download, modify and deploy with zero dependency on zAppDev.
Furthermore, you can customize any part of your Application, across all layers, by:
- Using your own favorite native library or existing code infrastructure, included as an external mamba Language Library
- Creating any custom user interface you can think of, using the build-in HTML form module that combines the modeling concepts of zAppDev forms with the freedom of HTML markup