Windows Services have the advantage of running in the background without the need of an active session. They are very useful to run jobs and services in general. Lately I have been trying to stay away from windows services and use windows scheduler instead. The scheduler is easier to set up and maintain. However every now and then I have to create a service than needs to wait for requests, in this scenario the scheduler is not a good solution as the scheduled application may not be active all the time and not service all requests.
Anyway, services can be easily installed and uninstalled using the command line but you can also set up an msi to install and unistall services automatically. I keep forgetting how to do this so here are a few snapshots.
Right click your installer project and select View->Custom Actions

Add the primary output of your project to the Install folder. And in the properties pane of the output set the argument to: /install.

Also add the primary output to the Rollback and Uninstall folders. The argument in this case will be /uninstall.

Notice that the commit event won't work for this custom action and make sure you add the rollback custom action. If your installer fails for any reason having this custom action will ensure you remove the service, if you don't have it you might not be able to remove the windows service and will have to restart your machine. Been there :)