ActiveX is a software application development framework Introduced by Microsoft in 1996. The ActiveX framework was geared towards web application development by combining and adapted versions of earlier COM (Component Object Model) with the Object Linking and Embedding Technologies (OLE) which is widely used for downloading content from the websites.
Although theoretically, ActiveX was created with the intent to work on all the platforms it is mostly used on window platforms, and due to compiled code, it is executed mostly with Intel x86 hardware machines.
ActiveX controls are used in Internet Explorer to allow you access to interactive content, including toolbars, videos, and games. To access the content on a new website using the IE, you will need ActiveX controls installed. The Internet Explorer will alert you about downloading and running a plug-in. The Explorer saves the ActiveX control and will use that app to interact with content on the same site.
Are ActiveX controls still used today? Yes, though the legacy ActiveX framework works with Microsoft’s Internet Explorer and not Microsoft Edge.
The introduction of modern technologies like JavaScript and HTML5, among other cross-platform controls, switched many users from ActiveX controls. Microsoft Edge, for example, was released with built-in support for Adobe Flash and PDF rendering. It means that most of the offerings of ActiveX controls are available via many other easy-to-use and secure frameworks.
Apart from HTML5 and JavaScript, users have access to several modern-era browser extensions. Instead of ActiveX, you can choose to use WebAssembly modules.
Microsoft.NET is an advanced software application development framework developed by Microsoft. .NET is basically a group of several application development technologies ranging from web, desktop to mobile applications. Microsoft.NET supports a variety of languages and CLR makes it possible to integrate the modules developed in different languages.
This article compares both of the above-mentioned Microsoft Technologies in a tabular form. It explains the advantages of both ActiveX and Microsoft.NET framework and their downsides on the basis of certain attributes.
Microsoft’s .NET has three implementations: .NET Framework, .NET Core and Xamarin/Mono. The .NET Framework implementation came first and though it is open-source, it works only on Windows. .NET Core is a .NET implementation that has support for Windows as well as Linux, and macOS. Both .NET Framework and .NET Core support C#, Visual Basic and F#. .NET Framework and .NET Core implementations have two major components – Common Language Runtime (CLR) and Base Class Library (BCL).
.NET 4.8 and .NET 3.1 are the latest versions for Framework and Core respectively. Microsoft’s cross-platform .NET is set for a .NET 5 version (November 2020) and .NET 6 version (a long term support (LTS) in November 2021).
The Xamarin/Mono implementation of the .NET platform is for running all mobile-based apps, including on iOS and Android.
You can choose between the .NET Framework and .NET Core when you want to use .NET to create server-side applications. Note that both provide support for many of the .NET components. However, due to a few differences, choose one over the other in these circumstances:
Choose to use the .NET Framework when you have an app that currently uses this implementation (and instead of migrating to .NET Core, extend .NET Framework support). Use .NET Core when you need cross-platform interoperability and are using docker containers or you require microservices.
While Microsoft has plans to better the .NET framework, ActiveX is part of the legacy IE technologies not supported in Microsoft Edge.
Here is a tabulated comparison of ActiveX and .NET, two frameworks released by Microsoft Technologies. We look at the features and/or advantages of each, with a further highlight the downsides of ActiveX.
Property | ActiveX | Microsoft.NET |
Window OS Portability | Works with all window versions except windows RT | Works only with advanced Windows Versions |
Language Portability | Compatible with all windows based languages | Support Only .NET languages |
Execution Speed | Might be faster in some scenarios due to unmanaged code execution | Slower at times due to managed code. |
Application Access | It can be used by any application once installed. | Not all applications can use it and they require granular permissions for access. |
Installation Permission | It should be installed by admin only instead of copy-pasting the DLL. | Do not require administrator permissions to be installed |
Security | Extremely insecure because code is not managed before execution. | Much secure due to managed code. |
dll Hell | DLL hell issue often arises in ActiveX framework because multiple applications are accessing the same dll which might be updated by one application while it is being used by the other | No Such issue in Microsoft.NET Framework |
Apart from the comparisons described above in the table, there are few advantages of Microsoft Framework over the traditional ActiveX technology.
.NET assemblies after certain modifications in code can be used as ActiveX dlls by using the ActiveX wrapper. This is helpful in scenarios where you want to port your application from VB 6.0 to VB.NET which results in the usage of the application on 3rd party .NET interfaces along with 3rd party ActiveX interfaces.
Note
ByteScout has products which can handle this scenario and allows a user to port their applications.
Administrative permissions are not required in .NET for using ASP.NET applications.
ActiveX contains only unmanaged code which is a security risk. On the other hand, .NET contains both unmanaged codes for faster execution and managed code for security and granular control over the application.
ActiveX controls tend to malfunction, often resulting in users getting content other than what they wanted. Nefarious actors have also been known to use ActiveX controls to collect user information. Installing unwanted software via ActiveX control malware on your PC exposes you to the theft of personal details and other security risks.
Overall .NET Framework is much advanced, robust, secure, and reliable for application development and it supports a variety of application development options, on the other hand, ActiveX is older technology with certain security loopholes hence it should be avoided as much as possible.