Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the benefit of developing the application as a windows service?

Tags:

I am going to develop an application which will process online data (comming through socket) and it does not need any user interaction.

I am thinking of a simple console application, but what about windows service does it provide extra benefit? (I know windows service does not need user logged in to run the service but I am asking about extra benefit)

like image 613
Ahmed Avatar asked Jan 14 '09 08:01

Ahmed


2 Answers

On the top of my head:

  • You can control the user (and the rights associated with this user account) which starts the process
  • an Automatically started process means the desktop need to be on, not user logged, for the service to run
  • a policy on failure can be defined (try to restart n times run a specific program if fails)
  • a dependency can be defined (if you depend on other sevices)
  • you can wrap your scrip in an invisible windows
  • you can easily start/stop/restart the script (net start <scriptname>)
like image 173
VonC Avatar answered Nov 04 '22 07:11

VonC


I can't add anything to VonC's list but I would add that if you're using the usual Microsoft tools (VS & .net) it's easy to do both.

I create a class library that contains all my application logic and a MyServer class which has .Start() and .Stop() methods. You can then create both a console app and winservice app that both reference this. E.g. the console App instantiates a new MyServer, calls Start, waits for a key press and calls Stop.

I use the console app during development and the windows service for deployment.

like image 42
codybartfast Avatar answered Nov 04 '22 07:11

codybartfast