Solved

Recommendations for deploying a VB.NET multi-client single database application

Posted on 2016-10-10
5
67 Views
Last Modified: 2016-10-17
We have a VB6 app that has been sold to a large number of businesses.  The app is installed using a setup program created with Wise for Windows.  On the first install at a customer location, it is installed on a workstation/server considered to be the app's "server", and on that install, its MS Access database is created and configured for the business.  Subsequent workstation installs include mapping a drive to the location of the database, and "connecting" the app to the database via the mapped drive.  Updates are created as patches placed on our cloud server.  The local app checks the server for updates when it starts, then downloads and applies the patch if one is found for a higher version than the app.

We are rewriting the app in VB.NET and looking for the best approach for installing and upgrading the app.  We've looked at ClickOnce, but feel that it's not flexible enough for what we're trying to accomplish.

1,  Is anyone managing a similar app using ClickOnce?

2.  Does anyone have a suggestion for a different approach?
0
Comment
Question by:pkipe
  • 2
  • 2
5 Comments
 
LVL 22

Expert Comment

by:ambience
ID: 41838908
What exactly do you mean by "not flexible enough for what we're trying to accomplish?" What shortcomings did you envisage?
0
 

Expert Comment

by:petekipe
ID: 41839004
As we see it, ClickOnce will only install in the current Windows user account documents folder.  Our VB6 setup program installs for all users.  When we deploy our final VB6 path, we want it to cause the .NET version to be automatically installed, but we don't see how we can make that happen for all users.  Are we missing something?
0
 

Expert Comment

by:petekipe
ID: 41839154
Sorry - typo.  It should have read, "When we deploy our final VB6 patch..."
0
 
LVL 22

Accepted Solution

by:
ambience earned 500 total points
ID: 41839958
OK, Clickonce isn't going to work for the "all users" case.

Its worth looking into creating installers for your application using NSIS, InstallShield etc. This will give the most flexibility at doing chores specific to deployment and upgrades. Your main application can check for updates when it starts (or maybe even as a manual option), download and run the installer to do the actual upgrade.

The benefit of using installers is that your deployment package can do smart things like check and install .NET framework, fix up registry, migrate databases - basically anything you want.

Another approach that I've looked into in the past was using SVN as a deployment server. This was in the context of a application where we only needed xcopy deployment and no fancy scripts. The idea was to do a SVN Update on the deployment whenever an updated revision was available in the repository. SVN updates can do basic stuff like moving files around, deleting and adding stuff but its not suitable for advanced stuff like adding configuration etc. (for which installers are the best).

Rolling out your own download and upgrade logic is an option worth considering if your application has a plugin architecture. Updates to plugins can be pushed to a public server and the app can download updated dlls on need basis.
1
 

Author Closing Comment

by:pkipe
ID: 41846741
Thanks ambience!
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Help with opening combobox using VB.NET. 3 26
FInd Image Control Gridview 3 22
VB.Net Determine if a mapped network drive exists 2 31
VB.NET Textbox input validation 4 40
In my previous article (http://www.experts-exchange.com/Programming/Languages/.NET/.NET_Framework_3.x/A_4362-Serialization-in-NET-1.html) we saw the basics of serialization and how types/objects can be serialized to Binary format. In this blog we wi…
More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question