Software Deployment in Visual Studio

  • (2 Pages)
  • +
  • 1
  • 2

20 Replies - 6423 Views - Last Post: 11 October 2013 - 12:10 PM

#1 synlight  Icon User is offline

  • D.I.C Addict
  • member icon

Reputation: 89
  • View blog
  • Posts: 582
  • Joined: 14-September 11

Software Deployment in Visual Studio

Post icon  Posted 09 October 2013 - 09:50 AM

In the next few weeks I'll be deploying my first professional software application. The software is written, and I'm just tying up loose ends. For some background: I graduated college in May, and I landed a job at a Tech company that wanted a developer. I am the ONLY developer, and have bulldogged my way through a steep learning curve to get this software written (still learning of course).

Which brings me to my question. I have no clue how to publish real software. Don't get me wrong, I'm reading tuts and documentation, but that will only get me so far. My test version of the software is published using ClickOnce right now. I know (now) that I have to deploy it with Windows Installer Deployment when we're ready for production. I've never done that before, but I'll figure it out.

My question is more about things you have learned from experience.. things that might help me get my software out there in a professional manner. Are there mistakes that you made? Pitfalls I should watch out for? I have no one to ask but you guys, so I would appreciate any thoughts you are willing to put forth.

Edit: If it matters, I am using Visual Studio Professional 2012, the application is written in C# using WPF

Is This A Good Question/Topic? 4
  • +

Replies To: Software Deployment in Visual Studio

#2 Curtis Rutland  Icon User is online

  • (╯°□°)╯︵ (~ .o.)~
  • member icon


Reputation: 4462
  • View blog
  • Posts: 7,776
  • Joined: 08-June 10

Re: Software Deployment in Visual Studio

Posted 09 October 2013 - 12:28 PM

I did learn that if you're using ClickOnce, don't go in and edit the files afterwards. If you need to make a change, publish again and copy the entire output. Because there's a manifest that the installer checks against, and if the checksums don't all match up, the application isn't installed (or updated). We chased our tail on this for a while.

Beyond that, the vast majority of my work has been either website-focused or plugin focused, so I don't have a lot of experience using installer projects.
Was This Post Helpful? 1
  • +
  • -

#3 Skydiver  Icon User is offline

  • Code herder
  • member icon

Reputation: 3548
  • View blog
  • Posts: 10,989
  • Joined: 05-May 12

Re: Software Deployment in Visual Studio

Posted 09 October 2013 - 09:18 PM

Digital signatures. Sign your code. I lost my notes on who has the cheapest code signing certificates around, otherwise I would put a link here. Consumers have come to expect code signed binaries on Windows, and most anti-virus software don't like unsigned code.

If you can engineer or license an automatic update system, do so. It's one of the perks you'll lose when you go from ClickOnce deployments to MSI deployments.
Was This Post Helpful? 1
  • +
  • -

#4 Skydiver  Icon User is offline

  • Code herder
  • member icon

Reputation: 3548
  • View blog
  • Posts: 10,989
  • Joined: 05-May 12

Re: Software Deployment in Visual Studio

Posted 09 October 2013 - 09:24 PM

And remember that when debugging MSI based installations, 'msiexec /L*v' is your friend. The installer log file will tell you exactly what is happening and what is failing. You just need to take time to read the contents of it.
Was This Post Helpful? 1
  • +
  • -

#5 synlight  Icon User is offline

  • D.I.C Addict
  • member icon

Reputation: 89
  • View blog
  • Posts: 582
  • Joined: 14-September 11

Re: Software Deployment in Visual Studio

Posted 10 October 2013 - 06:43 AM

Should I make an installer now, or wait until my software is 100% done and perfect? I've been publishing repeatedly with ClickOnce to test changes, but is that wrong?
Was This Post Helpful? 0
  • +
  • -

#6 modi123_1  Icon User is offline

  • Suitor #2
  • member icon



Reputation: 9073
  • View blog
  • Posts: 34,115
  • Joined: 12-June 08

Re: Software Deployment in Visual Studio

Posted 10 October 2013 - 06:57 AM

Nope - not wrong. All that does is increment the version number, right?

If I were you I would copy/branch the entire solution over and mess using the installer. Might as well start learning that process sooner than later!
Was This Post Helpful? 1
  • +
  • -

#7 synlight  Icon User is offline

  • D.I.C Addict
  • member icon

Reputation: 89
  • View blog
  • Posts: 582
  • Joined: 14-September 11

Re: Software Deployment in Visual Studio

Posted 10 October 2013 - 07:02 AM

Ha yes, it does just increment the version number. I didn't know that at first, and was uninstalling the program repeatedly when I wanted to update it.
Was This Post Helpful? 0
  • +
  • -

#8 modi123_1  Icon User is offline

  • Suitor #2
  • member icon



Reputation: 9073
  • View blog
  • Posts: 34,115
  • Joined: 12-June 08

Re: Software Deployment in Visual Studio

Posted 10 October 2013 - 07:08 AM

That's the joy of clickonce - you update the app, deploy it, and when someone opens up the already installed version it auto checks to see if there is a newer version.. if there is it grabs it, installs it, and moves on to opening the app. If not then it passes through and proceeds as normal!
Was This Post Helpful? 0
  • +
  • -

#9 Curtis Rutland  Icon User is online

  • (╯°□°)╯︵ (~ .o.)~
  • member icon


Reputation: 4462
  • View blog
  • Posts: 7,776
  • Joined: 08-June 10

Re: Software Deployment in Visual Studio

Posted 10 October 2013 - 07:22 AM

And to be honest, there's nothing wrong with using ClickOnce. Google Chrome uses ClickOnce for their initial install. (Actually, they use ClickOnce to install their special installer, which installs the browser itself, but that's neither here nor there).

