Wednesday, July 21, 2010

WaveMaker Emerges As PowerBuilder Alternative

Rich Bianco over at the Displaced Guy blog just wrote a post entitled WaveMaker delivers for the cloud like PowerBuilder did for client-server. In it, he talks about using WaveMaker to migrate PowerBuilder applications to Java.

He makes a number of great point in his post. Here are the key take-aways

1. PowerBuilder is a powerful product but developers need a rich internet alternative.
"I’ve spent most of my career doing PowerBuilder development against every major DBMS and I still believe it offers productivity beyond anything on the market for client-server applications. But the writing is on the wall for client-server and rich internet applications and WaveMaker are the future."
2. WaveMaker is particularly easy to learn for PowerBuilder developers because it uses the same visual development and data window-like concepts
"WaveMaker is the first development tool since PowerBuilder to catch my attention and keep it. WaveMakers’ claim of building a functional enterprise web application without needing to write Java code is for real. In a single day, I’ve taken an existing PHP / MySQL web 1.0 application and re-created a good portion of the core functionality using WaveMaker."
3. WaveMaker is just plain fun, particularly for PowerBuilder develop

"From the day I downloaded WaveMaker and gave it a test run I knew that it was the next step for me as a former PowerBuilder developer. Not and not only am I still having a blast but I feel as confident as ever to tackle the challenge of developing enterprise web applications, or robust SaaS solutions."
It has taken WaveMaker almost 3 years to build a worthy replacement for PowerBuilder. We certainly have not achieved the full breadth of functionality that developers can get from mature client/server tools like PowerBuilder, MS Access and Oracle Forms. However, for developers who want a fast and easy way to build Web 2.0 applications, WaveMaker rocks!

Thursday, July 15, 2010

Best Practices - Replacing Microsoft With Open Cloud Tools

A recent survey of WaveMaker's 15,000 developers found that over 20% had moved to WaveMaker as an alternative to Microsoft development tools like MS Access and MS .NET.

"Microsoft shops" typically employ a variety of Microsoft products and have dozens to hundreds of applications that now need to be migrated.

Having worked with many companies going through this migration process, here are some best practices I have seen:
1. Triage, triage, triage - figure out which apps are really critical to your business/users and focus on them. Often, as you migrate them from Microsoft to WaveMaker you will find that you can combine several clunky client/server apps into a single rich internet application.
2. Good tools make open a lot easier - WaveMaker hides most of the alphabet soup web technologies from the user (html/css/javascript/java etc). This flattens the learning curve to get out from under all those MS technologies. From our survey, we found that fear of the steep web development learning curve is one of the main reasons companies stick with the proprietary Microsoft tools.
3. Open can be a lot more productive - we find that MS .NET apps can typically be rebuilt in WaveMaker with 80%+ fewer lines of code. See the Nationwide video on the WaveMaker web site for a case example that resulted in 98% fewer lines of code! That translates to big savings in productivity and quality, both in development and maintenance.
4. Open is still a bit messier - even though WaveMaker hides most of the hard stuff, it can't hide all of it. Microsoft's great advantage is that everything is tightly integrated into one convenient but proprietary package. In contrast, WaveMaker integrates with many databases, report writers, etc, which is more flexible but puts more work on the developer to manage their environment.

In short, open source and easy to use tools like WaveMaker provide a much gentler path for migrating from the Microsoft Borg to the wonderful world of open standards, but there is still a cost for all that flexibility.

Tuesday, June 29, 2010

Alternatives to Microsoft Access from kmfms.com

The KMFMS web site (the name stands for "kein mitleid fur Microsoft" = "no sympathy for Microsoft") is a labor of love by Timothy Macinta, a Java programmer (and published author on Search Engines) who is getting the word out on free and open source alternatives to Microsoft.
If you're sick of the unreliability, the bloat, the insecurity, and the perpetual upgrading associated with Microsoft products you'll be happy to know that there are some excellent alternatives out there.
KMFMS includes several very good sections:



Friday, May 28, 2010

Free Alternative To Microsoft Access - WaveMaker

Enterprises are increasingly moving from proprietary platforms like Microsoft Access to open Java platforms. Yet migrating Access applications and re-training Microsoft Access developers to use standard Java tools can be time consuming and costly.


There is a very steep learning curve for MS Access developers to use complex coding frameworks like Java/J2EE. A visual development tool like WaveMaker can flatten this learning curve - minimizing hand coding while generating standard Java applications.


Industry best practices for modernizing MS Access Applications include:

  1. Rebuild the schema: create a new relational schema that reflects SQL best practices rather than trying to simply recreate the Access schema in a relational database.
  2. Clean the data: extract the data from the Access database, cleanse the data, then import the data into a new relational database
  3. Rewrite the application: rebuild the Access application using open and standards-based development tools like WaveMaker.

Open Alternative to MS Access - WaveMaker

WaveMaker is an open source, visual development environment that provides an easy way to move Microsoft Access developers and applications to open Java standards. The following screenshot shows the WaveMaker studio:
















WaveMaker's visual, drag and drop development tools are easy for Microsoft Access developers to use, while generating standard Java applications. WaveMaker's WYSIWYG studio is ideal for developers who want to focus on creating enterprise applications, not coding.


Over 15,000 developers depend on WaveMaker today, including Fortune 500 customers like Macy's, National City Bank and Pioneer Energy. WaveMaker is available as a free, open source Community Edition or in a Enterprise Edition that adds commercial security, scalability and support.


The following table compares MS Access and WaveMaker:

Features

MS Access

WaveMaker

How does it work?

Visual builder for desktop apps

Visual builder for web 2.0 apps

Who should use?

