Here's one real-world scenario in support of the occasional requirement to
include "view" instructions in the "model" component: I have a HTML variable
for an error message and there may be several error messages.  Adding a
"<BR>" to force each message to start on a new line, and possibly using some
(variable) color-coding of error messages, significantly increases the
usability of user interface.  Should I give users a poor-quality UI?  No.
Will this complicate conversions, rewrites, upgrades?  Yes, but I hope the
improved user efficiency will offset the incremental (scan for "<BR>",
replace it with something else, etc.) cost of the conversion.

Having 100% isolation between every element in the model-view-controller is
nice theory but hard to implement in a cost-efficient matter (that comment
will bring out the vendors!).  Even in the 5250 environment, we had two
sizes (*DS3, *DS4; we'll forget the S/38 console); monochrome/color, and
various flavors of WS controllers.  While compatibility existed at the
lowest level (5250 vs. 3196, etc.), you're limiting yourself at a geometric
rate (if you have 90% compatibility with each of three elements, you really
only have 72.9% (.9 x .9 x.9) compatibility.  To do the best job in the
"model", you have to understand the view and controller.  I see all
components as highly sensitive to the capabilities of the others.

Brad's words regarding embedding DDS in your program are correct if you
don't consider the program-to-system variable function that allowed you to
set a field's attribute (except for the all-important "PC" attribute)
directly in the program.

-----Original Message-----
From: web400-admin@midrange.com [mailto:web400-admin@midrange.com]On Behalf
Of Brad Stone
Sent: Sunday, January 13, 2002 1:07 PM
To: web400@midrange.com
Subject: Re: [WEB400] First Internet application

Loyd, again I agree to a certain point.  The reason I asked
my questions is because it was said changing the user
interface requires no programming.  It wasn't explained that
this did not mean adding or removing input fields.

To some, they may assume this.  I just wanted to make sure
it was understand that it was not that easy.  Thanks for
defining what this "change" was.

Now, controlling "how" data looks really consists of two
layers.

1.  How the data itself is presented, ie a table, dropdown
box, list, text box, etc.
2.  How the data "looks".  ie. it's style.  This can easily
be done using stylesheets, font HTML codes, etc.

I assume you are referring to #1 when speaking of templates.

Templates can make your job easier, yes.  But as the
projects become more complicated, the templates (which will
multiply very quickly) do as well.  Changing the display of
data from a table to a dropdown box is not always as easy as
changing the template.

I created quite a large system for the company I used to
work for.  I did not use templates (that doesn't mean I
don't think they are a valuable option).  Instead, I chose
to put the "how" into the programming using control files.
This way the user of the pages themselves could choose what
data is displayed, and how it was displayed using simple
interfaces.

In this case, there were not actual html files to change.
And each user could have their own unique display, including
what data, how it was displayed, and what display attributes
were used (font, color, etc...)

As far as "you shouldn't ANY put HTML in your CGI programs",
I just disagree.

You say that you don't put DDS keywords in your programs.
That should read "you really CAN'T" put DDS keywords in your
programs.

If you could put DDS keywords into your RPG programs, I can
know that people would.  You can already control color,
positioning and other attributes for display files using RPG
programs (similar to using Stylesheets with HTML).  If it
were easy to build an "on the fly" display file as it were
an HTML page, I wager it would go over quite well.

Also, the two are really not good comparisons of a user
interface.  HTML web pages are not near as interactive as a
display file.

There are more than five ways to skin a cat, and there will
be more in the future.  I just don't like it when people say
"you shouldn't do this", especially when it's to sell a
product or service.  In reality, most (even outside the
iSeries arena) do put HTML in their CGI applications.  And
to little or no consequence.  And I'm not talking about head
to toe HTML in a CGI program.

Take care,

Brad
www.bvstools.com

On Sun, 13 Jan 2002 11:20:26 -0600
 Loyd Goodbar <loyd@blackrobes.net> wrote:
> 1. When we talk about "a change to the user
> interface...", it doesn't mean
> user interface elements such as new input fields, but the
> presentation of
> data. It's totally understood that if new input is
> required from the user, the
> program must necessarily change. Duh. But, CGIDEV2,
> Nathan's Relational-Web,
> and FastTemplate (Perl or PHP, take your pick) allow the
> program to dump all
> that nasty HTML code to template files.
>
> The template defines HOW to display the output. All the
> program should do is
> fill in variables. This way, you can change the
> presentation without
> changing/recompiling the program supplying the data. Want
> to change from 3
> columns to 3 stack? Change the template. Want to
> italicize or boldface an
> item? Change the template. Want to add a new field to the
> output? OK, then you
> need to change both the template and the program.
>
> Properly constructed, you never need to recompile the
> program when you change
> the template. Program = WHAT, template = HOW.
>
> 2. This is not saying a program is not needed, but that a
> program should not
> contain HTML. CGIDEV2 is all about RPG (and COBOL), and I
> use it because it
> provides a separation between what I display and how I
> display it. As a matter
> of fact, if I wanted to create XML, I could do so easily
> by creating an XML
> template file (using the same section and variable
> names), and (probably) only
> add selection logic to the RPG program to determine which
> template to use.
>
> NOTE: I do not work for Relational Data, and I do not use
> Relational Web. I do
> not resell their product.
>
> Examples of CGIDEV2, Relational-Web, and NET.Data can be
> found here:
> <http://www.relationaldata.com/p.roducts/rweb/cgi/mainfs.htm>.
> All allow for
> some degree of HTML/logic separation. Relational-Web &
> CGIDEV2 allow the most,
> and NET.Data mixes HTML + macros.
>
> You do not put DDS keywords in your RPG programs. Why
> should you put HTML
> keywords in your programs?
>
> HTH,
> Loyd
>

_______________________________________________
This is the Web Enabling the AS400 / iSeries (WEB400) mailing list
To post a message email: WEB400@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/web400
or email: WEB400-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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.