In developing a network application for Windows, I need to consider how the software will operate if the application is installed and run in a Domain environment, as compared to a Workgroup or non-domain environment. I have limited experience with software in such installations, and although we will test our product thoroughly, I need to be aware of differences that may exist as early as possible.
The application is currently targeted at .NET4.5
and consists of two modules:
- A Windows service, run as
LocalSystem
, which starts Automatically. - A WinForms application, run on the system at login, which lives in the task tray for 99% of its life.
The Windows Service
- Uses two specific
UDP
andTCP
ports to communicate over the local network. - Communicates with the WinForms application via
TCP
atlocalhost
. - Communicates with a server on the internet, outbound only, via a RESTful API.
- Automatically attempts to create exceptions for itself in the Windows Firewall. Customers will be expected to create any other required exceptions for other firewall or AV products manually.
- During a live-test installation (in the wild) would ideally have attached
cdb.exe
or similar for the purpose of automatically building a crash dump should the service throw an unhandled exception and terminate.
The WinForms Application
- Does not have User-Specific configurations. Application-level configurations only.
- Communicates with the Windows Service via
TCP
atlocalhost
. - Following installation should run at login for all users.
Given this arrangement and description, what are some potential pitfalls that I should be aware of, if the operating environment is domain-based?
For example, how can a Group Policy affect the desired operation per above? It's not a problem for us to require that such a Group Policy must be changed