As David mentioned, in .NET the objects would be exposed to clients through remoting. The hosting application, though, could be a Windows service. Once the service is started and has registered the types that will be exposed through the remoting infrastructure, clients can get references to the remoted objects directly from the service and do not have to use ServiceController. ServiceController is used more for applications that are going to start/stop, administrate, configure, etc. the service.
- Elton