When should I go for a Windows Service and when should I go for a “Background Application” that runs in the notification area?
If I’m not wrong, my design decision would be, any app that needs to be running before the user logins to the computer should be a service. For everything else use a background app. Is my decision right?
Moreover, if I need “admin privileges” for my background app, I would escalate using a manifest. Are there any other specific advantage of running as a service?
My general rules of thumb are as follows
The fun comes when you have the need to run something as a system account, but also interact with it. IIS is a good example of this, it’s a service, but the administration is an application – it needs to be running at the startup, it needs access to particular things a user can’t normal access (c:\inetpub), but the user needs to be able to start, stop and configure it.