I was at SD West last week and a gentleman asked me whether it was possible to host a .NET control inside of Internet Explorer. At first I was kind of surprised at this question because I haven’t heard it brought up in years. But looking around at SD West, it makes perfect sense. AJAX was all the rage at SD West, and it should be – you can do some great things with AJAX. But AJAX can be kind of hard. Even if you’re using Atlas or Ruby on Rails, you still have to dig into client-side script to make things work.
I think some of the reasons that AJAX is so hot is because it combines the rich experience of a user application with the zero-deployment of a web application. That is pretty compelling. One funny thing about AJAX is that it really isn’t all that new of an idea. The XmlHttp object that is a fundamental part of AJAX has been around since the late 90’s. That’s not all AJAX is of course, but it certainly is a big part of it. Once upon a time, it wasn’t a best practice to use the XmlHttp object too much, or even too much client-side script in general because there was no consistent client-side script support between browsers. Even between minor versions of IE there were inconsistencies. Over time, as browsers came and went, we finally have consistency, so developers can write AJAX applications and be confident that their applications generally work across the major browsers.
Anyways, where I’m going with this is that I wonder if the pervasiveness of the .NET framework might fuel a resurgence of IE-hosted user controls?
With the big .NET download and install out of the way, could hosting WinForms controls in IE enjoy the same type of success as AJAX? Winforms has as much, if not more, interactivity and richness as AJAX, with a programming model in C#/VB/etc that is more familiar for a large number of developers.
I haven’t done a control hosted in IE in a long, long time – I think the last time was an ActiveX control in ATL.
I dug out this quick start that shows how to write IE-hosted Winforms controls:
In another posting, I’m going to try building my own – I know there are some security concerns, but it seems like CAS, CASPOL.exe, etc provide some reasonable solutions.
Anyways, stay tuned for a “hello world”-style control coming soon …