June 5, 2011, 10:10 p.m.
posted by optimum
Creating a WCF Client for a Lotus Notes Domino Server Web Service
Lotus Notes is a popular messaging and collaboration tool sold by IBM. Lotus Notes Domino is a Web server designed to publish information from the Notes data stores. Domino currently provides the capability to expose BP 1.1 services for use in client applications and scenarios such as B2B. Although Lotus does have client development tools, Enterprises that utilize notes and the consumers of Domino-published content may want to develop clients using Visual Studio.NET. This is particularly desirable for many companies looking to take advantage of technologies such as the Windows Presentation Foundation (WPF) for a rich user experience, the Workflow Foundation (WF) for workflow, and the Windows Communication Foundation (WCF) for secure, reliable, transacted services.
Fortunately, it's very easy to do this using the same SvcUtil.exe utility that we used in the preceding exercise.
Microsoft has a licensed copy of Domino Server running the site http://www.msdomino.net that is populated with content by our colleague Gary Devendorf. Gary is a Technical Evangelist at Microsoft, and he helps customers interoperate between Lotus and Microsoft technologies, or migrate over from Lotus to Microsoft solutions.
On this site, Gary has created a Web service for placing orders over the web that are deposited in a Lotus Notes database. This Web service provides operations that allow you to place an order, change the status of an order, and check the status of an order.
In this exercise, you will create a console application that places an order and immediately checks the status of that order. It then calls the service to change the status to Approved and check the status once more. As part of testing the service, we'll go to a Domino web page to validate that the order has been received and has been approved.
Creating the WCF client for our WCF service will be virtually identical to how we created the WCF client for the ASMX and WCF services in the earlier example, using SvcUtil.exe. In this case, we're using the same approach to interoperate with a non-Microsoft Web server: