Advice Wanted on VB with Linux DB Server 
Author Message
 Advice Wanted on VB with Linux DB Server

We are designing an application for several simultaneous users which at
this stage seems like we will write in VB. I am unhappy about the
current choice of clients running on Windows machines which will be
accessing a Postgres DB on Linux.

In particular, I worry about:
  * Whether data integrity will be retained, since the clients will be
running their own copy of the VB application, and won't know whether
other clients are accessing the DB at the same time.
  * Whether management of the application will be difficult. For
example, upgrades and bug fixes will have to be performed on every
client machine (which may be up to 10). Also, the applications may
misbehave on certain clients if the user alters their environment. In
that case, we may find ourselves supporting problems which are
completely independent of our application.

I would like some advice on what others think of the proposed setup.

Thanks in advance,
Gary Robertson

--== Sent via Deja.com http://www.*-*-*.com/
---Share what you know. Learn what you don't.---



Sun, 11 Nov 2001 03:00:00 GMT  
 Advice Wanted on VB with Linux DB Server
: We are designing an application for several simultaneous users which at
: this stage seems like we will write in VB. I am unhappy about the
: current choice of clients running on Windows machines which will be
: accessing a Postgres DB on Linux.
:
: In particular, I worry about:
:   * Whether data integrity will be retained, since the clients will be
: running their own copy of the VB application, and won't know whether
: other clients are accessing the DB at the same time.

I plan to write several apps similar to this during the next year
(although I'll probably use Java or Tcl/Tk rather than VB for at least
the non-Windows clients).

If you do the locking right, that should be no problem.  It's the
database engine that manages locks at the lowest level.  But you'll
need a good ODBC driver.  I recommend using passthrough queries
wherever possible.  Although PostGres is a decent database engine,
especially for the price, it does lack some higher-end features
including row-level locking.  Your app needs to assume that there will
sometimes be multiple users trying to write to the same page, to
complete writes as quickly as possible, and to retry writes that fail
due to pre-existing locks.  This is good practice in general
regardless of which database or client tools you choose.

:   * Whether management of the application will be difficult. For
: example, upgrades and bug fixes will have to be performed on every
: client machine (which may be up to 10).

That is a big problem with client-side VB apps in general.

If you're lucky, you can probably put the executable on the network,
and call it from a loader program whose job is to (a) know what
dependencies the executable has, and how to update files from the
network if needed, and (b) to load the correct the most up-to-date
version of the "real" executable.  As long as the loader itself
doesn't need to change, you can do everything you need to do,
including changes not only to the executable but to its support files
as well, over the network.

Another possible approach - one that is recommended for large apps
anyway - is to separate the user-interface and business logic layers,
with the latter running on the network and only the former installed
on users' machines.

:Also, the applications may
: misbehave on certain clients if the user alters their environment. In
: that case, we may find ourselves supporting problems which are
: completely independent of our application.

This too is a big problem for VB apps, although to some extent it
could be a problem in any situation where you're distributing an
executable that's dynamically linked to libaries (DLLs) that are
subject to rapid change, no matter what the development tool.

You may want to look into a product from Desaware (www.desaware.com)
called VersionStamper.  I haven't used it, but it promises to be a
useful tool for managing these types of dependency problems.

: I would like some advice on what others think of the proposed setup.

Can you use an HTML front end, or a Linux front end that's accessed
from the Windows machines via an X client?  Either option could buy
you solutions to the above-mentioned problems plus some measure of
platform independence.  I know Linux is generally considered to be a
great server platform, and it is, but it's growing considerably on
desktops and workstations as well, and this way you could support it
and the occasional Mac, DOS, or Windows 3.1 machine as well.  The only
software needed for any of these would be the X client and/or Web
browser.

Other options to consider: Visual FoxPro, Delphi, Tcl/Tk, and Java.

My instinct tells me that you will want to create a three-tiered app,
with each tier communicating with the others by means of an interface
that doesn't depend on choice of tools.  This way, if either VB or any
other component proves unreliable in the role in which you've placed
it, you have the option of rebuilding or replacing it without having
to change the rest of the app.  PostGres is fine for the database
layer.  VB may or may not work for the middle tier, depending on your
requiremnts.  (If not, VFP on NT or Perl on Linux are good
alternatives.)  I always recommend cross-platform clients where
possible, but if you're absolutely sure that all the client machines
will be running recent versions of Windows 9x or NT/2000, then VB if
used with great care can make a good front end for these machines; you
simply will have to anticipate that changes to the app *and* system
environment will occur, and implement some scheme for making sure
these changes won't put your app out of commission or inflict an undue
amount of work on whoever is going to be supporting and maintaining
it.

Good luck!

Joe



Sun, 11 Nov 2001 03:00:00 GMT  
 Advice Wanted on VB with Linux DB Server
I understand your concerns and they are quite valid.  The administration of
such a system is difficult all be it usually unnecessary.  If you are using
a Linux server and each of the clients will be connecting to it perhaps you
could use either the Netware emulator or Samba (offers Windows Networking)
to allow your users to run the application from the server.  Just map a
network drive to the directory where your executable resides.  This way
when updates are required you only need to change one executable dll or
whatever.  Also, multiple users accessing the same database shouldn't be a
problem as long as the RDBMS you are using supports row-level locking.
This will help to keep people from messing up the same data by editing it
at the same time.  I'm not sure if Postgres supports this or not.  The
Postrgres website has a really good chart on what it does and doesn't do.
If it doesn't meet your needs maybe you could try out another free database
for Linux, some of the major RDBMS players have recently released open
source versions of their software for Linux.

Good Luck...

Quote:

> We are designing an application for several simultaneous users which at
> this stage seems like we will write in VB. I am unhappy about the
> current choice of clients running on Windows machines which will be
> accessing a Postgres DB on Linux.

> In particular, I worry about:
>   * Whether data integrity will be retained, since the clients will be
> running their own copy of the VB application, and won't know whether
> other clients are accessing the DB at the same time.
>   * Whether management of the application will be difficult. For
> example, upgrades and bug fixes will have to be performed on every
> client machine (which may be up to 10). Also, the applications may
> misbehave on certain clients if the user alters their environment. In
> that case, we may find ourselves supporting problems which are
> completely independent of our application.

> I would like some advice on what others think of the proposed setup.

> Thanks in advance,
> Gary Robertson

> --== Sent via Deja.com http://www.deja.com/ ==--
> ---Share what you know. Learn what you don't.---



Sun, 11 Nov 2001 03:00:00 GMT  
 
 [ 3 post ] 

 Relevant Pages 

1. Linux Db + VB????

2. vb client - linux C server

3. Wanted: BASIC compiler for Linux

4. advice on the best way to retrve information from a access db via VB.

5. Using VB6 As A Front-End on A Linux DB

6. Visual Basic App using Foxpro DB vs Access DB vs SQL Server DB

7. Visual Basic App using Foxpro DB vs Access DB vs SQL Server DB

8. Connecting to DB on Linux or unix

9. which language is the better for database programming (using the oracle db on the Linux)

10. Communication with Informix DB on Sun Linux

11. MySQL OLE DB v3.0 for Win9x and MySql 3.23.30 on Linux 2.4.9

12. Linux new langauge : Was ANNOUNCE Linux BASIC

 

 
Powered by phpBB® Forum Software