Client/Server Application Basic Features
The necessary functionality for all client server applications
by Mark Henri
GUI Persistance With Registry
The application should remember where it was on the screen and what
state (min,max)
new_handler
Make sure that your application doesn't present the user with a memory
violation error with this redefinition of the new handler. Used in combination
with a try/catch block in the main() routine, there's no excuse for seeing
OS errors if the application crashes. You can then give the user your own
meaningful error message.
Version Logging
Keep track of the latest version in the database. Flag if
a version is absolutely required by database patches so
an outdated client can't run.
Automated Version Updating
The program checks for upgrade every day or at startup.
Auto Shutdown
All client applications should poll the server every
10-20 seconds for system status messages. If the
server determines that the program needs to be logged
off, the program needs to have the ability to close itself from
whatever state it's in.
Server Side Processing
Billing rolls, period end closes, data validation etc. should all
be done through automated, scheduled batch jobs running on
the server. In the desktop world, these are accomplished with
services running at the server.
On databases such as Oracle, the scripts can be scheduled in the
database itself.
try catch (...) in main()
local logging and db logging
- user
- datetime
- sessionid
- workstation name
- ip address
global class functions
- current session number and/or unique workstation id
- started on
- IP addresses
- user_name
- loadListBox() from db
- loadListControl() from db
- loadComboBox() from db
- [dbl,n,l,s]GetSQLValue()
- GetExeDir()
- GetSystemParm()
- EvaluationPeriodExpired()
- BOOL SoftwareLicensed()
running server communication entrance
reference to web page documentation
Use the internet/intranet for documentation if possible. Otherwise,
write all help documentation in HTML and use the local browser to
view it. If necessary, use the QHTML customer control to create
HTML help scripts for interactive help. See
www.gipsysoft.com
for
details.
tooltips in all dialogs
wizard style entry dialogs where appropriate
The use of pictures to establish personality and a lighter feeling
in wizards is part of the modern client server application.
user login
Authentication is crucial now days.
help chat
A chat server that the application can tie into so that users can communicate
with each other regarding the use of the product or the issues that they are
facing. Things like ticker could be especially beneficial to corporations.
user error log
Local as well as server side error logs are crucial for debugging.
question log with reward system
Allow the customers to pose a question in the application quickly and
submit them to the database. Log the user name, timestamp and everything
so that they can be used to identify areas in the application that
are unclear.
help search engine
auto log out and database close
Enable the program to expire after so many minutes of idle time. Don't
shut the program down though, just ask for the password again.