| By Gian Luca De Bonis | Article Rating: |
|
| March 19, 2008 12:00 PM EDT | Reads: |
3,598 |
Guesswork About the Effect of Work in Design Time
All changes have to be carefully checked in runtime. Consider, for
example, the properties that are changed dynamically, the size of the
DataWindow controls (number of rows displayed), the alignment of
controls present in several tab pages (difficult, since they aren't all
visible simultaneously), or multiple DataWindows, SQL statements with
dynamic where conditions.
Trial and Error
The iterations between
design time and runtime contain a strong element of trial and error,
with each cycle taking time and possibly introducing new errors. This
process is often extremely tiresome and many applications fail to
achieve the quality standards desired by end users, especially when it
comes to the UI or error messages.
Special skills needed at the review stage
The review of certain parts of the application (UI, user terminology and messages, interaction between windows) often involves getting input from colleagues, graphic designers, clients (the boss...). However, design time activities must be carried out in the development environment, which requires:
- Access to all or some of the current source code
- Availability of the development environment
- Knowledge of the underlying applications logic
Runtime-Driven Approach
The development cycle using Rex is somewhat different (see Figure 5):
- Runtime activity (by developer, colleagues, test engineers, end users...):
- Discover, understand (similar to the traditional approach, but with sharper tools)
- Use available plug-ins to explore specific aspects (status of buffers, contents of Data-Stores, dynamic SQL statements)
- Make changes (possibly simulating the effects in runtime)
- Write to the log file, which can be sent to multiple recipients for review
- Review of proposed changes in Rex IDE, accompanied by notes and precise indications about how they should be implemented
- Design time activity:
- Send the changes to ESC, which changes the source code automatically, producing the desired result the first time without iterations
- Create reports (to-do lists) for changes that can't be implemented automatically (e.g., notes added by a test engineer about how to reproduce an error)
- Return to runtime:
- Run the application to look for new changes
The new "right first time" runtime-driven development cycle introduces a higher level of precision and assists productivity by eliminating trial and error. In addition, certain activities that used to be an overwhelming challenge (aligning controls in multiple tab pages...) are a simple matter when working directly in runtime.
Of course, the runtime-driven approach can't fully replace the traditional approach. You still have to work on an existing application, since (for the moment!) it's not possible to create a new application from scratch directly at runtime. However, when it comes to "tuning" the application, runtime tools are more powerful and precise.
Runtime-Driven Approach: Collaboration
As
mentioned, the runtime-driven approach facilitates collaboration
(involving other developers, graphic designers, power users) since they
don't have to physically sit down alongside the developer to do a
review. They can simply submit a log file for consideration.
Conversely, it's possible to work with them on the current source code, since the ESC transactions can be reapplied at any time. This means that development work can continue while the review process is still underway, without having to worry about comparing versions and making manual alignments subsequently.
Enable Source Change
All the Rex components are
important in the runtime-driven development cycle. This said the key
element of this approach is represented by Enable Source Change.
ESC updates the source code by processing change transactions that can be cancelled/repeated. The Rex IDE is used to manage ESC, which, if desired, can also process command scripts. Three types of source code changes are currently possible:
- The value of a property of a control
- The value and/or expression of a property of a DWO
- The script of a method (event, function, sub-routine)
Other change types are already planned, such as:
- Change Ancestor, e.g., create a new ancestor class for existing objects
- Substitute method call, e.g., replace system functions with user-defined functions (messagebox -> of_messagebox)
- Add to script, e.g., add a specific command at the start or end of a script
Published March 19, 2008 Reads 3,598
Copyright © 2008 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Gian Luca De Bonis
Gian Luca De Bonis is CEO/CTO of Enable Development, a London-based software house. He has considerable international consultancy experience, primarily focused on PowerBuilder, database technologies and software engineering.
- Why SOA Needs Cloud Computing - Part 1
- Cloud Expo and The End of Tech Recession
- The Transition to Cloud Computing: What Does It Mean For You?
- A Rules Engine Built in PowerBuilder
- Sybase Named “Silver Sponsor” of iPhone Developer Summit
- How PowerBuilder Got Its Groove Back
- The Cloud Has Cross-Border Ambitions
- Ulitzer Names The World's 30 Most Influential Virtualization Bloggers
- Ulitzer Named "New Media" Partner of Greatly Anticipated iStrategy Event in Berlin
- Risks and Enterprise Mobility?
- Steps for Success in Enterprise Mobility?
- Are Mobile Luddites Resisting Mobility?
- The Difference Between Web Hosting and Cloud Computing
- Sybase CTO to Speak at 4th International Cloud Computing Expo
- Why SOA Needs Cloud Computing - Part 1
- Cloud Expo and The End of Tech Recession
- The Transition to Cloud Computing: What Does It Mean For You?
- Five Reasons to Choose a Private Cloud
- Seeding The Cloud: The Future of Data Management
- The Threat Behind the Firewall
- Economy Drives Adoption of Virtual Lab Technology
- Tips for Efficient PaaS Application Design
- A Rules Engine Built in PowerBuilder
- Sybase Named “Silver Sponsor” of iPhone Developer Summit
- Where Are RIA Technologies Headed in 2008?
- PowerBuilder History - How Did It Evolve?
- The Top 250 Players in the Cloud Computing Ecosystem
- Custom Common Dialogs Using SetWindowsHookEx
- DDDW Tips and Tricks
- OLE - Extending the Capabilities of PowerBuilder
- DataWindow.NET How To: Data Entry Form
- Book Excerpt: Sybase Adaptive Server Anywhere
- Sybase ASE 12.5 Performance and Tuning
- Working with SOA & Web Services in PowerBuilder
- Office 2003 Toolbar: A New Look For Your Old PowerBuilder App
- Dynamically Creating DataWindow Objects






























