Take It to the 'Net
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.
July 12, 1999
A lot of focus is being paid to Web-based applications, whether they are simple Web sites that have increased their functionality to a point of interactive productivity, or they are solutions that started out life as full-blown Web-based applications. However, there are still plenty of traditional computer programs out there—programs that users buy in software stores and install onto their systems without ever touching the Internet. As more and more users gain Internet connectivity, doesn't it make sense to try to determine how even traditional applications can use this technology? Are you doing what you can to bring your application into the Internet Age?
There are a lot of different ways that an application can leverage Internet technology. Many of those ways depend on exactly what your application does, and what services it offers to its users. There are even some fairly straightforward features and benefits that you can provide for your users without too much change in the current structure and design of your application. In fact, with perhaps only a few additional lines of code that simply add a new menu option or two, you can start to take direct advantage of Internet technology.
Product News and Information
Probably the easiest thing to add is a menu item off of the Help menu that links users directly to the product information area of your Web site. The Web can be a pretty daunting array of addresses, links, and navigation—and many users have a hard time finding their way. If you can do anything to assist users in connecting to the pages on your site that specifically target the users of your product, it will do a lot to help your users feel comfortable with that product.
In this manner, you could provide numerous features on your Web site. Primarily, the enhancements should focus on encouraging some notion of "community" --for example, tips and tricks on how to use the application, information about other products your company sells that integrate well with this application, and technical information and downloadable samples that further enable your users to use and understand your application. Anything you can do to create a better experience for users will increase their loyalty and appreciation of the services your company provides.
The next level of simple information connectivity would be to connect to a page notifying users about important product updates. This could be done easily by simply tacking on the user's product version onto the URL that you use to access the "News and Information" page. Part of the information included on that page could then alert users to updates or patches that specifically target their version.
One of the biggest problems for all software developers is the fact that a computer's configuration is a constantly changing environment. Applications have countless dependencies to underlying system services, device drivers, registration settings, or other applications installed on the system. While operating-system design continues to attempt to add features that can stabilize the environment that applications run in, the dynamic nature of application interaction makes this an extremely complex and difficult task. It is highly recommended that applications provide some notion of validating the system configuration that they have important dependencies on. While developers can do a lot in this regard when applications are first developed and shipped, issues can arise after the fact that weren't anticipated, or possible to anticipate, when the product was first developed. This makes the ubiquitous Web connectivity an extremely important and useful feature.
Probably the best real-world scenario of this is offered by virus-detection applications, and the way they work. While an anti-Virus application can do a lot to safeguard against all types of viruses, there will always be crafty (a.k.a. demented) people who will find ways around the existing safeguards. This makes it important for the developers of anti-virus programs to be constantly on the lookout for the latest computer viruses, and to ensure they know how to protect against them. The only problem is that once a company ships its anti-virus applications, how does it provide updates to protect users against new attacks? Most anti-virus applications now provide direct Web connectivity to allow the user to quickly and easily download upgrades, patches, or detection scripts that are added to the anti-virus application so that it can continue to provide a safe computing environment for the user.
This same approach can be used by traditional application developers to provide self-healing configuration management tools for their applications. It could either be a separate application that the user would download and run, or it could be a patch or DLL-based service that the original application interacts with in order to deal with configuration issues. Such a tool could greatly aid in lowering tech support calls, and thus lower the cost associated with the application itself.
This identifies only the simplest and most straightforward steps that a company can take to move its application forward. If you aren't currently doing something like this already, you should be asking yourself why not? If you are, then perhaps it's time to ask, "What next?"
Robert Hess is an evangelist in Microsoft's Developer Relations Group. Fortunately for all of us, his opinions are his own.