Server applications need to communicate with other systems, if only to receive input and produce output. The simplest services may simply communicate by exchanging files using the built-in file sharing service or the FTP service provided by Internet Information Services (IIS) 7.0, both of which are part of Windows Server 2008.
Modern server applications expose rich programmatic interfaces using either Representational State Transfer (REST) or Service Oriented Application (SOA) styles, and Windows Server 2008 provides support for both. If you choose the REST style, you can use Windows Communication Foundation (WCF), which is part of the .NET Framework, along with the downloadable REST Starter Kit to build RESTful services. WCF includes support for generating ATOM and RSS feeds, and the starter kit goes further, with implementations of the ATOM publishing protocol and classes that simplify consuming RESTful services. For building browser-discoverable RESTful services based on XHTML, an alternative approach is to use ASP.NET MVC (Model View Controller).
If you choose the SOA style, WCF is the clear path forward, giving you choices of many built-in transports, encodings, security models, and WS-* protocol support. WCF was designed for extensibility, so for example, if the transport you need isn’t built in, you can add it yourself or purchase a library from a third-party vendor.
Some applications require asynchronous, durable messaging. Windows Server 2008 comes complete with a queuing service, Message Queuing (MSMQ) 4.0. For those familiar with WCF, it includes Message Queuing bindings that you can use to expose or consume a Web service over Message Queuing queues. For finer-grained control over messaging and queues, you can also program Message Queuing directly through the System.Messaging namespace. Message Queuing messages are represented as byte arrays, so you should consider using the serialization services provided in the System.Runtime.Serialization or System.Xml.Serialization namespaces to simplify this task.
If you’re building a browser-based Web application, you’ll find that ASP.NET (part of the .NET Framework), makes this easy to do with features that include a server-side control model with many built-in and third-party controls, AJAX support, master pages, themes and skins, and more. For those interested in using a model-view-controller approach to building a Web site, the free downloadable ASP.NET MVC Framework is a compelling addition. ASP.NET has been such a successful framework that IIS 7.0 has deep integration with it, sporting an integrated request pipeline and administration GUI.