|
|
Subject:
What set of technologies would be best suited for this project?
Category: Computers > Programming Asked by: g8z-ga List Price: $10.00 |
Posted:
23 Dec 2002 20:31 PST
Expires: 22 Jan 2003 20:31 PST Question ID: 132964 |
hi, I'm a freelance programmer who was recently contracted to develop a database-driven database system for a company. The requirements for this system are fairly strict: 1. MySQL must be used as the back-end database (the client does not want to spend very much money, and needs a very fast database server). The client seems to have a personal interest in using MySQL, and insists that this be the back-end database that I use. 2. The front-end would *ideally* be something that can be incorporated into a web-browser. E.g. HTML forms could be used as the front-end, and submitting the forms could call a PHP/Perl/JSP/ASP script that would update the database. The reason for this requirement is the client wants to be able to set up client computers very quickly - i.e. they don't want to have to call me to do some complex software installation every time they buy a new system. 3. All the client computers (about 30 of them) are currently iMacs, and the server is a Windows 2000 server, although this could change down the road. Thus, the solution should be as platform-independent as possible. 4. This is the most important requirement: The client interface should feel as much like a desktop application as possible. I.e., if HTML forms are used as the interface, there should be no "lag" time between the time the user submits the form and the time that the results are returned to the client's browser from the server. Obviously, multi-user database like FileMaker and Oracle would be the best choice to satisfy this requirement, but given previous requirements, such solutions would be out of the question. Standard HTML to PHP/Perl script solutions wouldn't really be adequate either, because of the lag time that occurs when the page refreshes. NOTE: I've thought about using Macromedia Flash or Java Applets as the interface, but the development time would be considerable. I want an environment that's easy to develop in. 5. Finally, the cost should be minimal. Using open-source software would be most ideal, and this may be the reason behind requirement #1. The client doesn't want to spend a lot of money on software outside of my programming charges, and wants to be assured of free upgrades and of the persistency of the software (e.g. what if the company that makes FileMaker goes out of business? Open source software seems to have a greater staying-power... consider Linux or Apache). These are the broad parameters of the system. My question is this: what combination of technologies do you feel would be best suited for this project? Please assume that the person programming this system is familiar with every programming language out there, so technical know-how isn't an issue. The system is to be used on an *intranet*, so it's a closed system, but we want to leave open the possibility of putting the system on the Web down the road. The system will be used to perform all the normal database functions: updating records, adding/deleting records, performing searching, creating reports, etc. If you could provide a few possibilities and describe the advantages and disadvantages of each, that would be great. Thanks. | |
| |
|
|
Subject:
Re: What set of technologies would be best suited for this project?
Answered By: webadept-ga on 25 Dec 2002 16:18 PST Rated: |
Hi, After reading all the comments here and your clarifications, the only option you really have left is a flash front end for the user, php as the bridge between MySQL. Flash forms are really very fast to setup. You can probably make a good looking form in the same time it takes you to put one together in Dreamweaver. Just do a bit of reading on reusing templates and objects. Really, it's fast, and much easier to support in the long run. Setting up the PHP bridge to the MySQL database is equally as fast, the server will of course need to have PHP, but there is no configuration needed as the MySQL functions are now standard in PHP installs. Java would be an option if you didn't have the "non-lag" requirement. Java is going to slow those iMac's down to a crawl, in my experience, maybe you know some tricks to keep that from happening, but everything I've seen in Java running on an iMac is really slow. Flash will be faster and you won't need to worry about the browser crashing. Cross platform is also the constraint you have which suggests the flash/PHP option. This will run on any server that PHP will run on. IIS Apache, whatever. Since the PHP is being called in the background the Flash screen can change to the next needed entry point without waiting for PHP to respond. You can also set it up to check the existence of the server's response, and alert the user that the server is down from the next page or anywhere in the program. Using the new Flash MX with global variables and non-frame events, this is very useful and fast to setup. Another thing that will help speed up your process is that Flash will read XML and MySql will give results to queries in XML format using select statements. The last thing I will point out here is that a Flash program doesn't require a browser to run in. Using the app from the desktop will function just as it would inside a browser window. So if you ever do have browser problems, just eliminate the problem. As for printing the reports and query results you can create in Flash the ability to print these or the best way would be to drop out to a PHP created New Window with the results, and print from there. Sending out a Javascript command from the Flash to it's hosting Browser window, and tell it to create the new window with the given parameters. This will work in Netscape 4.5 but not in the newer Netscape browsers as they changed the back-engine of Netscape to the Mozilla engine after that and messed up the javascript calling function. As of this date, there is no fix for this yet in the newer browsers. Links Hot Scripts.com PHP/Scripts and Programs / Flash and PHP http://www.hotscripts.com/PHP/Scripts_and_Programs/Flash_and_PHP/ Macromedia Flash Technotes Overview http://www.macromedia.com/support/flash/ts/documents/flash_database.htm Scrolling dynamically loaded text in Macromedia Flash http://www.macromedia.com/support/flash/ts/documents/dynamic_text_scrollmx.htm Understanding Flash applications http://www.macromedia.com/support/flash/applications/app_design/app_design04.html Loading data across domains http://www.macromedia.com/support/flash/ts/documents/load_xdomain.htm Flash : An example of communication between JavaScript and Macromedia Flash http://www.macromedia.com/support/flash/ts/documents/java_script_comm.htm Flash - Validating Flash forms with Dreamweaver and the JavaScript Integration Kit for Flash 5 http://www.macromedia.com/support/flash/programs/form_validations_tut/ I have no clue why, but there are very few Flash apt tutorials that will show you the real power of this format in business apts, probably because there are very few people who think business apts are really all that special. But there are game tutorials and they will show you the power of persistent variables and non-frame dependant events. http://flashkit.com/tutorials/Games/ Thanks, webadept-ga | |
| |
| |
| |
|
g8z-ga
rated this answer:
Unfortunately, there wasn't any real good answer that would satisfy the requirements that I listed, but I think that the researcher did an excellent job for the difficult situation that I outlined. |
|
Subject:
Re: What set of technologies would be best suited for this project?
From: rcd-ga on 24 Dec 2002 13:25 PST |
Perhaps there is some way to create some sort of cache in the browser that shows an instant preview of what it will look like and then that cached information is sent to the main server database while the user is inputting the data? Unfortunately I'm not sure how to program that. regards |
Subject:
Re: What set of technologies would be best suited for this project?
From: snapanswer-ga on 24 Dec 2002 16:15 PST |
Well, I'm not sure there is a good answer that can satisfy the requirements. I would probably go with the web browser front end, with PHP running on Apache as a plug-in instead of CGI on the back end. If you are running on Windows NT/2000/XP, you may want to look at the e-novative package which auto-configures PHP, MySQL, and Apache on Windows. Or, you may want to look at the NuSphere package for Windows and Red Hat Linux. A search for PHP Triad may find other packages. http://www.hotscripts.com/Detailed/18366.html http://www.nusphere.com/cgi-bin/nsp.cgi/custsrvc/utils/free_download.htm http://www.hotscripts.com/Detailed/6659.html If you need to download Linux: http://www.linuxiso.org/ Then, to help minimize the visual effect of lag time, I might try some of these transition effects, which I believe will do the redraw "out of view" of the user. You would want to set a very short transition time, but, setting a transition should ensure that a second page is ready before the first page disappears. http://internetbrothers.com/dhtml_transitions.htm http://www.boogiejack.com/howx036.html http://www.webdevelopersnotes.com/tips/html/20.php3 http://msdn.microsoft.com/library/default.asp?url=/workshop/author/filter/filters.asp |
Subject:
Re: What set of technologies would be best suited for this project?
From: g8z-ga on 24 Dec 2002 16:55 PST |
Thanks for the input. Unfortunately, the transition effects only appear to work with IE. One thing that I inadvertently omitted from my question was that my client's web browser of choice is Netscape 4.5. I have no idea why, but I think they've simply been using Netscape for years and just feel uncomfortable switching to anything else. Perhaps using servlets, which are semi-compiled, would be faster than running interpreted PHP scripts. This may reduce the lag time. Otherwise, I'll probably try to figure out some sort of DHTML solution, unless someone can suggest a better alternative. The NuSphere packages seem useful as far as setup goes, but I don't think that they would actually make the system operate any faster. |
Subject:
Re: What set of technologies would be best suited for this project?
From: snapanswer-ga on 25 Dec 2002 14:09 PST |
You are correct, the packages I pointed to are just meant to make setup easier. I believe they are setup to use PHP as a plugin instead of CGI, which should help performance. But, I'm sure you would have ended up with that configuration whether you did it yourself or went with the pre-packaged gear. Also, you may want to look into the various PHP caches out there, including the cache from the developers of PHP. This prevents the commands from needing to be reinterpreted each time, greatly improving performance. It still would seem that at some point the browser is going to redraw, and that's going to create the visual sense of delay you are trying to avoid. In any event, I wish you luck on this interesting project. |
Subject:
Re: What set of technologies would be best suited for this project?
From: myadventuregame-ga on 06 Jan 2003 06:23 PST |
In response to your need for a way to avoid an aparant round-trip solution to the server, what you could do is use a hidden IFrame to submit forms and return data to you. This would elimate having to worry about a 1x1 px flash movie. I've used this hidden iframe technique to do exactly what you want to do. It's actually pretty simple. Create a function in client side javascript that will input the database query paramaters. The function would then write this information to a the hidden iframe form and submit it. The function could of course also change to a Thank You Please Wait layer. When the iframe returns with the results of the query, it would invoke another function that would write the results to a layer and then displays the results. Good luck~! |
Subject:
Re: What set of technologies would be best suited for this project?
From: g8z-ga on 06 Jan 2003 09:10 PST |
iframes are IE-specific, right? Is there something analogous in Netscape 4.x or 6.x? |
Subject:
Re: What set of technologies would be best suited for this project?
From: myadventuregame-ga on 06 Jan 2003 09:26 PST |
IFrames and DIVs are IE specific. ILayers and Layers are netscape specific. You can use standard cross-browser techniques to differentiate between the two. |
If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you. |
Search Google Answers for |
Google Home - Answers FAQ - Terms of Service - Privacy Policy |