You can significantly reduce the cost to operate a server application by giving it a robust management interface. And the best way to do this on Windows Server 2008 is to integrate with the management features of the platform.
The System.Diagnostics namespace includes classes that make it easy to create and write to your own event log, as well as to write important messages to the shared Application event log. Windows Server 2008 includes a new and improved event log API (Windows Eventing 6.0) that you can take advantage of as well.
|Windows Eventing 6.0 requires native code.|
You’ll also find classes in System.Diagnostics for creating and generating data for custom performance counters. Events and performance counters are basic features that any server application running on Windows Server 2008 should expose.
While event logs and performance counters give administrators visibility into your application, you should also consider integrating with Windows PowerShell™ by creating custom cmdlets. This allows an administrator to manage your application at run time with Windows PowerShell scripts. Windows PowerShell includes cmdlets that allow you to easily access management infrastructure such as Windows Remote Management (WinRM), WS-Management, and Windows Management Instrumentation (WMI), making it an easy way to automate tasks on your servers.
With Microsoft Management Console 3.0, you can easily build a GUI on top of your Windows PowerShell cmdlets by using managed code. If you really want an enterprise server application to stand out from the competition, then take it one step further and have your application light up in management consoles like Microsoft System Center or IBM Tivoli by integrating with WMI via the System.Management namespace. By layering your management solution with Windows PowerShell and MMC, you’ll give administrators the best of both worlds – a scriptable management interface and a GUI, plus delegated, remote automation.
Some server applications, such as batch processing programs, need to be run on a regular basis, but need not be running in the background at all times. Instead of writing a Windows service to handle these sorts of tasks, you may find it simpler to create classes that represent tasks and schedule them with Windows Task Scheduler 2.0. This new task scheduler is a complete departure from the simple one you may be used to from earlier versions of Windows, and provides a much more structured administration interface, as well as a full programmatic interface. Tasks can be triggered daily, weekly, monthly, at specific times, or at boot time, user login, and so on.
|Windows Task Scheduler 2.0 requires native code.|
Installing a server application is hardly a trivial task, but you can simplify it by building a great installer using Windows Installer 4.0. You can either use one of the many third-party tools for generating installation packages (MSI files) or check out the free Windows Installer XML (WiX) toolset, along with the Votive add-in for Visual Studio.
Windows Server 2008 provides support for virtualization with Hyper-V™. During development, by allowing one physical machine to host many virtual machines, you can test many more scenarios in your lab without having to make nearly as large an investment in physical hardware. During deployment, in industries where conformance rules require separation of concerns onto separate machines, leveraging virtualization can reduce the cost of running those applications for your customers.