views:

21

answers:

2

Currently we deploy one of our applications to every individual user's PC. However, all our users have access to the same intranet. I'm wondering what is stopping us from just putting the binaries on a network file share and letting multiple users run it from there. So my question is: Are there any gotchas with multiple users accessing the same exe/dlls? And are there any gothas with applications running from a file share?

Some detail that may be relevant:

  1. In essence, I want to get away from updating every individual's PC (100+) when a new version of our app comes out (which happens quite often)

  2. We will still run an initial setup to get the footprint (data, registry entries, etc) on every user's PC

  3. The main app is written in Delphi, some dll's using .NET v4

  4. I did get some info here on .NET apps, so no need to repeat that

+1  A: 

I do the same for my application. You have to take care of the following:

  • Provide an easy way of upgrading your application. If all your versions have the same executable name, you could be forced to tell all users to leave the application before it can be upgraded. If you include the version name in the executable name, putting a new version on the file share is just a matter of copying the file, and maybe adjusting a command file so the new version is executed the next time.
  • Link your application with the /SWAPRUN:NET flag. This makes sure the application is loaded fully in memory at startup. If you don't use this flag, and the network connection is dropped while users are executing your application, the application might crash if the user executes part of the application that he hasn't executed before (because it was not loaded from the network yet).
Patrick
thanks, this is useful
Jaco Briers
+1  A: 

I think that another approach would be to mantain an updated version of the program executables and DLLs on the server, and the PC clients execute a program (or a .bat) that will compare the versions (or modified date), and if they are different, it will copy the file to the local PC and execute it.

I worked in one company that used a .bat file to do this, and where I actually work, we do this using an .exe file (which is rarely updated).

It will decrease the network overhead generated by copying the executables every time an user executes the application.

Note: Sorry if my English sounds weird... English is not my native language, so maybe some phrases could sound strangely.

+1 for suggesting an alternative approach to my core problem
Jaco Briers