- 1. What is ActivePatch?
ActivePatch is a software development toolkit designed
specifically for updating files on another computer system. By analyzing the differences
between two sets of files, the original version and an updated version, ActivePatch can
create a package which only contains the differences between those versions and update a
target system with the changes. Technical support for ActivePatch ended on
March 31, 2014 and this product is no longer available for sale.
- 2. What are the minimum system requirements?
ActivePatch requires Windows 2000 or later versions of the Windows platform.
The minimum memory and disk space requirements for end-users are the same as
for the base operating system. Any functional differences between the platforms
are handled internally by the components and/or libraries without requiring
additional coding on the part of the developer. The following table lists the
minimum operating system versions required:
Operating System |
Minimum Version |
Windows 2000 |
5.00.2195 |
Windows XP |
5.10.2600 |
Windows Server 2003 |
5.20.3790 |
Windows Vista |
6.0.6000 |
Windows Server 2008 |
6.0.6001 |
Windows 7 |
6.1.7600 |
It is required that Windows 2000 have Service Pack 4 (SP4) installed on the system
for both developers and end-users. For Windows XP, Service Pack 3 (SP3) must be
installed and it is recommended that developers using Windows Vista install Service
Pack 2 (SP2).
- 3. What programming languages can ActivePatch be used with?
The ActivePatch toolkit includes both an ActiveX component
and a standard Windows dynamic link library. The ActiveX component is primarily designed
to be used with visual development languages such as Visual Basic and Delphi but can be
used with any language that supports the ActiveX standard. ActivePatch is also available
as a standard DLL which can be used by virtually any programming language. Both the
ActiveX component and the DLL are completely self-contained and do not have any
dependencies on third-party libraries. Both offer similar performance and functionality,
so the choice of which to use is largely up to the individual preferences of the
developer.
- 4. Can ActivePatch be used with Visual Studio .NET?
Yes, ActivePatch can be used with Visual Studio .NET 2003 and Visual Studio 2005.
You can import the ActivePatch ActiveX component directly from the IDE and a runtime
callable wrapper will be created which will allow your application to access its
properties, methods and events. To use the ActivePatch DLL from managed code,
you will need to use the DllImport attribute to define the parameters of the
functions that you wish to call. For more information, please refer to the Visual Studio
documentation.
- 5. What kinds of files can ActivePatch update?
ActivePatch can update both text and binary data files.
When ActivePatch compares the differences between files, they are analyzed at the byte
level. This makes ActivePatch suitable for updating any type of file such as executable
programs, word processing documents, and databases, as well as custom data files in a
binary format.
- 6. Can ActivePatch be used with very large files?
ActivePatch was primarily designed for creating individual patches and updated packages
for software installations and is optimized for files that are less than 50MB in size.
While the product can be used to create patches of larger files, it will typically
require much more time to generate a patch for files that are larger than 50MB. Note
that this only affects the time required to generate the patch, not the time required
to apply the patch on the end user's system. We do not recommend using ActivePatch
with individual files that are larger than 250MB.
- 7. What are the principal advantages of using ActivePatch?
ActivePatch can significantly reduce the time and expense
of updating files. Because ActivePatch analyzes the differences between two versions of a
file, only the data which has changed is needed to update a previous version of a file to
the current version. This reduces the amount of time a user must spend updating their
software and/or data, as well as the expense of providing the update.
Instead of requiring that an updated version of the product be shipped to a customer on CD,
updates can be made available directly over the Internet. If a company already distributes
updates through the Internet, ActivePatch can significantly reduce the size of those updates.
This results in conserving bandwidth, reducing costs, and permits more updates to be quickly
distributed to more customers. Updates that are immediately available and require minimal time to
download also encourage customers to use the current version of the software. In turn, this
improves customer service and reduces the cost of providing technical support.
- 8. Can ActivePatch be used for more than just updating software?
While certain features of ActivePatch are specifically
designed for updating software packages, any type of file can be updated. For example,
ActivePatch can be used to periodically update systems which use a local copy of a shared
database. It could also be used to manage a repository of documents, spreadsheets, and
other data, automatically updating client systems when one or more of the files have
changed. ActivePatch can benefit any application which needs to distribute or use modified
versions of any type of file.
- 9. Are there any royalties or runtime licensing fees with ActivePatch?
The development license allows you to use the ActivePatch
component and/or library with any number of products and redistribute it to any number of
end-users. There are no restrictions on creating or applying patch files or packages and
then redistributing them to end-users for any number of products. Unlike other products
which restrict the creation of patches to a single system, any application which uses a
licensed copy of ActivePatch can be used to create an unlimited number of patches.
- 1. How is using ActivePatch different from data compression?
Compression reduces the overall size of the file. However,
it includes all of the data in the file. ActivePatch analyzes the original version of a
file and the updated version, and only includes the data that has changed. For example,
consider a Microsoft Access database which is approximately two megabytes in size. A user
changes several records in the database and those changes then need to be sent to another
user at a remote location. Compressing the database would result in a file that would
probably be around 500-700K in size. However, because ActivePatch analyzes the differences
between the original version and the updated version, that same update could be as small
as 5K in size.
- 2. How is using ActivePatch different from an archiving program?
Archiving programs are designed to compress and store
collections of files, and there are third-party toolkits that allow applications to create
and manage these archives. The ActivePatch toolkit includes functions for managing
collections of updated files which are called a package. Packages are similar in concept
to archives. However, unlike the simple data compression used by archiving programs,
ActivePatch only includes those files which have changed and only the changes within each
specific file. This means that when compared to an archive of a collection of files,
ActivePatch packages can be significantly smaller than archives created by programs like
PKZip or WinZip.
- 3. How is patching different from incremental updating?
An incremental update consists of a collection of all the
files which have changed between two versions. A patch package consists of the changes
from within each individual file, resulting in a significantly smaller update.
- 4. What is the difference between ActivePatch and other patching software?
One of the key differences is that ActivePatch is designed
primarily as a software development toolkit, not as an end-user product for developers.
Other software packages which provide patching capabilities typically include one program
which is used for creating the patch, and another program which is used for applying that
patch. ActivePatch is designed to be directly integrated within an application, giving
that application complete control over the update process. While some products do provide
an API for applying a patch, control over the application process is typically very
limited. In contrast, ActivePatch provides an extensive API for managing and updating
patch packages.
- 5. What is the difference between ActivePatch and an installation toolkit?
ActivePatch is not a general purpose installation toolkit.
However, it can be used in conjunction with software such as InstallShield. ActivePatch is
designed specifically for updating previous file versions to their current version.
ActivePatch does share some similar functionality with general purpose installation
software such as the ability to create new files, manage shared files, and register
ActiveX components. Application developers who wish to use ActivePatch to update their
software should use a general purpose toolkit to initially install the product on the
user's system. From that point on, ActivePatch can be used to apply any subsequent updates
to the software without requiring the developer to create a new installation package for
each update.
- 6. What is the difference between a patch file and a patch package?
A patch file contains the data that has changed between
two versions of a file and the instructions required to convert the original version of
that file into the updated version. A patch package is a single file which contains the
data and instructions required to update a collection of files. Individual files may be
added, removed, or modified when the update is applied and multiple versions of the same
file may be included in a single package.
- 7. Are ActivePatch packages compatible with tools like WinZip?
Packages are designed and optimized specifically for the
distribution of file updates. Although an ActivePatch package is similar in concept to a
Zip archive, the two formats are not compatible.
- 1. Does ActivePatch include utilities to create and apply patches?
Yes, utilities are included with the toolkit that can be
used to create individual patch files and packages. The complete source for these
utilities is included with the product and can be modified to meet any specific needs you
may have.
- 2. Does ActivePatch use a scripting language to create patches?
Unlike other software packages which are used to create
patches, it is not required that you learn a special-purpose scripting language to create
patch packages. In many cases, only two methods and a few lines of code are required to
create a package. However, for those applications which require more complicated packages,
you can use your favorite programming language, including scripting languages like VBScript or JScript,
to create a package that meets your specific needs.
- 3. Can ActivePatch be used to distribute updates?
The ActivePatch toolkit is specifically designed for the
creation and application of updates. For deployment over the Internet, we recommend that
you use the SocketTools ActiveX Edition or SocketTools Library Edition which contains
components and/or libraries for uploading and downloading files using the standard FTP and
HTTP protocols.
- 4. Why are patches for executables larger than for data files?
A patch is based on the differences between an original
version and an updated version of a file. Typically, changes to text and data files (such
as Microsoft Access databases) are localized to specific areas of the file. Changing a
single record, for example, results in an extremely small patch file since only that one
record has changed. However, when an application is recompiled, even though the source
code changes may be small, there are a large number of changes made throughout the entire
file. This results in a larger individual patch file because each of those changes must be
stored in the patch. In some cases, increasing the patch level can reduce the size of a
specific patch, at the expense of increased memory and longer build times.
- 5. Does ActivePatch use any third-party libraries which must be redistributed?
Both the ActivePatch ActiveX component and the library are
completely self-contained and only require libraries which are part of the base operating
system. In particular, there are no dependencies on the Microsoft Foundation Classes
(MFC42.DLL) library or the Microsoft Visual C++ Runtime (MSVCRT.DLL) library.
- 6. Is there any performance benefit in using the ActivePatch library?
There is no significant difference in performance between
using the ActiveX component or the standard DLL. The choice of which to use in a
development project should be based on preference and the language being used to develop
the application.
- 7. Can the ActivePatch ActiveX component be used with Visual C++?
Yes, the ActiveX component can be used in a Visual C++
project. However, most C/C++ programmers will probably find the library interface easier
and more intuitive to use.
- 8. Can the ActivePatch library be used with Visual Basic?
Yes, the library can be used directly within Visual Basic.
The ActivePatch library includes a type library and can be referenced in a Visual Basic
project which will give the developer access to all of the functions and constants listed
in the documentation. However, most Visual Basic programmers will probably find the
ActiveX component easier and more intuitive to use.