Do you want to commercialise an existing software package? Does your company need to provide a software package to support your consulting services? Do you want help converting an application into a commercial package that you can sell? Do you want to provide your software package as a self-contained download from your web site?
We are experienced in the product development of commercial software packages. A commercial package has special requirements that are very often over and above that of an in-house application. A commercial package often requires multi-platform resilience, product activation, license control, localisation (multi-language), patch management, online help and a user guide, source code and database protection using obfuscation and an installer. We specialise in developing bespoke packages using SQL Server, C#, C++ and ASP.NET.
Creating an installer is a complex task. We can help you produce a self-contained installer that can be downloaded from the web or delivered to your customers as one file. We have expertise in the development of installers using InstallShield and Windows Installer MSI packages. We have a deep understanding of MSI technology and have developed our own tools to manipulate MSI packages.
Do you need to ship a database as part of your software package? We have proven expertise in integrating Access and MSDE into commercial software packages. MSDE is an ‘engine-only’ version of SQL Server that can be integrated and shipped with a software package without a license cost. We have developed MSDE tools that have been purchased and downloaded from our web site by developers all over the world.
There are a number of important considerations when developing a shrink-wrapped software package. Perhaps you are planning to deliver your application on installation media (CD/DVD) or via your website as a download. If so, you need to consider:
Providing a resilient and robust software package that will be installed and used by a customer in an environment outwith your control needs careful thought and planning. Will your application operate on a variety of platforms? Will your application adapt to each platform’s differences?
Are you missing out on an untapped market just because your package is only available in English? If your package could be used by customers who use non-English languages, will your package operate correctly? What will happen if your package is installed on a different langauge platform or if the operating system’s regional settings are changed? How can you isolate the text in your source code to simplify language translation?
Patch management is the process of co-ordinating the deployment and maintenance of interim releases of your package. How do you distribute patches to your customers? How do you prevent your customers from losing data or configuration settings when they apply a patch? How do you implement self-updating technology to your package?
License Control & Product Activation
Product activation is a license validation procedure that protects software products from piracy and unauthorised use. How do you build product activation into your package? Do you need to produce a time-limited or feature-limited evaluation edition of your package? How does a customer activate your package?
Source Code Protection
There are plenty of tools available that make it simple to ‘disassemble’ an application or database in order to extract the source code. Your source code is your intellectual property – you need to protect it! Software products can be protected using techniques such as encryption and obfuscation. How do you protect your package?
Making your package easy to use is especially important if you do not have direct contact with your customers. For instance, if your package is purchased and downloaded from your web site how easily will your customers be able to install, use and troubleshoot your software product? The quality and completeness of your help documentation could make the difference between a customer using or abandoning your product. Does your package have an effective online help system? How do you implement context-sensitive help in your package so that customers only see help information that is relevant? How do you simplify the authoring of help content while publishing in other languages or multiple formats such as HTML help, WinHelp, Web site help or PDF.?
According to a recent First Annual Business Software Alliance (BSA) and IDC Global Software Piracy Study, “Nearly 30% of all application failures related to installation errors”. Developing a robust installer helps you avoid install-related application errors. How do you target different platforms with different installation files? How do you perform non-standard installation tasks such as adding registry keys, licence acceptance, product activation or MSDE installation?