Introducing ManyDesigns Portofino 3.0 beta 1
|
September 29th, 2009
We're introducing ManyDesigns Portofino 3.0 beta 1, in preparation of our upcoming major release 3.0. What's new? In one short sentence: productivity and flexibility at the same time. Many of you have chosen Portofino 2.0.x for the model-driven approach and for the productivity it provides. In a very short time, you've been able to create applications that look great and have rich functionality for information management, workflows, user management, charting and reporting. Now that you've learned the framework, you're pushing its boundaries, and want more than the standard functionality. You're interested in custom operations, i.e., pages that provide additional functionality while staying integrated in the application model, navigation, and look & feel. Also you're interested in customizations: adding your branding, changing the page layout, overriding the behavior of the standard functionality. You want the flexibility of custom development, while maintaining the productivity of the model-driven approach. You want a Portofino that is more open architecturally and that exposes its building blocks (the visual and functional 'elements') so that you can reuse them in your own way and be productive. In Portofino 3.0 we've addressed all these needs. With this beta we present the main changes and make the software available for download in binary and source form. For more details about the "productivity and flexibility at the same time" concept, make sure you read the section 'Simpler customization and extension' below. For more details about the new great functionality we've put in this new versions, you can read the rest of the sections (from 'User management') below. This beta version is still subject to change, so we do not recommend it for use in production. See the notes below in the text for areas that still need attention. We recommend this version for testing and welcome your feedback on the public forums.
Simpler customization and extension
|
| Portofino 2.0.x | Portofino 3.0 (beta 1) |
| Servlet based. | Apache Struts based. Full Model-View-Controller separation. |
| Centralized web.xml configuration. | Modular struts.xml configuration or using annotations. |
| Branding, page graphics and layout can be customized only through css stylesheets. | All the pages and major page fragments (header, footer), have their own jsp. Branding, customizations or major make-overs are easy. |
| All classes have the same CRUD interface. | Each class, if needed, can have its own specialized CRUD interface. |
| The 'components' that make up Portofino's pages are not visible to the application developer. Writing a custom page with the same look and feel as Portofino's standard pages is difficult. | ManyDesigns Elements are exposed to application developers. |
| Use Portofino as a whole. | Use Portofino as a whole or any parts of it, depending on the needs at hand. |
User management
- Richer user data model, for better security and audit:
- user creation date
- last password change date
- failed login attempts
- "must change password" flag
- previous passwords not to be reused
- User self registration, with email verification and optionally admin approval.
- Self-service password reset via email.
- Cyphertext passwords (SHA1) stored in the database.
- Extensive functionality for administrators.
- User workflow: registered, email verified, active, suspended, banned, removed.
- Automatic user suspension after a maximum number of failed login attempts.
- Configurable minimum password length.
- Configurable password expiry.
Email management
- Email queue stored on the database.
- Automatic resend on SMTP server error.
- Email bouncing verification (through POP3 polling) and user flagging.
Decimal attributes
- Any precision and scale.
- Decimal format (decimal separator, thousands separator, currency symbol, percentage, etc.)
Cleaner URLs
The class' name, which previously was a parameter, has become a part of the URL. For example:http://127.0.0.1/portofino/Read?class=myClass&id=20
becomes:
http://127.0.0.1/portofino/myClass/Read.action?id=20
The new URLs apply to all actions involving classes.
Automatic installation and upgrade
No more separate sql script files are required to install or upgrade between versions of Portofino.To install, simply define your database connection in the portofino-custom.properties file, deploy the war and Portofino will populate the database automatically.
To upgrade, simply replace the old war with the new one and follow the on-line instructions. Portofino will detect the existing database version and upgrade it to the current one.
Notice for version 3.0 beta 1: more testing is required on the upgrade process. If you have a previous model developed with Portofino 2.0.x, try the upgrade process and give us your feedback. As with all migrations, make sure you back up your database before starting the process!
The installation is available for PostgreSQL, MySQL, Oracle, MS SqlServer and Derby, while DB2 is not yet supported in version beta1
Upgrade process is available for PostgreSQL, MySQL, Oracle, MS SqlServer and Derby.
"Don't link" classes
Certain classes exist only so that their objects provide values for selection boxes. For example: a class 'Priority' with three objects 'high', 'medium' and 'low'.A class marked as "don't link" enforces this semantics.
Immutable attributes
An immutable attribute allows its value to be set at object creation, but doesn't allow later updates.Immutability was already present in Portofino 2.0.x, but applicable only to relationship attributes. Since version 3.0 (beta 1), immutability applies to any type of attribute.