Especially if what you're writing is a internal application. ClickOnce gives you a huge benefit of automatic updates. Yes, it's a lot less flexible overall, but if you don't need that flexibility, you can take advantage of the simplicity.
Was This Post Helpful? 0
  • +
  • -

#10 synlight  Icon User is offline

  • D.I.C Addict
  • member icon

Reputation: 89
  • View blog
  • Posts: 582
  • Joined: 14-September 11

Re: Software Deployment in Visual Studio

Posted 10 October 2013 - 09:23 AM

The application will be included with a certain piece of hardware when it is sold. So, I was thinking of using disc media deployment. I think my only other option would be to post it to a website and allow clients to download it, but I don't think I'm ready to cross that bride yet, security-knowledge wise.
Was This Post Helpful? 0
  • +
  • -

#11 tlhIn`toq  Icon User is offline

  • Please show what you have already tried when asking a question.
  • member icon

Reputation: 5476
  • View blog
  • Posts: 11,762
  • Joined: 02-June 10

Re: Software Deployment in Visual Studio

Posted 10 October 2013 - 06:38 PM

Has it been tested on a variety of OS flavors?
WinXP 32 bit & 64 bit
Win7 32 bit & 64 bit, home and professional
Win8
And in different language OS installs? Does it behave correctly if on a machine in UK english where they use , for a decimal point and different order of dates as dd/mm/yyyy instead of US where it is mm/dd/yyyy?

Test test and more test... Beat the program to death. Because you can not over test and every hour in testing is 500 hours saved in the support call room for something that doesn't work.
Was This Post Helpful? 1
  • +
  • -

#12 jimblumberg  Icon User is online

  • member icon


Reputation: 4013
  • View blog
  • Posts: 12,393
  • Joined: 25-December 09

Re: Software Deployment in Visual Studio

Posted 11 October 2013 - 04:10 AM

Also if you have a user arround, someone not involved in the writing of the software, ask them to test the software. Don't give them any explanation of how the software works just have them try to use it. If you're going to have the user install the program, using at most only the documentation that will be provided with your hardware/software.

If they have problems installing or running the program then you need to address the issues. If your software requires extensive training to properly use, then in my opinion it's broken.

Many times someone not familiar with the project will be a better tester than the people writing the software.


Jim
Was This Post Helpful? 2
  • +
  • -

#13 synlight  Icon User is offline

  • D.I.C Addict
  • member icon

Reputation: 89
  • View blog
  • Posts: 582
  • Joined: 14-September 11

Re: Software Deployment in Visual Studio

Posted 11 October 2013 - 05:15 AM

@tlhIn`toq

This particular application is unique in that it is being deployed with a piece of hardware. I do know for certain that it will be run on Windows 7 and Windows Server 2008 OS only, depending on the hardware model. That being said, we intend to develop a version for retail in the next year, and I didn't even think about testing on various OS, different languages, etc.

This is a dumb question, but to test it on different OS, I need to have test computers with those OS installed on them, correct? Or can I do virtual machines? Or perhaps there is even some sort of third party software emulator that I could use?

@JimBlumberg

I'm glad you posted that, because I was in the process of writing a set of instructions for my testers. The office is full of people that don't do development, and they are going to be my guinea pigs. So, I should give them no outside instructions at all, then. Just hand them a disc, and ask them to use it.

As for documentation, I've kind of struggled with how to provide that. Should I write help files for the software.. a Press F1 kind of thing? Right now, the user has the ability to add a new device, and add a new user through appropriate textboxes. The extent of my help is to have examples loaded in the textboxes until that particular box gets focus. I know users don't read paper manuals, so I didn't intend to provide that.

If someone could tell me the proper procedure for providing user help, I would appreciate it. DO I write a series of text files that open when a user prompts for it?
Was This Post Helpful? 0
  • +
  • -

#14 Ryano121  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1362
  • Posts: 3,002
  • Joined: 30-January 11

Re: Software Deployment in Visual Studio

Posted 11 October 2013 - 06:00 AM

View PosttlhIn`toq, on 11 October 2013 - 02:38 AM, said:

on a machine in UK english where they use , for a decimal point


Mainland Europe maybe but not in the UK :)
Was This Post Helpful? 0
  • +
  • -

#15 Curtis Rutland  Icon User is online

  • (╯°□°)╯︵ (~ .o.)~
  • member icon


Reputation: 4462
  • View blog
  • Posts: 7,776
  • Joined: 08-June 10

Re: Software Deployment in Visual Studio

Posted 11 October 2013 - 07:05 AM

Quote

This is a dumb question, but to test it on different OS, I need to have test computers with those OS installed on them, correct? Or can I do virtual machines? Or perhaps there is even some sort of third party software emulator that I could use?


VMs are fine, preferable in some circumstances. You can use them to simulate lots of different environments that you won't physically have access to. You can try on a low-performance, low-memory machine, that kind of thing.

Quote

I'm glad you posted that, because I was in the process of writing a set of instructions for my testers. The office is full of people that don't do development, and they are going to be my guinea pigs. So, I should give them no outside instructions at all, then. Just hand them a disc, and ask them to use it.


Depends. If you have actual testers, you need to lay out all the features and let them write test scripts to cover the entire application. You should work with them. When I say "test script" I don't mean a programming script; it's more like an actor's script. It's the full directions to test a particular scenario.

You should get with your testers and write these scripts. That way, when you make changes, they can follow the scripts again and prove that your changes are clean, or report that they've broken some expectation or functionality. Unit tests help you before it gets to QA, test scripts help once you're there. Both keep you from releasing shoddy software.
Was This Post Helpful? 1
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2