1 (edited by dbk 2019-06-05 20:49:10)

Topic: Recommended way to allow users to update a distributed MVD app?

Hello friends,


Since a couple of days i was wondering, when my compiled MVD application is ready to send to the first users, what is the recommended way to upgrade their version on their system when an update of the application is ready to be distributed by me?


When the basics are done i would like to distribute it to a couple of friends who are going to use it, i plan on adding more functionality, but the basics would do what it is meant to do, so updates are going to follow.


I am growing some concerns, because i searched around for a bit on the forum and found these topics:



It quickly became clear that there is not an easy way to go about this, at least not for me yikes. The general update question thread has some replies by the also very helpful user mathmatou, he provided a script/example program but unfortunately it wasn't attached to the thread, but even then it seems that this should be planned very carefully.


The users that are going to be using my very simple application are also not going to be savy enough to explain how to replace the sqlite.db file etc, it just makes everything loggy and not seamless.


So my question basically is if there is an easier way or a 'one click solution'? Perhaps a recommended way to handle these kind of updates? And if so, would it be possible to explain or attach an example?


Many thanks from me and my slightly worried mind!

Re: Recommended way to allow users to update a distributed MVD app?

I would say, if you want a one click (it would be 2 anyway big_smile ) solution, you could script the database update in a .bat or .cmd or even better a powershell script to implement the Sqlite changes via sqlite command lines. Anyway any update requires a minimum of preparation, you may for instance write an update guide and send it to your client/friends when ready to deploy. Start your script with a backup of everything wink

Re: Recommended way to allow users to update a distributed MVD app?

Personally i use Advanced Installer .
I modify the existing app  , then compile a setup file => upload the setup file to a ftp server and at the customer side the app was already sent as a setup file with the updater executable file included. The updater looks on the ftp server for a new version every hour and when it finds one begins download of the setup.exe uninstall the previous version and install the new one ,making shortcuts on desktop ans that`s it.

I hope it helps

Re: Recommended way to allow users to update a distributed MVD app?

Advanced installer does not come cheap! Ouch!

Re: Recommended way to allow users to update a distributed MVD app?

yes i know , but there are other software that does the same thing but free

Re: Recommended way to allow users to update a distributed MVD app?

Thank you tcoton & lorenzo620 for the tips & explanation. Just curious, is there an easy way to compare two sqlite db schema's to know what has changed? So i could build the bat from there. I assume it is possible to alter the db without dataloss.

Re: Recommended way to allow users to update a distributed MVD app?

https://www.codeproject.com/Articles/22 … re-Utility
https://www.sqlite.org/sqldiff.html
https://gadgetxplore.com/dev-tools/sqlite-diff/
http://www.dbsolo.com/schema_comparison.html

Re: Recommended way to allow users to update a distributed MVD app?

Thank you tcoton. I will experiment a bit smile

Re: Recommended way to allow users to update a distributed MVD app?

astrum installer is free, been using it since it was sold for 69.00.  It is great.
probably easier to send everything except SQLite db, so if any forethought, you may already have the correct fields in the app?  If not disregard my thoughts.  .

Re: Recommended way to allow users to update a distributed MVD app?

Well, looking on Astrum website, they state:

Restrictions
You're authorized to use the program for a maximum of 3 months. Files created with the test version may not be distributed and a watermark will appear on the installation menus.

Re: Recommended way to allow users to update a distributed MVD app?

Astrum is now free.  The 3 months is actually forever now.  I never got a watermark in over 3000 deployments

Re: Recommended way to allow users to update a distributed MVD app?

I use Astrum Installer and yes it is free. No trial, no watermark. Actually I use the combination of Enigma Virtual Box (to hide folders and files) and the Astrum Installer to install projects on end users computers. It is fairly easy to use. You can create simple installs or you can get as complex as you need. There are wizards to help get you started. You can update registry keys if you need. There are embedded actions which you can perform during or after installs. It can also create uninstalls to be delivered to end users.



There are two types of installs, an original install (which would include an empty database) and an update install which you can setup to upgrade your end users software without touching the database. If you need to update your end users database because there are new fields, then you can do what I do is write an MVD program (with SQL ALTERS) and include that project as a subfolder to the main app folder in the upgrade install. You can then instruct Astrum installer to run that database upgrade and immediately afterwards delete it from the end users system. They don't even know that it even ran. All this can be done with virtually no interaction from the end user other than running the install and click on the NEXT buttons which there are very few. It's pretty fast too.



DBK - Hope this helps.

13

Re: Recommended way to allow users to update a distributed MVD app?

Thank you very much for your explanation ehwagner, thank you for the tip on Enigma Virtual Box to hide folders and files, this would have been the second issue i wanted to ask :-)

I'm going to try and test it out!

Re: Recommended way to allow users to update a distributed MVD app?

hi,

how to make a a trial-period (ex. 30-days) for a finished mvd application when given to end-user?
thanks!

---may the force be with you!

Re: Recommended way to allow users to update a distributed MVD app?

anakin wrote:

hi,

how to make a a trial-period (ex. 30-days) for a finished mvd application when given to end-user?
thanks!

http://myvisualdatabase.com/forum/viewtopic.php?id=1434

Dmitry.

Re: Recommended way to allow users to update a distributed MVD app?

DriveSoft,

Thanks!

How to adjust number of days for trial, I cant seem to tweak/change it in the script in your example:
http://myvisualdatabase.com/forum/viewtopic.php?id=1434

---may the force be with you!

Re: Recommended way to allow users to update a distributed MVD app?

Anakin,
Are you asking how to change the trial date after your program is initially run and the trial date has already been set in the registry? If so, then one way to reset the trial is to delete the entry in the registry and rerun your program. But you do not want to share that with an end user or else they will reset the trial on a permanent basis. Another way is to write a separate program which all it does is set the date in the registry.

Re: Recommended way to allow users to update a distributed MVD app?

anakin wrote:

DriveSoft,

Thanks!

How to adjust number of days for trial, I cant seem to tweak/change it in the script in your example:
http://myvisualdatabase.com/forum/viewtopic.php?id=1434

In this line

if not reg.ValueExists('StartDate') then reg.WriteDate('StartDate', Now+30); // trial period is 30 days
Dmitry.