![]() | |
#21
| |||
| |||
|
|
"Tony Gravagno" wrote: Why write code in Javascript when you can do it in Pick BASIC? Fundamentally because there are things you'd like to do client-side... How would you, for example, have a button on a form that uploads a scanned image? In general, you may need activeX or other aids. |
|
I'm similarly unaware of caching for any technology where the UI is dynamically manipulated by the server. These concepts are at odds with one another. Chandru pondered: Hmm, yes and no. A form could be a static html page(s) which is(are) dynamically altered by (say) javascript. The static page(s) could then be cached so they do not contribute to network traffic after initial transfer. This does not preclude all kinds of UI manipulation after the initial static load. |
#22
| |||
| |||
|
|
I believe Visage does cache page definitions in the DBMS or elsewhere, |
|
If Visage generates metadata that gets cached then it loses the ability to behave dynamically. |
#23
| ||||
| ||||
|
|
Sorry for the delayed response. I've cut my CDP time so more considered responses to threads like this only get done as time permits. "Chandru Murthi" wrote: "Tony Gravagno" wrote: Why write code in Javascript when you can do it in Pick BASIC? Fundamentally because there are things you'd like to do client-side... How would you, for example, have a button on a form that uploads a scanned image? In general, you may need activeX or other aids. A document that tells developers how to upload files was written by Symeon Breen and it's available to all DesignBais developers. I agree that you may want other functions that are usually implemented with scripts, or even by embedding Java, ActiveX, etc.. But taking a position that's been held by many people here, I'd maintain that more complex functions shouldn't be written by individuals but provided as part of the product. To balance between both arguments, I've written a couple blog articles about adding custom code into the DesignBais UI, and I offer services for those who aren't familiar with non-MV technologies I almost always argue on your side "shouldn't be written by individuals but |
|
BTW, my latest blog entry is the first in a series on hacking DesignBais. Check it out: http:// removethisofcourseNebula-RnD.com/blog For what I call "business-professional" web applications there is almost never a business 'need' to use scripts given the features available in this software. 'Want' and 'need' are different. People have been writing DesignBais apps for a few years now, apps that are now in production with absolutely no additional scripting. While some of us talk about a 'need' for scripting or other technology, others have adopted DesignBais and are now out there selling apps to happy end-users without ever needing to write a script. It's tough to argue in favor of a need for something when it's been proven by people who actually use the software that there is no such need. I mumbled: I'm similarly unaware of caching for any technology where the UI is dynamically manipulated by the server. These concepts are at odds with one another. Chandru pondered: Hmm, yes and no. A form could be a static html page(s) which is(are) dynamically altered by (say) javascript. The static page(s) could then be cached so they do not contribute to network traffic after initial transfer. This does not preclude all kinds of UI manipulation after the initial static load. That's not exactly what I was talking about (ack to your 'yes and no') but you've described exactly what Ajax does for us. DesignBais has been using this technique of page generation since way before it became fashionable, and here in CDP we've discussed doing this with hidden frames and other techniques. The question is whether such minimal (perhaps script-only) pages are actually cached by the server or the client. They might be, I dunno. These days the benefits of server-side page caching are almost negligible just because we are tending toward such heavily dynamic content. The many payloads delivered to a "static"/cached page are completely dynamic and can't be cached. Whether or not the initial page was cached seems to be a trivial point. For the record, there is only one primary script-only user page that gets rendered in DesignBais. Maybe that page _is_ cached somewhere, again I dunno. That one page processes all payloads to render the UI and data. Let's assume all of the pages that render data are loaded at once. That's just a couple hundred kb, smaller than most images these days - whether or not these are cached seems irrelevant. |
|
When discussing products like DesignBais and Visage, people are more inclined to focus on whether form definitions are cached in the DBMS at development time, or whether they are regenerated as required at run-time. These definitions are XML or other formatted data that are presented as instructions for client-side script to interpret into the desired UI controls and related data. I believe Visage does cache page definitions in the DBMS or elsewhere, while DesignBais reads the definitions from the DBMS and generates the XML at run-time. This is a blade that is being honed way beyond "sharp enough". If Visage generates metadata that gets cached then it loses the ability to behave dynamically. Because definitions are read at run-time, DesignBais pages are completely dynamic, and without any perceptible performance hit in exchange. |
|
When pages render at speeds expected of the medium, then it doesn't matter if you can shave off a few milliseconds. With regard to page rendering it's probably fair to say DesignBais and Visage are completely equal. I don't do benchmarks and it's silly to go on about such things - let's assume they're both 'fast enough'. I have absolutely never heard of a sale lost by anyone in this market because their web pages don't render like a thick client, but we constant hear about sales lost because an app has no GUI. The problem we have in this market is that people sit on the fence, missing sales opportunities, reading arguments about caching and other things that usually never even come up during development. People would do best to go through product presentations, get some hands-on experience with all of these products, and come to their own conclusions about which option(s) will best suit their business goals. TG@ removethispartNebula-RnD.com (Taking requests for online demos and trial evaluations.) |
#24
| ||||||
| ||||||
|
|
I almost always argue on your side "shouldn't be written by individuals but provided as part of the product" |
|
but the expanding needs (not wants) of even relatively unsophistacated web applications means that it's not possible to incorporate it all. I wouldn't want to, either, given the infinite possibilities of activeX or other screwy add-ons. As you've said on many many occasions, use the right tool for the job and use off-the-shelf components. So you should be on the side of the angels (developers) on this one when they want to use software from GodKnowsWho.com which solves their problem perfectly (according to them) and letting them use javascript to achieve that end is available. |
|
BTW, my latest blog entry is the first in a series on hacking DesignBais. Check it out: http:// removethisofcourseNebula-RnD.com/blog For what I call "business-professional" web applications there is almost never a business 'need' to use scripts given the features available in this software. 'Want' and 'need' are different. People have been writing DesignBais apps for a few years now, apps that are now in production with absolutely no additional scripting. While some of us talk about a 'need' for scripting or other technology, others have adopted DesignBais and are now out there selling apps to happy end-users without ever needing to write a script. It's tough to argue in favor of a need for something when it's been proven by people who actually use the software that there is no such need. I mumbled: I'm similarly unaware of caching for any technology where the UI is dynamically manipulated by the server. These concepts are at odds with one another. Chandru pondered: Hmm, yes and no. A form could be a static html page(s) which is(are) dynamically altered by (say) javascript. The static page(s) could then be cached so they do not contribute to network traffic after initial transfer. This does not preclude all kinds of UI manipulation after the initial static load. That's not exactly what I was talking about (ack to your 'yes and no') but you've described exactly what Ajax does for us. DesignBais has been using this technique of page generation since way before it became fashionable, and here in CDP we've discussed doing this with hidden frames and other techniques. The question is whether such minimal (perhaps script-only) pages are actually cached by the server or the client. They might be, I dunno. These days the benefits of server-side page caching are almost negligible just because we are tending toward such heavily dynamic content. The many payloads delivered to a "static"/cached page are completely dynamic and can't be cached. Whether or not the initial page was cached seems to be a trivial point. For the record, there is only one primary script-only user page that gets rendered in DesignBais. Maybe that page _is_ cached somewhere, again I dunno. That one page processes all payloads to render the UI and data. Let's assume all of the pages that render data are loaded at once. That's just a couple hundred kb, smaller than most images these days - whether or not these are cached seems irrelevant. I do not see the reasoning behind this if I am reading this correctly. A script-only page? That would imply that the entire html generation is via script? The dreaded javascript? |
|
All I can say is that, apropos of your comments about rendering speed, once again we have quite different experiences. Just using one of our main design screens which is about 350k, rendering that via script has got to take considerably longer than pre-generated html. I note that just "paging" the data in a mv-table with (say) 15 fields and 15 rows takes over a second using quite optimized code. |
|
Perhaps you are using php/perl and perhaps they are much faster. |
|
Again, your comments seem to imply a considerable "payload" in DesignBais (more than the initial load.) If so, then your point is valid. In my experience, the "payload" on server calls other than the initial one is minimal, so caching the initial html makes a noticeable difference. Loading the data from an initial read is the main payload, and that's data, not DHTML. |
#25
| ||||
| ||||
|
|
"Chandru Murthi" wrote: I do not see the reasoning behind this if I am reading this correctly. A script-only page? That would imply that the entire html generation is via script? The dreaded javascript? Make up your mind. The only way you're going to cache a page is if it's static. If you want a dynamic page you need to avoid cache or you need to use client-side scripting to generate the page based on provided parameters. Yes DesignBais uses script to accomplish it's goals but it does not require the user to use script nor does it expose an API for custom scripts. |
|
All I can say is that, apropos of your comments about rendering speed, once again we have quite different experiences. Just using one of our main design screens which is about 350k, rendering that via script has got to take considerably longer than pre-generated html. I note that just "paging" the data in a mv-table with (say) 15 fields and 15 rows takes over a second using quite optimized code. I'm sorry your experience is different. I'm just describing at a high level how DesignBais works and the expected performance. This isn't an argument that one should have with me, there are lots of developers and end-users out there who are using the software. Ask them if they're happy. If they are then it makes no sense to quibble over page size and refresh rates. Perhaps you are using php/perl and perhaps they are much faster. As I always say, tools are irrelevant. It is what it is. |
|
Again, your comments seem to imply a considerable "payload" in DesignBais (more than the initial load.) If so, then your point is valid. In my experience, the "payload" on server calls other than the initial one is minimal, so caching the initial html makes a noticeable difference. Loading the data from an initial read is the main payload, and that's data, not DHTML. The payload depends on the data required. As with any Ajax-based application, there is a tiny payload associated with a simple data entry validation, even a request for a new record to populate a page. Heavier payloads are required when the user elects at run-time to do something that requires a dynamic refresh of major parts of the page. There are no absolutes. It's for this reason that DesignBais does not pre-cache page structures or other metadata - you don't know what the user will want to do at run-time so you don't pre-generate or pre-transport such material. |
|
Four blindfolded men examining an elephant will have different notions of what the whole is given their analysis of the parts. And each one might find it difficult to explain their perceptions to the other, or, considering there are other parts that haven't been seen yet to discuss in isolation why any one part of the beast may or may not be fitting of a living being. If the goal is really to understand the elephant rather than to play games with blindfolds, it's much better to simply remove the impediment and have a look at the elephant. Good exchange, thanks. T TG@ removethispartNebula-RnD.com (Taking requests for online demos and trial evaluations.) |
#26
| |||
| |||
|
|
"Chandru Murthi" wrote: I almost always argue on your side "shouldn't be written by individuals but provided as part of the product" For the record, I'm on that side of the argument for some things, not all. It depends on the topic. When the task is so tiny that anyone can do it on their own, or I don't think the vendor can create a one-size for all solution, then I prefer a DIY approach, though many here disagree with that. I tend to advocate DIY more (based on the things people here ask for) while our colleagues prefer more to come from the vendors. |
|
As you've said on many many occasions, use the right tool for the job and use off-the-shelf components. So you should be on the side of the angels (developers) on this one when they want to use software from GodKnowsWho.com which solves their problem perfectly (according to them) and letting them use javascript to achieve that end is available. |
|
The traditional "one man shop" Pick application developer knows his business but doesn't know most of these other tools. He has chosen Pick because he can maintain the complete environment on his own without a college education, a team of DBA's, or having the mainstream market pull the technology out from under him every couple years. It's very difficult for me to recommend JavaScript, VB, anything with a ".NET" in it, or anything else outside of this Pick developer's scope because when I go out of town he won't be able to maintain his own code. |
#27
| ||||||
| ||||||
|
|
Perhaps you are using php/perl and perhaps they are much faster. As I always say, tools are irrelevant. It is what it is. There was an implied question there? Just wondered if DB uses php/perl as I understand their execution speeds are higher than javascript. |
|
It was not clear to me that DB pages can be drastically modified. |
|
Decisions such as when to "bind" a structure from metadata (which is a general term where you pre-process relevant data and store it in a form more suitable to execution (speed) than human or storage interface) are always difficult and always lead to a Pandora's box of future problems. |
|
It's no different than the syntax-checker and "compiler" in javascript. |
|
So in what could be totally dynamic environments like a web browser, the developer has to triage the many options. Since thankfully we are dealing mostly with business forms, the decisions are easier because the expectations are lower. |
|
[aside: For a ludicrous but beautiful version of how you far you can push DHTML, check out http://www.csszengarden.com/. The CSS required to make this work is so way out that it's incomprehensible.] But for my purposes, I decided to allow certain dynamic UI features: visibility, colors, fonts, size, etc. But to not allow the total redesign of the page on the fly. If DB/Visage do it, more power to them. Chandru |
![]() |
| Thread Tools | |
| Display Modes | |
| |