Solved

"Auto Updatable" application

Posted on 2004-04-15
5
267 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

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
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…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

860 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