Unraveling Windows DNA

As of December 2011, this topic has been archived. As a result, it is no longer actively maintained. For more information, see Archived Content. For information, recommendations, and guidance regarding the current version of Internet Explorer, see Internet Explorer Developer Center.

Robert Hess
Microsoft Corporation

May 10, 1999

If you're developing applications to work with Microsoft® Windows® platforms, you've probably seen quite a bit of mention about Windows Distributed interNet Applications (DNA) and how it can help you create well-designed computer solutions in a distributed network environment. Even if you don't see a direct correlation between Windows DNA and your own development efforts, you might be surprised to find out just how versatile this architecture really is. Windows DNA is a programming model that can improve almost every programmer's work--it's not just for developers working on huge corporate applications. In fact, it can be utilized by any programmer developing for Windows today, whether you're writing a "clock" application, a high-end word processor, or factory automation software.

Windows DNA is often used to enable corporations to develop and deploy high-end distributed applications that integrate and expose services and solutions across their corporate network. But it also provides exciting potential for developers of applications that do not traditionally address the corporate market.

Expand Your Market

Take, for example, vertical and horizontal market applications. Business applications are often thought of as being "vertical market," since they are created for a target market that is very specific to a particular industry or market segment. Oftentimes, that application has terrific functionality, but is so targeted toward a specific customer that it is useless to anybody else. Examples of vertical market applications include programs designed specifically for the health care industry, brokerage services, and, say, restaurant management. Compare this to "horizontal market" applications--software written to target a general task undertaken by a wide variety of users. Examples of horizontal applications include word processors, spreadsheets, terminal emulators, and web browsers.

Vertical market applications often contain the same functionality found in horizontal applications. For example, the vertical application might provide the spellchecker of a word processor, the mathematical formulas of a spreadsheet, and the mainframe connectivity of a terminal emulator. The key difference is that the vertical market application is written around a business logic that understands the needs and workflow unique to a particular industry.

Windows DNA allows for just this type of vertical/horizontal integration. One of its primary features is its use of Component Object Model (COM) components. COM components allow the business logic to be easily distributed across multiple servers. They also enable developers to create individual components that expose their specific and strategic capabilities. Application features can then be viewed as components that can be developed individually, and then integrated into a larger solution.

Don't Wait: Integrate

One of the easiest ways to integrate componentized applications is to utilize the scripting interfaces available on Windows. The best known method for adding functionality through scripting is to use Active Server Pages (ASP). This allows a simple component to be installed onto a web server, integrating the functionality of the component into the web page through server side scripting. The component itself can be as simple as a hit counter, or as complex as a robust shopping cart component.

A scriptable component can also be utilized by Windows Script code running outside of the browser. With the recently released Windows Script Host (which ships with Windows 98 and is freely downloadable from MSDN's Scripting site for Windows 95 and Windows NT® 4.0), it's easy to develop script code that runs at the system level outside of the security confines of a web browser. This enables you to easily combine the functionality of multiple applications and components into a single seamless solution.

Let's take spell-checking functionality as an example. Such functionality can be exposed in two different ways. One way would be for a large high-end word processor to allow scriptable access to its internal spell-checker. Another way would be to develop a stand-alone spell-checker component specifically designed for scriptable access. This level of targeted component development allows for high flexibility and a highly customized solution.

So, if your company specializes in spell-checking technology, but not in typesetting or graphical layout, the best approach would be to develop a specialized component that leverages your strengths. This allows you to participate in a much larger solution, in a manner that might otherwise have not been available to you.

Such an approach also makes it easier to build large vertical applications out of a selection of quality components. You can use the traditional approach of using Visual Basic® to build custom applications, and you can integrate web page access to those features and functionality where appropriate. Since the underlying scripting access is the same between Visual Basic and Windows Script, training for one also covers most of the training necessary for the other.

If you're a developer who thought Windows DNA didn't really apply to you, I hope I've convinced you otherwise. Of course, Windows DNA contains many other features and benefits; I've only touched upon a small sub-set here. If you take the time to delve further, I'm sure you'll uncover many more additional ways to let Windows DNA help you in your development efforts.

For further information about some of the topics discussed in this article, please refer to:

The Windows DNA Home Page

Windows Scripting, and how to use it

Robert Hess is an evangelist in Microsoft's Developer Relations Group. Fortunately for all of us, his opinions are his own.