ManyDesigns Portofino

ManyDesigns Portofino
ManyDesigns Portofino
ManyDesignsPortofinoScreenShot.jpg
Developer(s) ManyDesigns srl
Stable release 3.1.10 / 22 March 2011
Written in Java
Operating system Multi-platform
Type Web application framework
License [GNU_General_Public_License
Website manydesigns.com

ManyDesigns Portofino is an open-source web application framework written in Java, supporting several commercial and open source databases, and based on the Struts2 MVC framework. It follows the principles of model-driven engineering.

Portofino addresses the needs of small to medium size projects, such as productivity and short development time, while ensuring enterprise qualities such as robustness and maintainability. A small to medium size project here means an application with CRUD on 10-20 database tables, one or two workflows with different user roles, permissions, on-line/printed reports, and some integration with existing systems.

Portofino is developed by ManyDesigns srl and distributed under dual-licensing. The open source license is GPL v3 with FLOSS exception.

Contents

Model-driven approach

Portofino follows the principles of model-driven engineering, model-driven development[1] and domain-specific modeling. Applications are written by defining a set of logical models, which describe the application's structure and functionality. In this sense, models serve the same purpose as general-purpose programming languages, but at a higher level of abstraction.

Domain-specific models

Portofino supports models of various types:

  • Data model: made of classes, attributes and relationships, automatically mapped to their databases counterparts (tables, columns and referential integrity).
  • Workflow model: made of states, transitions and guards.
  • User model: made of a few core classes to describe the system's users and user groups.
  • Permission model: the intersection of the data, workflow and user models, technically implemented through permission matrices with the purpose of defining the system's access control policy.
  • Calculated attributes: the automatic calculation of certain attributes based on other attributes, using a syntax similar to spreadsheet formulas.
  • Constraints model: based on calculated attributes, handles advanced field validations and semantic rules that can span multiple attributes.
  • Reporting model: the integration of reporting libraries (JFreeChart and JasperReports) in a model-driven, high-productivity environment.
  • Notification model: for the communication of system events to the user via email.

All these models can be considered domain-specific, as their scope is the domain of web applications. Some models (e.g., for data and workflows) can be considered as general-purpose. However, in Portofino they are used in a way that is specific to web applications (e.g., CRUD operations).

Generated user interface

Portofino automatically generates the user interface based on the model definition. It can include:

  • forms (create-read-update-delete operations)
  • navigation of relationships
  • searches with flexible multiple filtering
  • full-text searches
  • workflow operations
  • breadcrumbs
  • read/write fields based on permissions
  • field-level and semantic validations
  • cascaded selections
  • user management
  • user self-registration and password recovery
  • binary files upload
  • interactive dashboards/portlets with drill-down
  • parametric reports in pdf and other formats

Database support, abstraction and refactoring

The following database technologies are supported.

Closed source:

Open source:

Portofino provides an abstraction layer for Data Definition Language (DDL). Despite the presence of ISO standards, this area is heterogeneous across vendors. The abstraction layer isolates the user from several differences, including:

  • Data types
  • DDL syntax
  • DDL functionality (e.g., while certain databases do not allow resizing of VARCHAR columns, Portofino provides a transparent solution for all databases).
  • Behavior of nullable unique columns. Portofino enforces an ISO-compliant three-value logic on databases (Microsoft SQL Server) that would not support it natively.

Portofino also solves the problem of applying model changes to a database that is already populated with data. This is done by an extensive use of ALTER TABLE statements, which preserve existing data, as opposed to CREATE TABLE statements that assume an empty database. This produces an incremental approach to development, similar to refactoring, favorable to agile methods.

History

Portofino was originally released in 2006 as a closed-source application. In February 2009 is was released in open-source under a GPL v3 license with FLOSS exception.

The main releases are:

  • Portofino 1.0 (March 2006): original development, supporting Oracle and PostgreSQL.
  • Portofino 2.0 (January 2008): Added support for DB2, SQL Server and MySQL.
  • Portofino 2.0.12 (February 2009): First public open-source release. Support for Derby.
  • Portofino 3.0 (November 2009): Struts2-based MVC for internal structure, extension and customization. Extended user management and self-registration.
  • Portofino 3.1 (March 2010): Physical model simplification on database.

In 2006 Portofino received the Perotto award[2][3] in the industry section.

See also

References

  1. ^ G.Granatella, April 2010, "Model Driven Development con ManyDesigns Portofino", Computer Programming, Vol.18 n.2
  2. ^ A.Giangreco, November 2006, "Il software vincente per costruire altri software", Liguria Business Journal, Year 2 Issue 11(12)
  3. ^ Dixet, October 10th, 2006, "Datasiel: il premio Perotto per il sociale"

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Commercial open source applications — Open source software is widely used for private and non commercial applications. In addition, many independent software vendors (ISVs), value added resellers (VARs), and hardware vendors (OEMs or ODMs) use open source frameworks, modules, and… …   Wikipedia

  • Список коммерческих приложений с открытым исходным кодом — В данном списке представлены наиболее известные примеры коммерческого прикладного программного обеспечения, в большей части или целиком построенного на базе компонентов с открытым исходным кодом. Содержание 1 Бизнес модели коммерческих приложений …   Википедия

  • Metamodeling — For other uses, see Meta model (disambiguation). Example of a Geologic map information meta model, with four types of meta objects, and their self references.[1] Metamodeling, or meta modeling in software engineering and systems engineering among …   Wikipedia

  • Model-driven engineering — (MDE) is a software development methodology which focuses on creating and exploiting domain models (that is, abstract representations of the knowledge and activities that govern a particular application domain), rather than on the computing (or… …   Wikipedia

  • Comparison of web application frameworks — This is a comparison of notable web application frameworks. Contents 1 General 1.1 Perl 1.2 PHP 1.3 Java 1.4 Python …   Wikipedia

  • Domain-driven design — (DDD) is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of the core business concepts.[1] The premise of domain driven design is the following: Placing the project s primary focus …   Wikipedia

  • Сравнение каркасов веб-приложений — Это сравнительная таблица фреймворков веб приложений. Содержание 1 Фреймворки 1.1 ASP.NET 1.2 C++ 1.3 ColdFusion Markup Language (CFML) …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”