Solved

"Auto Updatable" application

Posted on 2004-04-15
5
261 Views
Last Modified: 2008-03-21
Hello,

here is a theoric question, I want to investigate the different possibilities before starting.
I have an application that will be deployed at several places in several cities. When a new version of the application is released, I do not want to go to each place and redeploy the new version, and I do not want the users to do that themselves.

So I had several ideas.
Idea 1:
----------
At every startup of my application, it could check if a new version is available (comparing its version with a value returned by a web service for instance). If it is the case, uninstall itself and install it again. (maybe using an external process and working in command line... is it doable ? Can we install a .NET application without using the msi wizard ? What happens if the user doesn't have local administrator rights ? can we install for everyone ?

Idea 2:
----------
Quite similar, but it will update only a DLL. My application will be a small exe, doing for instance just a myDllEntryPoint.Start() or something like that.
Of my course, my new DLL will have a higher version number and so I believe there will be a problem for my soft. It won't use the new DLL as the version number is no longer correct. How can we change that ?

Idea 3:
----------
Using a distant DLL. Like in previous case, my application would launch only a start method in the DLL, but this DLL would be installed in the GAC of a distant computer. So when a new version is released, I only uninstall and reinstall that DLL on the server.
Can we use a distant DLL ? (and how ?) Only on a local network ? Also thru a VPN ? Is there a drawback in term of performance (I was thinking that the DLL would be loaded at every startup in memory... Is that true ? Will it have to go to the server each time a methof of the DLL is called ?)


Do you have another / better idea ?
What would you do in such a case ?
0
Comment
Question by:Jarodtweiss
  • 3
  • 2
5 Comments
 
LVL 7

Expert Comment

by:culshaja
ID: 10833137
According to Microsoft if you have the .Net framework on the client machine and you put a .Net exe on a webserver and provide a link to it in a webpage, if that person clicks the link, the App will download and run from a sandbox on the local machine. It is intelligent enough to know wether to run a cached version (if you have clicked the link before) or to download the latest version to the sandbox and run that. What I am not so sure about is associated DLLs.

Refering to your ideas above, I use a program which calls a webservice to check for a list of updates. The app then uses this list to determine if there are any newer files which it requires to download and then goes and downloads these files from the location that is specified in the update list. This update checking occurs in the app load. Seems to be used by quite a few different applications.

James :-)
0
 
LVL 7

Expert Comment

by:culshaja
ID: 10833186
Take a look at this: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/updater.asp

Its a pre built code block for auto-updating applications.

James :-)
0
 
LVL 7

Accepted Solution

by:
culshaja earned 500 total points
ID: 10833206
0
 
LVL 4

Author Comment

by:Jarodtweiss
ID: 10833226
Thanks for the links !
I'm having a look on it !
0
 
LVL 4

Author Comment

by:Jarodtweiss
ID: 10968040
Hey culshaja !
Sorry for being so late for giving points.. I have no more time to work on that part for now...
Thanks anyway for those links
I'll reopen a topic if I have problems with that in the future !

Jarod
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

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

Suggested Solutions

It seems a simple enough task, yet I see repeated questions asking how to do it: how to pass data between two forms. In this article, I will show you the different mechanisms available for you to do just that. This article is directed towards the .N…
Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

809 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