Departmental developer

Departmental or enterprise developer

When to use?

Dept apps with few users

Enterprise apps, up to 1000s of users

Model definition?

Visual definition of tables

Visual definition or database import

View creation?

WYSIWYG definition of forms

WYSIWYG definition of forms

Custom logic?

Custom logic in Visual Basic

Custom logic in JavaScript, Java

Building a WaveMaker application is as simple as following an iterative, three step process based on the Model-View-Controller (MVC) design pattern:

  1. Define application data (model). The model defines the data used in the application, including database tables and relationships between tables. The developer specifies this information by importing an existing database schema or using a visual data editor.
  2. Create web pages (views). WaveMaker can create default web pages to create, read, update and delete data directly from database schema, or the developer can create new web pages using a drag and drop screen builder.
  3. Connect data to web page elements (controllers). WaveMaker provides visual tools to connect data and events with visual elements in the application such as buttons and datagrids. The developer can define new actions using a visual action editor that call web services or custom code modules written in Java or JavaScript.

Motivations and Issues in Modernizing MS Access Applications

Access is the default choice of departmental developers with moderate technical skills. Often, Access applications are built by downloading corporate data to Excel, converting the spreadsheet to an Access database, then adding ad hoc forms and reports. Because they grow organically, these applications usually lack formal requirements.

Many developers are finding increasing pressures to migrate Access applications to more open and manageable platforms:

  • Low data quality: Access applications often have out-of-date corporate data or corrupt data based on poorly defined schemas.
  • Poor security: Access applications do not integrate with corporate security and do not allow advanced security such as role-based access controls.
  • Limited manageability: Access applications can not be centrally managed by IT
  • No web-based distribution: Access applications cannot be accessed over the web
  • SOX compliance: Access applications are often identified in corporate audits as a significant source of risk.


Because MS Access applications were often created in an ad hoc fashion, migration can pose particular challenges. These include:

  • Data migration issues: MS Access data conversion is often complicated by poor schema design and even low data quality.
  • Application migration issues: MS Access applications often contain logic or design errors in their forms and reports, making them impossible to convert automatically.

Addressing Data
Migration Issues


Many databases provide automated conversion utilities. For example, MySQL provides a data migration tool, the MySQL Migration Tool. However, this tool is only as good as the underlying schema and data of the database to be converted. Because schema and data quality issues are so pervasive with Access, developers sometimes find it easier to rebuild the data schema from scratch.

The two most common data quality issues with Access migration are:

  • Access data schema is not SQL-ready: Access developers are typically not familiar with the basics of SQL schema design. Access schemas often resemble an Excel spreadsheet. For example, the schema may lack primary, foreign key, and referential integrity constraints.
  • Access data is not clean: in part because the tables were not defined rigorously, the data in Access databases is often corrupt.

Addressing Application Migration Issues

Porting the data from Access to a relational database only addresses part of the problem. There is still the issue of what to do with the forms and reports associated with the Access application.

In addition, it is often possible to consolidate multiple Access applications into a single web application. Similarly, it is often possible to consolidate several Access forms into a single, well-designed web page.

Although there are tools available that automate the conversion of a MS Access application to Java, developers often report little success with automated conversion. Instead, the preferred approach is to port MS Access applications to standards-based Java using a visual development platform like WaveMaker.


While is possible to use ODBC to access relational data from Access, most developers choose to rewrite the application. The reasons for rewriting Access applications include:

  • Quality issues: many developers feel that the logic for MS Access applications is suspect and would rather recreate the logic on an open platform like Java.
  • Desire to make application web-based: most developers would prefer to migrate “legacy” MS Access applications to more robust web architectures.
  • Security requirements: developers often want to add “enterprise” security features like Siteminder/LDAP authentication and role-based access controls.

A Process for Modernizing MS Access Applications Using WaveMaker

The consensus of most developers is that automated conversion tools for MS Access do not work. Instead, the best practice for Access migration is to rebuild the schema, cleanse the data and then rewrite the application. This is the only way to ensure that the resulting application is of sufficient quality to be maintainable.

This lays out a step-by-step process to migrate an MS Access application to open Java using WaveMaker:

  1. Rebuild the schema: create a new schema in a relational database like MySQL that reflects SQL best practices rather than trying to simply recreate the MS Access schema in a relational database. Ensure proper definitions for the following elements
    1. Primary keys
    2. Indexes for common search and join columns
    3. Foreign keys for all relationships, along with cardinality constraints and delete propagation constraints
    4. Default values for columns and Null-allowed columns
    5. Views
  2. Clean the data: extract the data from the MS Access database, for example by using a data migration tool or a simple .CSV export. Before importing the data, perform data cleansing:
    1. Ensure primary key uniqueness
    2. Ensure referential integrity: check that primary key exists for all foreign keys, ensure foreign key uniqueness for 1..1 relationships
    3. Ensure that non-null columns have a value
    4. Ensure that data types agree, particularly for date, integer, decimal data types
    5. Import cleansed data into new relational database schema
  3. Rewrite the application: review the forms, reports and queries of the Access application and re-design them to follow Web 2.0 best practices. Rebuild the application forms and reports using web tools rather than trying to convert the existing application and scripts.
    1. Import relational data schema into the WaveMaker visual builder
    2. Create new web pages that provide graphical interface for application using the WaveMaker page designer
    3. Define actions that provide needed functionality for application using the WaveMaker action editor, custom Java or JavaScript code, or web services.

In summary, best practices for Access migration require careful migration of data to a new schema along with a requirements-driven rebuilding of the application forms and reports using web-based development tools like WaveMaker.

Other resources

There are a number of additional resources on the web describing MS Access modernization: