![]() | |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
I am evaluating options for adding a browser front end to a MV database. I was wanting to make sure I was considering all of the options out there. At present our code is pretty generic and we could switch MV databases pretty easy, but it would be a major chore to leave MV behind, so I am open to options using any MV database on the back end. The options I know of are: Flash Connect from Raining Data using JD3 (open source package) for the plumbing and writing your own front end Nucleus from Binary Star Visage(?) from Ross Ferris' company in Australia (sorry Ross - don't remember the name) DesignBais U2Logic has a package - don't remember the package name MV-Internet from (?) - remember seeing something about this package but haven't been able to find anything recently Open Insight from Revelation (can this do browser?) I'm sure there are some I have missed. What other tools have people used and are there any opinions on how easy/effective these are? Thanks . . . Matt |
#3
| |||
| |||
|
|
... Open Insight from Revelation (can this do browser?) ... |
#4
| |||
| |||
|
|
I am evaluating options for adding a browser front end to a MV database. I was wanting to make sure I was considering all of the options out there. At present our code is pretty generic and we could switch MV databases pretty easy, but it would be a major chore to leave MV behind, so I am open to options using any MV database on the back end. The options I know of are: Flash Connect from Raining Data using JD3 (open source package) for the plumbing and writing your own front end Nucleus from Binary Star Visage(?) from Ross Ferris' company in Australia (sorry Ross - don't remember the name) DesignBais U2Logic has a package - don't remember the package name MV-Internet from (?) - remember seeing something about this package but haven't been able to find anything recently Open Insight from Revelation (can this do browser?) I'm sure there are some I have missed. What other tools have people used and are there any opinions on how easy/effective these are? Thanks . . . Matt |
#5
| |||
| |||
|
|
I am evaluating options for adding a browser front end to a MV database. I was wanting to make sure I was considering all of the options out there. At present our code is pretty generic and we could switch MV databases pretty easy, but it would be a major chore to leave MV behind, so I am open to options using any MV database on the back end. |
#6
| |||
| |||
|
|
I am evaluating options for adding a browser front end to a MV database. I was wanting to make sure I was considering all of the options out there. At present our code is pretty generic and we could switch MV databases pretty easy, but it would be a major chore to leave MV behind, so I am open to options using any MV database on the back end. The options I know of are: Flash Connect from Raining Data using JD3 (open source package) for the plumbing and writing your own front end Nucleus from Binary Star Visage(?) from Ross Ferris' company in Australia (sorry Ross - don't remember the name) DesignBais U2Logic has a package - don't remember the package name MV-Internet from (?) - remember seeing something about this package but haven't been able to find anything recently Open Insight from Revelation (can this do browser?) I'm sure there are some I have missed. What other tools have people used and are there any opinions on how easy/effective these are? Thanks . . . Matt |
#7
| |||
| |||
|
|
I am evaluating options for adding a browser front end to a MV database. I was wanting to make sure I was considering all of the options out there. At present our code is pretty generic and we could switch MV databases pretty easy, but it would be a major chore to leave MV behind, so I am open to options using any MV database on the back end. The options I know of are: Flash Connect from Raining Data using JD3 (open source package) for the plumbing and writing your own front end Nucleus from Binary Star Visage(?) from Ross Ferris' company in Australia (sorry Ross - don't remember the name) DesignBais U2Logic has a package - don't remember the package name MV-Internet from (?) - remember seeing something about this package but haven't been able to find anything recently Open Insight from Revelation (can this do browser?) I'm sure there are some I have missed. What other tools have people used and are there any opinions on how easy/effective these are? Thanks . . . Matt |
#8
| |||
| |||
|
|
Hi Matt. Be careful about mixing apples and oranges. There are a few classes of product/packages out there. Your options depend on what you're willing and capable of doing internally. By making some decisions up front you can eliminate products from the running without getting into the details of feature comparison. 1) A "data pipe" will move raw data. It's up to you to create the browser front-end. All for-fee pipes have some sort of BASIC API that make HTML generation easier. Some have way more callable functions than are necessary but some people consider that "value-add". Advantages and disadvantages include: -- You are free to use any front-end you want. Examples include Java, ASP.NET, Flash5 (was Macromedia, now Adobe), VB/VB.NET, C#/Mono, Perl, PHP, Python, etc. -- Take advantage of non-MV technologies indicated above. -- Easy to find people to maintain UI. -- Easy to change the UI altogether or provide multiple UI's with the same back-end. -- You need to do extra coding that a "RAD" tool might do for you. Products that serve as pipes include FlashCONNECT, jD3, mvInternet, Web Wizard, Red Back, Coyote. 2) A UI development tool will allow clicking in a GUI, maybe drag and drop, to help create the front-end. All of these products have a back-end API to tie into your apps. Questions here involve: -- How free are you to create the UI that you want? -- How much does the product tie you in, precluding migration? -- Is the cost worth the pain the product saves you? -- If you need to know some new language, does the product really provide value, or are you better just writing your own code in a new language? Products in this category include Visage, DesignBais, mvDesigner. 3) Some products are application development environments, intended more for writing a new app than integrating with existing apps. The questions here are similar to the above: -- How easy will it be to merge existing code with the new paradigm? -- Does this product "insist" on global changes to accommodate it? Products here include Visage, Nucleus, and maybe the HTML generator for Open Insight screens. You'll notice there is some cross-over between categories. I've omitted some products through laziness, not judgement. You know my mantra, "tools are irrelevant", and that can be applied here by asking yourself less about tools and more about who the end-user is: Joe Internet? B2B Extranet? Management on Intranet? Can you dictate the browser they will use, or whether scripting or cookies will be available? Why are you looking for a browser anyway? Are you concerned about deployment? Are you aware that one of the advantages of .NET is what they call SmartClients, or Zero Deployment installs, which allows you to safely deploy a real EXE and DLL's via the browser? That gives the best of both worlds: no deployment issues and a rich client that can be launched from the desktop. (I just finished writing a project like this, lots of fun, very cool.) Of course one of the biggest questions involves cost. There are free components which involve more work on your part. There are "reasonably" priced products that do "just enough" - of course those are very subjective terms. And there are outrageously expensive products that seem designed to satisfy the needs of people who want to spend Oracle-style money on their MV-style IT department. I'm just encouraging you here to investigate value for cost, and evaluate TCO along with initial purchase value to determine the best fit for your site. So the question that people frequently ask "which product is good, or hot, or right" is entirely dependent on factors that we can only guess about. HTH, T TG@ uh oh, another long Tony post fromNebula-RnD .com "Matthew Harting" <hartingm (AT) hotmail (DOT) com> wrote: I am evaluating options for adding a browser front end to a MV database. I was wanting to make sure I was considering all of the options out there. At present our code is pretty generic and we could switch MV databases pretty easy, but it would be a major chore to leave MV behind, so I am open to options using any MV database on the back end. The options I know of are: Flash Connect from Raining Data using JD3 (open source package) for the plumbing and writing your own front end Nucleus from Binary Star Visage(?) from Ross Ferris' company in Australia (sorry Ross - don't remember the name) DesignBais U2Logic has a package - don't remember the package name MV-Internet from (?) - remember seeing something about this package but haven't been able to find anything recently Open Insight from Revelation (can this do browser?) I'm sure there are some I have missed. What other tools have people used and are there any opinions on how easy/effective these are? Thanks . . . Matt |
#9
| ||||||||||
| ||||||||||
|
|
A few additional points, from my 2 years experience so far, in creating a browser RAD: 1- The data-pipe approach should be a non-starter unless you're ready for the long haul, or your application with its UI, is dead simple (read: typical Internet shopping-cart system). The amount of work involved in even simple validation, displaying multivalued data lines (I am using multivalue loosely, think invoice line items), etc. is *enormous*. If you don't think through your design parametrically, you'll wind up re-inventing the wheel for every new screen, or you'll probably wind up creating your own RAD. Simply not worth it The "advantage" of using a separate front end is a double edged sword. Sure, you can create pretty browser screens and incorporate all kind of whiz-bang effects. Ask yourself what the problem is that you're trying to solve. If it requires a "professional" web page look, you may be forced to go this route (but then, the additional caveat is that only very good web designers can create a professional page anyway). If you want a functional database interface with a consistent look-and-feel, use a RAD. I have found that users of database interfaces have considerably lesser expectations in the look of their WebPages than, say, an art design firm. Consistency and usability trump pizzazz. |
|
Remember also that the communication between webpage designers and data-base application designers is a pipeline (pun intended) of frustration. They don't talk the same language, or see results in the same terms. What may be easy for me, as a dbd, to envision on a web-page may be impossible for the wd's and vice-versa. |
|
And finally, I've never seen the "advantage" of being able to use many different tools and languages. Took me a year to be familiar with javascript. The thought of having to deal with, say java, php or perl, with their bastardized syntax, undocumented features, hidden bugs and weird interfaces (all of which I now know and hate in jscript) makes me ill. A jack-of-all languages and master of none I do now want to be. |
|
2- Using a RAD. Find out how much work is involved in creating a *real-life* application screen, not the simplistic demos most of us can shove off in an hour. How do you implement business rules? How simple is the interface? Can you write it all in mvBASIC, which I assume your programmers are most familiar with? Is there a library of routines to do repetitive stuff that you do not need to learn? |
|
How often does the server get called (at the least all normal validations should be done client-side). Are these specifications automatic (i.e. specified as you create the page) or do you have to massage the webpage (a nono)? How much data is sent on a submit (a big problem is the amount of network traffic created by, say, 100 users; it looks simple to submit only changes as opposed to the entire screen, but it's a *lot* of up-front design). |
|
Is a dictionary used (a big plus, but that's my personal bias. I know Visage does use it, but mostly all RAD's are not setup to use dict words as objects.) |
|
Locking? Pessimistic is best, believe me, unless you're lucky enough to have spineless users who won't kick up a fuss when they're informed that all their changes are for naught as someone has updated the record. And sure, you could write a lot of code to get around this, but most everybody is used to pessimistic locking and the browser's-gone-away scenario is easily handled by any self-respecting RAD (else don't use it). |
|
How does the RAD show a typical line-item screen, how does it scroll, how does it insert and delete lines? These are *not* trivial questions and are not trivial to implement correctly. (I remember being surprised at the programming effort it took to display a grid of values on the jbase web RAD, albeit 2 years ago). As something to judge from, the jscript involved in the type of display on the RAD I work with has probably about 2 man-years of effort. And it still does not use scroll bars. How much control do you have over display, update of individual fields? Can you disable a panel, a popup, a line-item, a field, hide it, emphasise it, easily? Can you automatically display images from the database and/or the client? Find out whether the numerous keys that will screw up a database webpage are disabled (try escape-escape on IE sometime). This also took us a while to correctly implement, and you don't want to have to do this manually. It's the worst of all worlds, completely different syntax for different browsers. |
|
3- I don't know about your clients, but many do not allow downloads or browser extensions. In my ignorance, I will assume that such will preclude the .NET methodology Tony talked about. 4- Cross-browser requirement is a *bear*. Aside from the pretty-well-documented differences and quirks, jscript itself may work, and fail, differently. And it's not just implementation, the testing on different browsers will drive up time, effort and homicidal thoughts against the opensource community. Again, as an example, currently our RAD creates IE 5.5+ only applications, workable until now because of our clientele. We will be required to go NS/FireFox compatibility are least. This we figure will take about 6 man-months of effort initially, and add a consistent 10-15% in maintenance efforts forever. Not a pretty thought. |
|
Chandru Murthi |
#10
| ||||||||||
| ||||||||||
|
|
On Thu, 21 Apr 2005 15:10:37 GMT, "murthi" c_xyz_murthi (AT) seeing_xyz_green (DOT) net> decreased the available storage space of our news server by typing the following: A few additional points, from my 2 years experience so far, in creating a browser RAD: 1- The data-pipe approach should be a non-starter unless you're ready for the long haul, or your application with its UI, is dead simple (read: typical Internet shopping-cart system). The amount of work involved in even simple validation, displaying multivalued data lines (I am using multivalue loosely, think invoice line items), etc. is *enormous*. If you don't think through your design parametrically, you'll wind up re-inventing the wheel for every new screen, or you'll probably wind up creating your own RAD. Simply not worth it The "advantage" of using a separate front end is a double edged sword. Sure, you can create pretty browser screens and incorporate all kind of whiz-bang effects. Ask yourself what the problem is that you're trying to solve. If it requires a "professional" web page look, you may be forced to go this route (but then, the additional caveat is that only very good web designers can create a professional page anyway). If you want a functional database interface with a consistent look-and-feel, use a RAD. I have found that users of database interfaces have considerably lesser expectations in the look of their WebPages than, say, an art design firm. Consistency and usability trump pizzazz. The previous 2 paragraphs totally depend on the combined skills and knowledge of both the DB developer and the web developer. A well trained DB developer and a newbie web builder are going to produce some chaotic application code. The same applies to the reverse. I don't really know why you separate RAD and "seperate front end", because they end up being the same thing when the code is compiled and launched. The main difference here is that a RAD lays out the web design for you, while building it yourself requires real web development knowledge(CSS, HTML, etc). |
|
Remember also that the communication between webpage designers and data-base application designers is a pipeline (pun intended) of frustration. They don't talk the same language, or see results in the same terms. What may be easy for me, as a dbd, to envision on a web-page may be impossible for the wd's and vice-versa. That is only if you don't define a protocol for both sides to design by. You should design the pipeline protocol before any application code is written on either side. |
|
And finally, I've never seen the "advantage" of being able to use many different tools and languages. Took me a year to be familiar with javascript. The thought of having to deal with, say java, php or perl, with their bastardized syntax, undocumented features, hidden bugs and weird interfaces (all of which I now know and hate in jscript) makes me ill. A jack-of-all languages and master of none I do now want to be. The advantange of knowing several development languages is the simple fact that not every screw looks like a nail when you only have a hammer as a tool. I'd rather hire a developer with a mid-level broad knowledge of Perl, PHP, Ruby, and JavaScript than a single minded developer who only wants to use Perl for everything. That developer will be more inclined to learn other languages and also advance their current knowledge to fulfill project needs. A single-tool home builder is highly handicapped in the carpentry world. The same applies here when you are dealing with complex web applications. The syntax for many of the server-side scripting languages are similiar in format but they each have their own strengths and weaknesses. Knowing that information is the key to successful, stable, and portable web applications. Jscript != JavaScript and that is mostly due to Microsoft bastardizing Sun's script so that it will only work in IE and thus to push the browser on the market even harder. If you are knowledgable enough with the DOM, JavaScript and JScript, then you can write cross-browser compatible code. Once again, if you know the restrictions then you can write successful, stable, and portable applications. What you don't know in the web world can hurt you down the road. |
|
2- Using a RAD. Find out how much work is involved in creating a *real-life* application screen, not the simplistic demos most of us can shove off in an hour. How do you implement business rules? How simple is the interface? Can you write it all in mvBASIC, which I assume your programmers are most familiar with? Is there a library of routines to do repetitive stuff that you do not need to learn? I agree, these are all valid questions to ask at design time. However; you can't always do _everything_ in MV BASIC. You can not directly monitor browser events in MV BASIC, so you will need client-side scripting. There's no way to avoid that! That's just one example. |
|
How often does the server get called (at the least all normal validations should be done client-side). Are these specifications automatic (i.e. specified as you create the page) or do you have to massage the webpage (a nono)? How much data is sent on a submit (a big problem is the amount of network traffic created by, say, 100 users; it looks simple to submit only changes as opposed to the entire screen, but it's a *lot* of up-front design). You do not _have_ to perform validation in the browser. The validation can be initiated in the browser and then performed on the server side, but your architecture will need to be designed around that. The amount of coding solely depends on the architecture of the MV components and the browser components as a whole. There's a million ways to get to the same result, but some means can result in 100 times more code. Once again, lots of development knowledge is key to a successful, stable, and portable web applications. |
|
Is a dictionary used (a big plus, but that's my personal bias. I know Visage does use it, but mostly all RAD's are not setup to use dict words as objects.) I don't think that dictionaries are a good tool for web deployment. The reason being underlying server and embedded client logic that can break if the dictionary has to be changed for local green screen use. I feel that any data translations should be processed in MV BASIC, if it has to be done. To each his own, though. |
|
Locking? Pessimistic is best, believe me, unless you're lucky enough to have spineless users who won't kick up a fuss when they're informed that all their changes are for naught as someone has updated the record. And sure, you could write a lot of code to get around this, but most everybody is used to pessimistic locking and the browser's-gone-away scenario is easily handled by any self-respecting RAD (else don't use it). I agree. Locking should be dealt with by session + item and it should be pessismistic. The key is to lock the item virtually by cookie or formval session key. The only time a system lock should be used is when a session is updating a virtual lock in the global lock file. This does break with green screen optimistic system locking, but it's the best method to avoid form re-do headaches. Virtual locks can be time stamped by the app and then cleaned up by a scheduler if the browser times out or is closed before the form is submitted. Ideally, system and virtual locks should be handled together on both the web and screen sides. |
|
How does the RAD show a typical line-item screen, how does it scroll, how does it insert and delete lines? These are *not* trivial questions and are not trivial to implement correctly. (I remember being surprised at the programming effort it took to display a grid of values on the jbase web RAD, albeit 2 years ago). As something to judge from, the jscript involved in the type of display on the RAD I work with has probably about 2 man-years of effort. And it still does not use scroll bars. How much control do you have over display, update of individual fields? Can you disable a panel, a popup, a line-item, a field, hide it, emphasise it, easily? Can you automatically display images from the database and/or the client? Find out whether the numerous keys that will screw up a database webpage are disabled (try escape-escape on IE sometime). This also took us a while to correctly implement, and you don't want to have to do this manually. It's the worst of all worlds, completely different syntax for different browsers. keydown and keyup are global window events across all browsers. The key character property is also a global event property across all browsers. Trapping ESC, regardless of how many times it is hit, is really simple. I'd like to see a snip of that key-capture script. I'm thinking it has been overthought. :P |
|
3- I don't know about your clients, but many do not allow downloads or browser extensions. In my ignorance, I will assume that such will preclude the .NET methodology Tony talked about. 4- Cross-browser requirement is a *bear*. Aside from the pretty-well-documented differences and quirks, jscript itself may work, and fail, differently. And it's not just implementation, the testing on different browsers will drive up time, effort and homicidal thoughts against the opensource community. Again, as an example, currently our RAD creates IE 5.5+ only applications, workable until now because of our clientele. We will be required to go NS/FireFox compatibility are least. This we figure will take about 6 man-months of effort initially, and add a consistent 10-15% in maintenance efforts forever. Not a pretty thought. FireFox is not that bad. Netscape 4.x is nearly impossible. Netscape 6+ is a totally new and unstable animal but it is doable without too much of a headache. That is, IF you keep your Javascript code clean. I know exactly what you mean. Everyone does their Javascript handling just a tad bit different. You can make it much simpler by sticking to raw DOM objects when possible, instead of <insert language brand> renamed objects and events. When you HAVE to have browser ident, put the ident code at the top of the page and use a browser ID variable throughout the rest of the code. |
|
Chandru Murthi That's my 2 cents anyway. Comments appreciated. |
![]() |
| Thread Tools | |
| Display Modes | |
| |