|SocketTools 10 Upgrade Information|
This section will help you upgrade an application written using a previous version of the SocketTools ActiveX Edition. In most cases, the modifications required will be minimal and may only require a few edits and recompiling the program. However, it is recommended that you review this entire guide so that you understand what changes were made and how those changes can be implemented in your software.
SocketTools 10 is supported on Windows XP SP3 and later versions of Windows, including Windows 10 and Windows Server 2019. Earlier versions of the operating system, including Windows 95, Windows 98, Windows Me, Windows NT 4.0 and Windows 2000 are no longer supported by Microsoft and are not compatible with SocketTools.
Developers who are redistributing applications which target Windows 10 or Windows Server should upgrade to ensure compatibility with the platform and current development tools. Support for secure connections on Windows XP and Windows Vista should be considered deprecated because those platforms do not support TLS 1.2 and most services will no longer accept connections from a client using TLS 1.0. The minimum recommended version of Windows is Windows 7 SP1.
The SocketTools 10 ActiveX controls may be used with any programming language that supports the Component Object Model (COM) and ActiveX control interface. This includes languages such as Visual Basic 6.0, Visual FoxPro and PowerBuilder. Although the ActiveX controls may be used with Visual Basic .NET and Visual C#, it is strongly recommended that you use the SocketTools .NET Edition if you are creating applications for the .NET Framework.
If you are developing on Windows Vista, Microsoft only supports Visual Studio 2005 or later versions. If you are developing on Windows 7 or Windows 8.1, it is recommended that you use Visual Studio 2010 or a later version. Earlier versions of Visual Studio may require that you use those development tools with elevated privileges. If you cannot upgrade to the current version of Visual Studio, it's recommended that you continue to develop on the Windows XP platform using a virtual machine.
If you are developing on Windows 10, the Visual Basic 6 runtime is supported on Windows 10, but the IDE is no longer supported by Microsoft. Visual Studio 2019 supports the use of ActiveX controls, although we generally recommend using Visual Studio 2019 and the .NET Edition for development on the current Windows platforms.
Upgrading From SocketTools 9
If you are upgrading from SocketTools 9, applications will be source code compatible with the SocketTools 10 ActiveX controls. In most cases, all you will need to do is install the current version, update the control references in your project and recompile your application. It is important to note that the control file names, class IDs and interfaces have changed and are not binary compatible with previous versions.
The runtime license key has changed for SocketTools 10, which may require you to redefine the value in your application when calling the control's Initialize method. As with previous versions of SocketTools, you can use the License Manager utility to generate a file which contains the runtime key you should use. The version 9.0 and earlier runtime license keys are not valid for the version 10 controls and an error will be returned if an invalid runtime key is specified.
Your application should not attempt to reference the current version of a control and an earlier version of the control within the same application. When upgrading to version 10, first remove all references to the earlier version of the control, save the project and reload it. Then add the reference to the version 10 control, ensuring that the same object name is used. If you are creating an instance of the control dynamically by specifying its ProgID, such as using the CreateObject function, then it is recommended that you specify the version number as part of the ID. For example, to create an instance of the FTP control, use "SocketTools.FtpClient.10" and not simply "SocketTools.FtpClient". If the major version number is omitted, the latest version of the control will always be loaded.
With SocketTools 10, all secure connections using TLS (Transport Layer Security) will now only use TLS version 1.2. By default, the controls will not support connections to servers that use older, less secure versions of TLS or any version of SSL. They will also no longer use weaker cipher suites that incorporate insecure algorithms, like RC4 or MD5. The only exception to this is when the application is running on Windows XP, Windows Vista, Windows Server 2003 or Windows Server 2008, in which case the controls will revert to using TLS 1.0 because those platforms do not support the current version of TLS. For applications that require secure connections, it is recommended that you upgrade to the current version of Windows, with all security updates applied.
Future support for TLS 1.3 has been added to SocketTools 10, however Microsoft has not officially announced support for TLS 1.3 in Windows 10 or Windows Server 2019. It is unlikely that Microsoft will support TLS 1.3 on Windows 7 or Windows 8.1 or earlier versions of Windows Server. Until Microsoft announces support for TLS 1.3, your applications should continue to use TLS 1.2 as the default for secure connections.
It is possible to force the controls to use earlier versions of TLS for backwards compatibility with older servers. This is done by explicitly setting the SecureProtocol property to specify the protocol version required. However, this is not generally recommended because using an older version of TLS (or any version of SSL) may cause servers to immediately reject the connection attempt.
Upgrading From SocketTools 8
If you are upgrading from SocketTools 8, most applications will be source code compatible and not require significant changes to existing code. The control file names have changed, as have their class IDs and interfaces. This means that the new controls are not binary compatible and are not drop-in replacements for earlier versions of the control.
The runtime license key has changed for SocketTools 10, which will require you to define the new key in your application when calling the control's Initialize method. As with previous versions of SocketTools, you can use the License Manager utility to generate a file which contains the runtime key you should use. The version 8.0 and earlier runtime license keys are not valid for the version 10 controls and an error will be returned if an invalid runtime key is specified.
Applications which continue to use SocketTools 8 and earlier versions can be installed side-by-side with the version 10 controls. It is not recommended that you attempt to use different versions of the same control within the same application.
SocketTools 8 and earlier versions established secure connections using versions of TLS which are now considered deprecated. Most services today will reject connection attempts from clients who request TLS 1.0 or SSL 3.0. SocketTools 10 uses TLS 1.2 by default for all secure connections, however some older servers which have not been updated may reject the connection attempt. It is possible to force SocketTools 10 to use an earlier version of TLS for backwards compatibility by explicitly setting the SecureProtocol property to specify the protocol version required.
Control File Names
The file names of the ActiveX controls and their IDs have changed with the new version. The following table lists the new values which should be used in your application. For more information, refer to the Redistribution section.
Copyright © 2021 Catalyst Development Corporation. All rights reserved.