ActiveX is a software application development framework Introduced by Microsoft in 1996. ActiveX framework was geared towards web application development by combining and adapted version of earlier COM (Component Object Model) with the Object Linking and Embedding Technologies (OLE) which is widely used for downloading contents from the websites.
Although theoretically, ActiveX was created with the intent to work on all the platforms but it is mostly used on window platforms and due to compiled code it is executed mostly with Intel x86 hardware machines.
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 .NETsupports 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.NETframework and their downsides on the basis of certain attributes.
|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||Can be used by any application once installed.||Not all applications can use it and they require granular permissions for access.|
|Installation Permission||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.
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.
Overall .NET Framework is much advanced, robust, secure and reliable to 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.