Overview - songgz/fastui GitHub Wiki

Presentation

Fastui is an AJAX Ruby Framework for Rapid Development of Enterprise Web Applications quickly and easily using Ruby. It is easy to learn and one can have an application up in no time. At the same time, Fastui is extensible, customizable and the application code is structured in a very pure object oriented way, allowing you to develop arbitrarily complex applications.

The Fastui approach for rapid development differs from those that use visual enviromments(like Visual Basic or Delphi) or scripting(like PHP). Instead, Fastui use a model-driven development approach, where the core of your application are Ruby classes that model your problem. This means you can stay productive while still maintaining a high level of encapsulation.

This chapter will show you the concepts behind Fastui as well as an overview of its architecture.

The Fastui concepts

Though Fastui takes a very pragmatic approach to development, it is based on the refinement of two well known ideas: The very popular methodology of Model-Driven Development(MDD) and the concept of Business Component. Ideas from MDD are borrowed in a rather lightweight way. The Business Component, however, is at the very heart of Fastui.

Let's look at these concepts in closer detail.

Lightweight Model-Driven Development

Basically, MDD states that only the model of an application needs to be developed, and that the rest is automatically generated. This is illustrated in figure 1.1.

In the context of MDD the model is the means of representing the data and the logic of the application. It can be either a graphical notation, such as UML, or a textual notation such as a Domain-Specific Language(DSL).

unfortunately, using MDD is very complex. It requires a big investment of time, expertise, and tooling. Still the idea behind MDD is very good and hence Fastui uses that idea in a simplified way. Fastui uses plain configuration model and view, and instead of generating code, all functionalties are generated dynamically at runtime.

Figure 1.2 shows why we call Fastui a Lightweight Model-Driven Framework.

From just plain Ruby classes you obtain a full-fledged application. The next section about the Business Component concept will reveal some important details about the nature of these classes.

Below you can see some of the basic concepts of FastUI.