Introduction
As web application developers, we want to give our users a highly functional application. We want to provide our users with functionality like printing streams, local socket programming ,local threading, cross domain scripting etc., but as we know that due to the disconnected architecture of the Internet and security restrictions of any standard browser, this task becomes difficult. That’s when the ActiveX comes to the rescue. This is mostly for web applications where the users would not be apprehensive about doing a one time installation of the component. Also, in an intranet application these components can be a big boost to the functionality of the application.
Writing ActiveX Class in C#
We will first write an interface called ASignatures which holds the signatures of the methods and properties. These methods and properties can then be accessed via JavaScript at the browser level. By default all members of an interface are abstract and public. The main ActiveX class AClass will inherit from this interface. Above the main ActiveX class we will mention the ClassInterfaceType as AutoDual. This will indicate the type of the interface generated for the main class which will automatically be generated and exposed to the COM. Normally AutoDual is not recommended because it has some versioning limitations. We will use the ClassIntrefaceType as AutoDual because the purpose of this code is instructional. In the main class we will write two methods FName(), and SName() and one property Age. In our example we will return the basic datatypes but this can be implemented for complex datatypes too.
Compiling the ActiveX control
For those who do not know how to compile out of Visual Studio IDE, you need to search for the c# compilercsc.exe in the folder:
Place your AClass.cs file in the folder where the csc.exe exists. Then by command (DOS) interface go to that particular folder and execute the following command:
Registering the Assembly with the client
You can register the assembly in multiple ways of implementation and it mostly depends on the target users. For example, creating a setup file for download or having a self extractor file which could prompt in the browser, depends totally on the functionality requirement. However for our example we would register the assembly by using the command prompt which is the easiest and could be done by a batch file too. Therefore, in same folder as above immediately after the compilation step we execute the following command:
Also we must note that the .NET Framework needs to be installed on the client for registration and working.
Using the ActiveX control
We can then access our newly created ActiveX control via JavaScript. We will simply display the data returned by the methods and property in alert boxes. The below code demonstrates how we can access the properties in the ActiveX control.
This will work like a charm in Internet Explorer but may need an API plugin for other browsers like FireFox or Safari.
Summary
In this article you have seen how we can increase the functionality of our web application by implementation of ActiveX controls in C#. The practical applications of ActiveX are limitless especially for graphics and multimedia.
About Imran Nathani
 |
Sorry, no bio is available
This author has published 5 articles on DotNetSlackers. View other articles or the complete profile here.
|
Other articles in this category
Introducing LINQ – Part 1
Introducing LINQ is the first part of a series of articles on Language Integrated Query (LINQ). This...
Polymorphism and Encapsulation
Polymorphism and encapsulation are two big words in OO development, and are also a fundamental conce...
Introducing LINQ – Part 2
In the first part of this series I introduced you to the new language enhancements in C# 3.0, in thi...
Introducing LINQ – Part 3
In Part 2 we took a look at LINQ to SQL, how to generate an entity, and also how to query that entit...
Introducing LINQ – Part 4
In the previous few parts of this series we have talked a lot about what LINQ can give you, in this ...
You might also be interested in the following related blog posts
ASP.NET MVC2 Preview 2: Areas and Routes
read more
VS 2010 Code Intellisense Improvements (VS 2010 and .NET 4.0 Series)
read more
Choose your preferred data layout with RadListView for ASP.NET AJAX
read more
Designer v Xaml v Code
read more
Silverlight Toolkit adds DragDrop targets!
read more
Searching and Navigating Code in VS 2010 (VS 2010 and .NET 4.0 Series)
read more
Q3 2009 Beta released for Telerik RadControls for Silverlight/WPF
read more
Behaviors vs Subclassing in Silverlight
read more
Tapping Into the Raw Power of Silverlight
read more
Gauges to join ComponentArt's expanding list of controls
read more
|
|
Please login to rate or to leave a comment.