3 Replies - 1518 Views - Last Post: 25 October 2011 - 09:30 AM

#1 net nerd865  Icon User is offline

  • D.I.C Head

Reputation: 2
  • View blog
  • Posts: 52
  • Joined: 16-June 08

Best methods of software deployment?

Posted 22 October 2011 - 04:09 PM

Recently in my job, I've been given the task of creating an installer for an application. In school, I would just copy the output folder since anyone who was receiving my code would have .NET or Visual C++ runtimes installed already.

But in industry, is there a general best practice for deploying applications? I've worked with Windows Installer XML and InstallShield for creating MSI files and Wise Installation System for creating executables. Senior engineers have told me that using Windows Installer to install components into the Windows Registry makes it more complex while just doing an XCopy of all the files would be more simple. However, I disagree just because we have multiple applications which share code and our deployment strategy does not really allow for patching or hotfixes.

Is there generally a best practice or does it depend on what is being installed? Would having a suite of applications instead of a single application matter for deployment?

[Edit]
I ask because from what I have seen on the Internet, companies either have a dedicated deployment engineer or have a third-party consultant who takes care of it. Since I picked up this project, I have not had much support for receiving training in this area and searching online has only given me resources for specific problems for specific tools, not the implications of choosing one strategy over another.

This post has been edited by net nerd865: 22 October 2011 - 04:13 PM


Is This A Good Question/Topic? 0
  • +

Replies To: Best methods of software deployment?

#2 Martyr2  Icon User is offline

  • Programming Theoretician
  • member icon

Reputation: 4337
  • View blog
  • Posts: 12,137
  • Joined: 18-April 07

Re: Best methods of software deployment?

Posted 22 October 2011 - 06:52 PM

Well I think you kind of answered your own question. If there was generally one overall best practice for deployment, why would companies need to hire a specialist or third-party consultant? The truth is, deployment can often be as unique as the application. For simple applications XCopy can be the best choice... like when you want to install a ASP.NET or Service application because it doesn't require you to stop IIS to do it.

However, there is often a lot of reasons to go with a Windows Installer solution....

1) Perhaps the application has many parts that the end user simply would not understand (besides placing files in correct directories it would create groups, users, alter security, start services, modify existing running programs)

2) Windows Installer offers consistent installation and can become very sleek and automated. Lot of companies use it for consistent deployment

3) Offers other services such as repair, rollback of a failed deployment, install components on demand from user directories etc.

There is absolutely no one sure fire way to deploy an application and really depends on what your application needs to do to the target machine. I have seen both done regularly out in the industry. More complex applications I see done with the installer though. Simple apps can use XCopy just fine.

I hope this helps! :)
Was This Post Helpful? 0
  • +
  • -

#3 net nerd865  Icon User is offline

  • D.I.C Head

Reputation: 2
  • View blog
  • Posts: 52
  • Joined: 16-June 08

Re: Best methods of software deployment?

Posted 25 October 2011 - 05:29 AM

Thanks, that answers most of my questions. One last question. What is the typical way to handle prerequisites for applications? For example, if I need SQL Server installed or .NET installed, should I wrap that up in the whole deployment of the application, leave it up to the user to install it (which could lead to issues), or install those tools myself before I do the install of the application?
Was This Post Helpful? 0
  • +
  • -

#4 Martyr2  Icon User is offline

  • Programming Theoretician
  • member icon

Reputation: 4337
  • View blog
  • Posts: 12,137
  • Joined: 18-April 07

Re: Best methods of software deployment?

Posted 25 October 2011 - 09:30 AM

You would usually wrap it up in the deployment (if it is small enough). This is the very reason Microsoft came up with things like SQL Server Compact Edition. Many libraries are also in redistributable form and you can even redistribute limited versions of MS Office for applications that may need to use Office functionality.

You could also tell the user that certain applications need to be installed as a pre-requisite. You often find this type of messaging under sections of the applications website labeled as "requirements". Especially if those applications don't have a redistribute form and might be too large to bundle with the deployment package.

:)
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1