Interoperability is an application’s ability to communicate and work side-by-side with other applications that are not necessarily targeted to the same platform. Along with scalability, it is one the most precious philosopher’s stones in the world of open computing. It is precious because it yields practical results. Interoperability is an elusive and unquantifiable basic element of computing, but you and your users can detect and appreciate its underlying presence. Implementations will differ according to the context and timing of your applications. You create the proper conditions for interoperability, but it is always the offspring of a successful marriage between design issues and real-world coding solutions.
Interoperability is like a common API that is callable from different platforms and computing contexts. Interoperability enables Microsoft Win32 and Microsoft Windows 3.x applications to talk to each other. Interoperability allows you to retrieve data from different data sources by using the same data access technology such as OLE DB or ODBC. Interoperability orchestrates the exchange of documents between applications regardless of formats, storage media, and platforms such as Microsoft BizTalk. Interoperability relies on universally accepted protocols and languages, and in particular takes advantage of XML (eXtensible Markup Language), which is a standard that specifies a syntax that allows you to create your own markup language.
Interoperability touches a number of areas in the .NET Framework. For example, it involves the interaction between managed code and existing COM components. It deals with remote objects and serialization to enable applications to communicate beyond the boundaries of their own application domains. Finally, interoperability involves the exposure of the data to external platforms.
In this chapter, I’ll examine a couple of these aspects: the interaction of a .NET Web application with existing COM components in general and with ADO in particular; and data serialization to customized XML formats. While covering the former point, I’ll explore the broader topic of migration from COM to .NET systems. While covering data serialization, I’ll describe a number of features in the .NET Framework, such as XML support and object serialization. To put all this into more practical terms, in this chapter, you’ll find concrete information about two main topics: interaction with existing business objects and formatting .NET data for use on other platforms.