I deployed ASP NET MVC 3 application on server (win2008/iis7.5). Somehow i desided not to install MVC 3 package and devexpress( necessary for app). Instead I have just copied dlls of mvc and devexpress from my developer machine to the bin folder of deployed app. Everything works fine. Though there may be some complications in maintenance in future, i would like to know if this approach is acceptable and does it influence the performance?
3 Answers
As a system administrator who has to deal with maintenance and lifeycle issues I would say no this isn't acceptable as, as you note there may be complications ...
Windows development tools have packaging tools don't they? I don't understand why you wouldn't use them.
As to performance you will have to test this yourself.

- 115,471
- 20
- 215
- 297
-
1Interesting enough MVC 5 is "copy into /bin folder and update web.config" because of easier maintenance ;) – TomTom Apr 02 '14 at 06:14
-
I do not agree with this. Web Applications are different than your everyday Winforms App, and they are usually deployed with dependencies in the /bin folder (ASP.NET) – MichelZ Apr 02 '14 at 12:57
Install things properly!
People doing stuff like that is the reason I have a couple ancient servers that can't be rebuilt, cant be migrated to another server, can't do anything but pray it never breaks. If you install it properly, I can look in add/remove programs and see, "Oh, it needs X and Y installed". If you randomly copy DLL files around, I can't do that.
It can also break security updates, since windows doesn't know what's installed.
Basically, doing that turns the server into a complete nightmare to maintain. Use the proper installation files, and create installation programs for your programs as well.

- 17,859
- 14
- 72
- 103
-
1Alteranatively use a more modern version of MVC and then this stuff is not installed anyway (as MVC and a lot of other technologies move into "in project dll's" to be more updateable than the core framework". – TomTom Apr 02 '14 at 06:14
-
I do not agree with this. Web Applications are different than your everyday Winforms App, and they are usually deployed with dependencies in the /bin folder (ASP.NET) – MichelZ Apr 02 '14 at 12:56
Sorry, I do not agree with my previous poster's. Web Applications need to be able to be installed in various environments, this can be your own server, or it can be a webhoster.
On a Webhoster for example, you do not have access to "install" these tools properly, so it is perfectly fine to deploy these assemblies into the bin folder.
Please find some specific info for MVC3 and DevExpress here:
MVC Deployment from SO
DevExpress Deployment from DX
As for DevExpress, it even is against their EULA:
When you deploy a web project that uses web controls provided by DevExpress, you should copy the corresponding assembly files that implement the functionality you use onto a target machine (server). Note that you cannot use our installation for this purpose, since it includes Design libraries that cannot be distributed according to the terms of our EULA. Thus you need to manually deploy the necessary assembly files onto the target server.
-
1I think a better answer might be to avoid crappy libraries that don't have packaged redistributables, if those can't be avoided do the best you can with what you have to package the software all together, and document document document. I mostly agree with the other Answers, but could certainly live with a well documented handful of binary blobs. – Chris S Apr 02 '14 at 13:33
-
This is just not the reality in the "Web Application" world... As far as I understand, he's NOT using a pre-packaged web-application, but probably one that was written by himself / an in-house team. I completely agree for "packaged software", but that software package then has those dependencies as /bin items as well :) – MichelZ Apr 02 '14 at 13:45
-
1I voted to migrate this to SO, as it's more of a DEV question in the end, and not sysadmin. – MichelZ Apr 02 '14 at 13:48