Manage Software Licensing
First look at Desaware's Licensing System.
Managing software licenses correctly for your applications can be difficult. Desaware's Licensing System provides a well-designed infrastructure for a solid system that handles many licensing scenarios successfully.
Licensing System uses strong 128-bit cryptography to generate server-based keys that build on .NET's strongly named assemblies. This approach's main benefit is that you don't need to install any kind of secret data on the user's machine, such as a hidden file, or data in the Registrya requirement that makes other protection systems relatively easy to break, because the software is no longer protected if the secret is discovered.
Desaware's tool enables a variety of licensing scenarios, ranging from rigorous security in which a user must have an Internet connection to use your software, to less-secure, more-flexible arrangements. You can create a demonstration license that expires after a certain number of days, allow the creation of a temporary key until an Internet connection is present, or even implement fairly strong security without requiring an Internet connection. These options let you balance convenience with security, and it's difficult to imagine a scenario for .NET applications the Licensing System can't work for.
The system's server is an ASP.NET Web service you can install on any Internet Information Services server. The Web service exposes two services: Management and Activator. Management provides a set of methods for managing the server; for example, you can add entries for new applications you'll activate, create a resource file for activating licensing in an application, and generate installation codes. The License Manager tool provides a simple interface to these management Web methods (see Figure 1).
The Activator service exposes only one methodActivatewhich implements public access to the licensing server your application contacts to activate a license key. It takes an application name, data stream, and binary key as parameters and returns a result code, such as Success, DemoExpired, or InvalidCode. This simple, clean interface, kept separate from management functions, helps keep your license system as secure as possible.
Licensing System uses a system-identification algorithmbased on a hash of the computer name, system disk volume ID, and addresses of any Internet adaptersto prevent a code's use on multiple systems. This prevents your app from needing to pass information that might invade a user's privacy to your server. However, you can write code to modify how the ID is generated, making it looser or more exacting.
Licensing System provides a fine balance of usability, security, and flexibility for .NET applications. A limited-functionality trial version is available for download.
Desaware Licensing System
Price: $1,495 for one server and one client license
Quick Facts: Complete system for server-based licensing management.
Pros: Flexible options; code access to features; strong encryption.
Cons: Available only for .NET applications.
About the Author
Don Kiely is a senior technology consultant. When he isn't writing software, he's writing about it, speaking about it at conferences, and training developers in it. Reach him at firstname.lastname@example.org.
Build Installation Routines
by Ken Cox
Posted December 8, 2003
InstallShield DevStudio 9 is a high-end tool for developing sophisticated setup routines for Windows-based software. InstallShield has embraced basic Microsoft Installer (MSI) functionality, extended it, and made it easier to use. The product also supports InstallShield's own highly capable engine, which uses InstallScript.
An installer must check the user's machine for requisite hardware, provide missing components, hold the user's hand, create menu entries, and cope with OS variations, Registry settings, and unknown service packs. DevStudio is a complete solution that includes wizards galore. They range from VB6 installations and patches through Web and Windows Mobile setups.
The well-designed Project Assistant interface walks you through a basic setup package (see Figure 1). The tasks include checking the installation requirements, creating the dialog boxes that "interview" the end user about optional features, and building multiple distribution formats. For example, when you indicate that your application requires Internet Explorer (IE) 6.0 on the target machine, Project Assistant prompts you for the message to display if IE6 isn't found.
Project Assistant is a tool for novices and experts alike. Well-placed links to additional help topics appear at key decision points, such as whether you need a custom requirements module. Project Assistant lets nonlinear thinkers jump among tasks without losing data. The assistant runs fine inside the VS.NET IDE, but the excessive scrolling can be annoying in the cramped environment.
Specialists who write and debug complex scripts will appreciate the dozens of predefined functions, designer previews, and reminders. For example, DevStudio prefills customer-support information that appears eventually in the Add/Remove Programs entry.
The Web Project wizard performs a Web setup on Internet Information Services (IIS) for ASP.NET applications. The wizard knows about the IIS root folder and grays out inappropriate options, such as adding desktop shortcuts to executables. However, the default file location (the Program Files directory) is questionable for Web files. Also, the wizard doesn't offer to configure the Web as an application-a common cause of ASP.NET problems.
The software's CD version includes a helpful poster that outlines the installation process for a basic MSI structure and an InstallScript setup. The documentation is complete, professional, and integrated. DevStudio checks the InstallShield site for updates and patches on startup. The IDE includes a link to community pages for peer-to-peer and official support.
Setup kits are a crucial element of software development and a major contributor to an end user's out-of-the-box satisfaction. DevStudio 9 is a polished tool that can give you a head start at making a good first impression.
Phone: 800-374-4353; 847-466-4000
Quick Facts: Advanced tool for creating installation packages for Windows-based software.
Pros: Excellent UI acts as a resource, teaching tool, and wizard; handles a wide range of installation types; has dozens of predefined functions; supports Microsoft Installer and InstallScript.
Cons: Interface is cramped inside the VS.NET IDE; Web install could use more features.
About the Author
Ken Cox is a VB.NET developer in Toronto building e-commerce Web applications and XML Web services. Ken is a former broadcast journalist and a Microsoft MVP for ASP.NET. Reach him at email@example.com.