Click here to Skip to main content
15,887,135 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi I am developing a game with WPF technology. I want to add new Features to game every third days . the size of update is important for me. my game needs to internet for start. like an online game. another challenge is size of updates. the most important note : I need to update of the program does not needing stop. what is your suggestion? Does clickonce is good option? thanks for your attentions. give me guideline please.
Posted

Since your requirements does not fit the ClickOnce and your application is WPF, I would go with creating a Updater class that would download an assembly (DLL) from your server to a specific folder, and have an Folder Observer class that would try to load the new arrived assembly using Prism... But that is just an opinion...

Your Updater class would request to a WCF service to see if there is a new assembly to download, once it has the same class can Download the new assembly from your server and save it in a module like folder...

Since you would have a class that is always looking into the module like folder for new assemblies it will be no problem to load the new assembly into the ModuleCatalog of the CAL (Composite Application Library). Once the assembly is loaded you will have the new content into your application.

This can also be achieved using MEF (Managed Extensibility Framework).

I would strongly recommend that you study both MEF and CAL, and try to figure what suits you better (maybe both).

Hope this helps.
Best regards
Raul Mainardi Neto
 
Share this answer
 
Comments
shahin.kiassat 12-Jul-10 14:57pm    
Hi Raul.
ur post was so usefull :)
tnx for ur attention dude :).
is the way that u introduced is appropriate for a game that need to update for example every day?
cheers shahin
Raul Mainardi Neto 12-Jul-10 16:06pm    
Actually, if you implement the WCF service that notifies if there is a new content as a WCF Duplex, you can do it whenever you need, no matter if it is a second after the previous update, because the Client(your app) will connect to the service when it opens and the service will invoke a callback once a new update is available, this will trigger the Updater to download the new content into your module like folder, then your observer class will just do the rest... NOTE: this update will only ADD new content, it wont update previous content, so you need to analyze that scenario too.

Hope this helps.
Best regards
Raul Mainardi Neto
Updating every three days may be tough schedule to meet. Limiting the size of the update may also be a problem, it's going to be a large as necessary to update the required functionality.

ClickOnce can be configured to check for updated before the app starts. Otherwise you'll need to devise a plan to use shadow folders.
 
Share this answer
 
Comments
shahin.kiassat 12-Jul-10 15:00pm    
Does ClickOnce appropriate for an application that might be install on for example 400 clients?
[no name] 12-Jul-10 15:13pm    
There is no limit. Of course, depending on your network and size of the application, if all users are downloading at the same time it could present a performance issue.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900