Last Modified September 29, 2026

Upgrading to a new Version

  1. Overview
  2. Adding software_DNA to an existing aplication that does not yet use software_DNA
  3. Offering Free Upgrades
  4. Offering Purchased Upgrades
  5. Upgrading to a new software_DNA version

 

There are multiple upgrade scenarios discussed below:

  • Adding software_DNA to an existing application that does not yet use software_DNA

  • Free Upgrade, where existing users can upgrade for free

  • Purchased Upgrade, where existing users must pay for the new version

  • Updating the software_DNA Client as part of the Upgrade to the new software version

 

Adding software_DNA to an existing aplication that does not yet use software_DNA

  • Create a Product in software_DNA and configure the settings as required

  • Add the software_DNA API calls in a new version of your software and test

  • You can then make available the upgrade to your customers either as a free upgrade or paying upgrade. Each customer will require a License Activation Code and will have to activate his copy of the application.

    If this upgrade is a paying upgrade and you use one of the eCommerce systems supported by software_DNA, then the upgrade process including the delivery of the License Activation Code can be automated.

 

Offering Free Upgrades

For an application that is already protected by software_DNA, you can easily offer free upgrades to your application with little impact on your existing customers.

  • Create the new version using the same <Product Key> as the existing version and let users download the new version as required

  • During the installation process of the upgrade, do not delete the local ".CDM" License file. The user should be able to continue running the application with no activation or re-activation of his License Code

  • Worst case, the user may have to re-activate his License with his License Activation Code and Password

 

Offering Purchased Upgrades

The recommended approach is to create a distinct Product in software_DNA with it's own <Product Key> and it's own set of License Activation Codes, and distribute these new License Activation Codes when users purchase the upgrade

If you use eCommerce solutions connected to software_DNA, then also define a new product within the eCommerce solution and connect it to the software_DNA Product for a fully automated fulfillment process.

If you plan to offer the Upgrade to existing customers at a different price then to new customers, the ideal process includes the validation of the customer’s existing License Activation code for the old version before allowing the Purchase or Activation of the new License Activation code for the new version.

 

Code Validation during the Purchase process

The following eCommerce Connectors support the validation of the License Code during the Purchase Process before the Order is accepted:

  • FastSpring Springboard
  • Direct Connection

Consult their eCommerce Integration Guides for further details

 

Offering Discount Coupons after Code Validation

Alternatively, the eCommerce solution may support Discount Coupons that would be issued to existing Users when purchasing the upgraded version.

For example, FastSpring Dashboard provides an API interface for the creation of Discount coupons that could be used as follows:

  • the User visits your Website to view the Upgrade information and request a Discount Coupon
  • the User provides their existing License Code to your Website
  • your Website issues a VALIDATE_CODE request to the DNA DIRECT Connector which returns the "status" of the License Code (see our DIRECT Connector Guide)
  • based on the result, your Website issues a API Call to Fastspring to "create" a one-time discount coupon, and displays it to the Buyer
  • the User buys the Upgrade with the coupon, and gets a new License Activation Code
  • the User installs the Upgrade, and activates with the new License Code (the App needs to allow this even though the old CDM License file is still there and valid)

 

Code Validation during the Activation Process

The "old" License Code is validated when the User attempts to activate the "new" License Code. This will occur after the Purchase of the new License code. Legitimate users will see a normal activation process, but other users will need to contact you to resolve the issue.

The following is a suggested approach although not the only one:

  • Define a 2nd product in your eCommerce solution with a different price

  • Define a 2nd product in software_DNA with a distinct PREFIX and connect to your eCommerce

  • During the installation process of the new upgrade, do not delete any existing CDM License file

  • In your software application, when the user activates the new Upgrade:

    • Identify the PREFIX of the License Activation Code

    • If it is the PREFIX for the discounted upgrade to existing users, verify that a "CDM" license file already exists by performing a DNA_Validate() call with the <Product Key> of the previous version to ensure it is a valid license for the previous version

    • Rename the existing CDM License file, and activate the new License Activation Code, which will create a new CDM License file

    • If the activation is succesful, delete the previous CDM License file

There are multiple variations of the above, and, if the Paid Upgrade volume is low, a manual approach can be used just as well

Consult the softWORKZ Technical Support Team if you have any questions

 

Upgrading to a new software_DNA version

To update your App to a new Library Version:

  • update the DNA Library in your project
  • update the DNA_INT file in your project
  • update the MD5 or SHA1 Hash code if you are authenticating the DNA Library
  • re-compile and test
  • ensure your installation script keeps the existing CDM License file to avoid a License re-activation
  • release

In general, DNA Libraries are forward compatible, but if not (and this would be noted in our Release Notes), it may require the user to perform a re-activation of his License.

Consult the softWORKZ Technical Support Team if you have any questions