Solved

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

Posted on 2016-10-10
5
47 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

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

743 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now