views:

533

answers:

3

Hi,

Is there any way for ActiveX controls to work on Linux? I'd imagine the answer is no, but just want to be sure.

My company is considering a Linux port of a ASP.NET project (using Mono), but it uses ActiveX controls quite heavily, so we wonder if it's even feasible.

Sorry if the question is dumb!

+5  A: 

Even if ActiveX were supported on Linux, you still should not use it, since it is rather alien (as in 'hard to maintain') on that environment.

My advice is to rewrite the entire project with AJAX or flash in such a manner that it will run in any browser on most any platform.


Mono is not ActiveX! Even if you could rewrite using client side mono for activeX, your code would only run if the client machine has a mono installation.

lexu
@lexu A lot of the ActiveX controls are third-party components, which may not have alternatives, so I think it's not gonna work. Thanks though!
David Hodgson
@David - even if you don't port to Linux, you need to move away from ActiveX. The combined market share for all versions of IE is down to 65% (IIRC) and steadily dropping.
Stephen C
Stephen: that depends on whether he is running the ActiveX controls client or server side. Your comment is relevant if the controls are running client side, but in that case the controls won't affect the port to Linux and Mono: an <object> element is just an <object> element, and Apache etc. will serve OCX files just as happily as any other kind of file.
itowlson
Consider Moonlight/Silverlight over Flash, as they integrate better with ASP.NET.
Lex Li
+2  A: 

If you're forced to use some third-party ActiveX controls, you can't use them directly on Linux - they expect a certain runtime enviroment thats not trivial to provide (it could be done, but its not viable).

The best thing you can do is to write a small host-program, running in WINE, that loads the controls and provides an alternative interface to them via a IPC mechanism.

Georg Fritzsche
A: 

As a variation on gf's answer, you could run Mono within Wine on Linux. Mono has some COM Interop support, and Wine supports COM, so in theory this will work.

Whether you want to run Mono atop Wine atop Linux is another matter, as it increases the number of things that can break.

jonp