This flowchart illustrates how a ClientServerBrowseListBox desktop application is able to switch between data access points, whether local, or remote, from the same app, unchanged at run-time.
In an upcoming video, the same desktop app will be used to access sets of data tables located locally (on the same machine as the app) and remotely (on a machine 1000 miles away from the app).
How do we switch between data access locations?
We do this at run time by signing off one access location, changing the IP on the app's connection interface and signing on to the other location.
A video we'll be posting soon, illustrates this, as well as pointing you to a downloadable set of pre-built demo apps to let you try this yourself.
Stay tuned.Gus Creces
Further to the ListBoxBrowseExtender (and video) posts we placed recently...
We've gone through the template and the underlying classes with a fine-toothed comb and have developed, are still developing, a plan for this template's further enhancement as promised; that is, to be able to build a dual-purpose application that can be switched on to WEB data, WAN data, or LOCAL data from the same app, AT RUN-TIME.
At present ListBoxBrowseExtender is quite able to replace an ABC browse for local data, in its existing state, but not without a bit of hand-embedding to hook in the various CHT query mechanisms.
On the other hand, the Client Server (via Web or Wan) version of our ListBoxBrowseExtender template is already quite capable of producing a sophisticated, data-source-switcheable browse. This CHT Client Server template is called ClientServerBrowseListBox. This design also has related templates for Processes and Reports also running across the web, and all of which can do these things with little or no hand-embedding.
Both of these templates use the same underlying classes to manage the queue and to manage searching, a characteristic they share also with HandyMarkerBrowse.
Given the significantly more advanced state of the ClientServerBrowseListBox template, and the fact that you can also use this, in it's present state interchangeably, with local data, or remote data or both at once, it would be redundant to push ListBoxBrowseExtender in the direction of becoming what ClientServerBrowseListBox already is.
Yes, producing a dual-purpose app, able to consume local data or remote data, interchangeably or at the same time, is already possible with CHT, and has been the case for 5 years or more using ClientServerBrowseListBox as the base browse template instead of ABC Browse or ListBoxBrowseExtender.
Whether this app operates on local data or remote data is simply a matter of where one places it's data server - on a local IP or on a Remote IP.
So as not to duplicate what ClientServerBrowseListBox already does, the plan for ListBoxBrowseExtender, is first to further flesh it out to become a full-service browse that auto-fills from a variety of sources, from a disk directory, from local tables or from remote tables, via various forms of interchangeable data connectors delivered by related templates. We also want to be able to switch in an existing server application built for ClientServerBrowseListBox, without having to do more than calling the connector function with a run-time selectable set of connection parameters.
Some of these abstract data connectors already exist, we showed them to you in our recent ListBoxBrowseExtender video. (eg: SQLSelect(), FillQueueFromView()). These are, at present, hand-wired into ListboxBrowseExtender in HNDSQL9.APP. That of, course, has to change so that they can [if you wish] be created and wired in via 100% template-generated code.
The working guts of this sort of mult-access data connector must be abstracted from the browse, form, report or process itself and be switchable at run-time to a different data source without re-compiling the app. This fully abstracted approach is TOTALLY opposite the ABC Browse, ABC Process, ABC Form and ABC Report wherein the data connection and retrieval code and field-placement code are hopelessly intertwined with the browse code, the process code, the edit form code, or the report code, via direct communication with the file drivers.
In the near-term as ListBoxBrowseExtender and new related templates, are further developed to achieve this abstract data source objective, we're going to re-familiarize you with ClientServerBrowseListBox and some of the existing demos available for it.
That's all for now,
November 22, 2016
In our NOV 1, CHT Facts Sheet, we drew your attention to ListBoxBrowseExtender, a way to make an ABC-Browse-Template free, Clarion browse.
You can review what was said about this here:
4. PROMISED: "CHT-only (non-ABC) Browse Template"
In that document, we said the following:
"It works with table data as well as with data from non-table sources such as lists of files located on any disk drive. It can read table data into the browse queue automatically, or developers can use any one of a variety of CHT class-based functions to fill the browse queue from table data or from non data-table sources as well as remote data sources.
(We'll leave the remote data part of this discussion for another time). "
"FUTURE OF THIS CATEGORY: As an aid to understanding, we plan to develop some new LBX example applications, videos and documents that more fully, illustrate how to leverage the power of CHT's ListBoxBrowseExtender template."
Included with the "future of this category" is the intent to make this CHT Browse Template even more flexible by making it possible to build one client app that can swap in and out between local data and remote data. (i.e. data located on the local network, or data located on the internet).
CHT can do this remote or local data access from a Clarion app already, quite efficiently by comparison to native Clarion technologies, but it's never been from the SAME desktop app, since we've always touted a separate CHT template chain to handle remote data Client server, a CHT template chain for remote data browsing that set aside the ABC Browse template.
Yes, it's true. What has always stood in our way (and in YOUR way) is the SV browse template. Once you build a Clarion ABC Browse it sets the developer up for a certain chain of events that tie him/her to the Clarion file drivers, and/or to the Clarion IP driver.
It stands to reason, that in a truly portable windows world (LAPTOPS, TABLETS, PHABLETS and PHONES), where an app is going to access data remotely or locally or both at the same time, that the distinction between local data and remote data is an unnecessary distinction and a hindrance to your productivity.
We really want and need is a browse/form/report/process paradigm that can be pointed at any data source without having to make the distinction at the browse level or at the data client level, WHAT the specific data access layer is going to be, because the data from that source or from those sources, will always come back formatted the same way, packaged the same way, encrypted, compressed, secure, and consistent.
We hope you'll let that thought sink in, and draw your attention back to another APP sitting in your HNDAPPS directory called HNDCLIENTCLLEAN4VIEW.APP.
This is a client server demo that you really should try for yourself. It uses ListBoxBrowseExtender to browse data that's sitting on our server out on the internet. If that server were running on your WAN or even on your local network, it would work the same way.
It's a demo after all, for you to test, so the logins to this are not a secret.
In the next screen shot is a list of the logins. Please pick one at random, since only one user can use the same login at the same time. We've made it easy for you by putting the login ID in the user name. EG in the top picture, the login is 1099 and the user name is GUS1099.
The list of logins above works the same way, for example: GUS 123, (Login 123, UserName GUS123).
So the URL server is at: http://www.cwhandy.ca (Port 8080). Compile the app, pick a login (at random please) and browse the data.
NOTE: We have made some incremental changes to the CHT installation since the
release of Build 20D.01.00 as mentioned in the video. Please run and install
CHT Weeklies 4, 5 and 6 from our installation site if you intend to follow the
entire video presentation by loading and running the applications discussed.
To view the video run, HNDVIDEOEDUCATION.EXE located in your \accessory\hnd\ directory. It's pre-compiled and ready to run. The video is presently #2 (from the top) in the pulldown video list.
November 21, 2016
We're in the middle of retooling this website to a standard more in keeping with the eclectic mix of devices used to browse websites these days. Small tablets and phones are used so frequently now, that it's important to have a design that adjusts to the screen size without losing readbility by forcing all kinds of scrolling and zooming.
Note the always-on-top navigation menu stays visible no matter how far the page is scrolled downward. We've also opted for a larger default font size on our pages, to accommodate mostly small-screen phones which tend to zoom out to encompass the entire page width.
We're really just re-tooling the CSS that underlies the site, so this is not a massive undertaking. Since we're working backward from newest pages to oldest, some older pages and links will continue to appear with the previous style sheets until we get to them.
As we work on these, we're co-incidentally building a new CHT utility application to automate the redesign for us. So if truth be told, we're spending more time on that utility than this re-design. But that's how it's supposed to work, isn't it? With the right tool, any job is easy!
November 10, 2016
We'll send a CHT Facts Sheet via email to all subscribers later this week outlining some of the changes and additions to this latest CHT update.
Click to View: CHT Facts Sheet
We'll of course, create that newsletter using HNDDOCUMENTBUILDER.APP and naturally, we'll be mailing it to you with another CHT utility app called HNDBULKNETMAILPROMO.APP.
Some time in this last quarter of 2016 there will also be some new videos about the above apps, both about how to use them and explaining the internals of the applications. And also how they're put together with CHT templates and classses and embedding using our newest Embedding template.
November 1, 2016
CHT Template Docs
CHT Application Docs (Complete)
CHT Utility Applications Docs
CHT Batch-Bot Application Docs
CHT Snap-In Application Docs
CHT Classes Docs
November 1, 2016