× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of albartell
Sent: Tuesday, October 02, 2007 4:33 PM
To: 'RPG programming on the AS400 / iSeries'
Subject: RE: MVC in RPG?

OK, let's look at this another way. Using "Classic I/O", you would
have to
find all the code that references the field anyway, so you
aren't losing anything there.

In the same breath we have to count the hours we saved NOT
having to write DB I/O code, and measure it against the time
spent having to check all references to a column that are
"hard linked" in code.

Actually, just as easy with a getField() procedure as all the cross reference tools I've seen can
return Procedure where used in addition to Field where used.

As far as hours spent writing the DB layer. As Chris and Joel indicated, if you want to do this for
real, you write a generator that will build 90% of what you need for a given file. I'm pretty
confident that you could come up with a pretty decent generator in a few days if not hours Aaron.
<grin>


As for the rest of your post, you are trying to guard against
projects where you don't have time to plan for all current
business logic and instead default to putting a veneer over
DB2 to protect your data. The more we collaborate the more I
think you want veneers not for DB I/O but instead for
business logic changes. And if that is the case I think a
better approach would be to develop based on function vs.
tables. For instance, instead of coding all of the DB I/O
for the 5 files it takes to calculate a price you could
instead code two procedures named Price_getWholesale and
Price_getRetail.

This would be the business logic layer I mentioned that I like to add on top of the DB layer.

The BL layer is public, the DB layer is protected and only accessed by functions within the *SRVPGM.

I'm strongly against having getters directly accessible. It makes it entirely to easy to write:

If getCustActFlag() = 'Y';
in a hundred different places which is fine until the day the logic changes from a simple Yes/No in a
given field in one file to something else. I'd much rather have a CustomerIsActive() function in the
BL layer.

Charles



Charles

This e-mail transmission contains information that is intended to be confidential and privileged. If you receive this e-mail and you are not a named addressee you are hereby notified that you are not authorized to read, print, retain, copy or disseminate this communication without the consent of the sender and that doing so is prohibited and may be unlawful. Please reply to the message immediately by informing the sender that the message was misdirected. After replying, please delete and otherwise erase it and any attachments from your computer system. Your assistance in correcting this error is appreciated.


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.