Developing Imaging Applications in Windows: Past, Present and Future

Imaging application development has benefited greatly from client/server architecture that utilizes server processing power to speed up image viewing and manipulation. Distributed applications facilitate the incorporation of important document imaging functions, such as annotations, into workflow processes which enable users to process documents quickly and collaborate effectively. Originally, companies developed distributed imaging applications with COM technologies. Currently they are also able to build on the .NET Framework to standardize functionality and deployment across multiple business units. In the upcoming upgrade to .NET Framework 3.0 (formerly called WinFX), developers will have a unified platform for developing client- or web-based applications using both COM and .NET technology in a managed environment.

For many years COM technology was the only method for developing Windows applications that interacted with each other and users' systems. COM commands, which include ActiveX controls for Internet applications, are written in unmanaged, native code (C or C++). These controls communicate directly with the client's system and can write to the Registry without user approval. This makes them very powerful but also creates concerns about security. COM and ActiveX controls are still used today to build applications that rely mainly on client-side processing.

By comparison, the .NET Framework (introduced in 2002) takes a managed code approach, a reaction to both security concerns and Sun's Java platform. In this approach, as the program executes the runtime environment compiles commands and other necessary information to ensure the program works correctly and securely. With .NET, developers can build imaging applications using the .NET base class library and third-party libraries and SDKs designed to give them access to powerful imaging functions.

In the upcoming Windows Vista, .NET 3.0 will be the new API for Windows development. It will extend the current .NET Framework 2.0 and incorporate Win32 functions into a managed environment. This means that developers can build distributed applications entirely in a managed framework — including COM controls — or they can continue to call unmanaged COM and ActiveX functions to work outside their managed code. However, two significant changes are that unmanaged COM controls will no longer be able to freely access the client's Registry and ActiveX will not be able to initiate controls in a browser without user permission or scripting.

Two new components of the .NET Framework 3.0 useful for developing imaging applications are the Windows Communications Foundation (WCF) and Windows Presentation Foundation (WPF). These components provide a programming structure and specific APIs for constructing applications. The WCF is a rich technology platform for building distributed systems, Client/Server or Node/Node, that enables both local and remote interoperability between applications. WPF is a model for building consistent applications, whether installed on a client machine or accessed over the Web, and will unify other graphical aspects of applications including vector and raster image handling.

Imaging software vendors will also be able to offer more powerful tools that take advantage of the .NET 3.0 Framework's better integration of core Windows' systems and expanded base class library. But, the greatest strength of .NET 3.0 is compatibility with applications built on the .NET 2.0 Framework. This is good news to companies developing in, or considering switching to, .NET because they can continue to work with current third-party tools and technology.