InfoWorld review: Tools for rapid Web development

With WYSIWYG prototyping environments and preconfigured graphical components, rapid Web development tools can help you build applications faster -- but with less flexibility

1 2 3 4 5 6 7 Page 5
Page 5 of 7

OutSystem Agile Platform 5.0
With a name like OutSystem Agile Platform, the intent is obvious: agile development. Agi attempts this goal via a truly visual development environment. OutSystem's claim is that you can create full-featured Web applications without writing any code (though, you can do that, too, if you prefer).

The output of Agile Platform -- the code that actually executes your application -- is (depending on the edition) either .Net or Java. Therefore, applications built by the Agile Platform can execute on Windows and Linux. To choose the flavor of the generated application, you simply select the back-end server on which the application will execute, and Platform generates the proper code.

The Agile Platform consists of four components: the Platform Server, Service Studio, Integration Studio, and the Service Center Management Tool.

The Platform Server is a collection of services that execute alongside .Net or Java application servers. Platform Server creates and maintains a meta-data repository that stores all versions of applications and application components. The repository also acts as a source control system and retains the source code of previous versions. The meta-data and application repository exists within an RDBMS system, which can be either SQL Server or Oracle. However, deployed applications can use any database for which an ODBC driver exists. You can also create "integration extensions" (described later) to talk to specialized databases.

The Service Studio is a visual modeling tool used to build applications; it is the Agile Platform's IDE. It is here that you define an application's user interface, business logic, database structure, security and authentication logic -- all by dragging, dropping, and wiring together visual components. Also within the Service Studio, you define attributes of your database table, and the Platform creates the database (tables and attributes) when the application is deployed. Of course, if the database already exists, you supply that info to Agile Platform, and the application will simply connect when executed.

Integration Studio works with Microsoft Visual Studio or Eclipse to create and bring components into the Service Studio's repository. As delivered, the Agile Platform has built-in components that can do things like talk to the database, read and write Excel files, and so on. But for technologies for which the Platform has no interface -- say, a .Net-based object database -- you call on the Integration Studio to build an integration extension to provide the connectivity.

OutSystem Agile Platform 5.0
Here, Agile Platform's Service Studio builds a query for a contacts list Web action.

Integration Studio works with Visual Studio and Eclipse to help you migrate into the Agile platform. Integration Studio includes built-in wizards for reverse-engineering non-Agile-Platform code to create these extensions. For example, one such wizard will translate a .Net assembly into an extension. Integration Studio also includes a verifier that lets you check to see if an extension is "correct" and can be safely used in Service Studio.

Finally, the Service Center Management Tool is the Agile Platform's control and management center. It provides functions for creating and configuring user accounts, such as deciding which developers have access to which applications and which integration components. It can also fetch and display usage statistics for a deployed application.

A project within Agile Studio is referred to as an eSpace, and it holds a Web application's Web pages, business logic, database table definitions, and security settings. Within a Web application, the overarching control structure -- which guides how user activity moves from one page to the next -- is the Web flow. It begins at a starting point represented by an anchoring node affixed to a directed arc on the Service Studio's design canvas that serves the same purpose as the main() function in a C program. It also corresponds to a Web page (such as an .ASPX page) that is the "entry point" to your application.

Nodes that you deposit along an arc's path can either perform control operations (if-then decisions) or execute processes, and some processes can transition to other Web pages. At runtime, an application begins execution in the starting Web flow. As the user interacts with onscreen controls, such as click buttons, the runtime will execute screen actions -- event handlers triggered by the user-generated event -- and these screen actions shepherd application execution into new Web flows.

You construct the HTML that will be displayed on a Web page via a Web screen editor. This editor works in WYSIWYG fashion: You type into the Web screen and Agile Platform generates the appropriate HTML code. The process of creating individual Web pages is similar to building ASP.Net pages in Visual Studio: You freely mingle HTML with controls that you drag and drop onto the Web screen editor's canvas.

Controls trigger actions. Suppose you've created a button that saves data in a database. When you define the action triggered by the button's being pushed, you are taken to a development screen that shows another flow diagram consisting of a Start node connected to an End node. On the left, you have a hierarchical tree control filled with tools. Sublevels show categories such as User Actions, Entity Actions, Timer Actions, and so on. You can drag these actions onto the arc to define operations that are performed when the button is pushed and execution flows from start to finish.

Service Studio has plenty of controls and widgets to choose from, ranging from the simple (buttons) to the complex (form widgets). For example, the data edit widget will automatically build a form for editing data within a database table. Drag and drop it onto the screen, and it will construct its default appearance by reading the associated table, determining its field attributes, and constructing onscreen labels accordingly.

Service Studio can employ AJAX in its user-side components. If you add your own components to the Agile Environment, they can use any of the popular JavaScript libraries to handle AJAX request -- libraries such as jQuery, Prototype, Dojo, and so on.

An entity is Agile Platform's representation of a database table. Whenever you create an entity, the platform will automatically build associated actions: Create, CreateOrUpdate, Delete, Get, and so on. From there, the system already "knows" what activities you will likely perform on that entity and builds the necessary code for performing those actions. You can drag that code into your application whenever you wish.

Finally, Service Studio can create Web services and Web applications. You can expose any piece of an application's business logic as a standard Web service, and the Agile Platform will automatically create all the WSDL signatures and mappings so that the service can be used by other applications. Similarly, Service Studio can also consume Web services. Enter the WSDL address, and Service Studio will fetch the method definitions and data structures, and make them available as visual building blocks that you can drag and drop into your application.

There is a bit of a learning curve to Agile Platform. Developers accustomed to jumping directly into source code will need restraint. Although the environment doesn't prohibit that, you'll be thwarting its intent if you try to escape its paradigm too quickly. Code, in other words, should be your last resort.

Read the next review: MLState OPA 2.0 Beta

1 2 3 4 5 6 7 Page 5
Page 5 of 7