views:

528

answers:

2

I have a web application which extensively uses Windows Common Controls ActiveX controls for User Interface. These mainly include Listview, Treeview, Common Dialog etc. With these controls I get very good performance in load times and also these controls provides very good communication with JavaScript.

Recently I enabled supporting Unicode characters in the application and I started facing problem with these controls where they are simply rendering these Unicode characters as '???'. This is specially happening with double by characters (e.g. Chinese, Japanese etc...).

I would like to replace these controls with something new and more powerful. Certainly I don't want to go with .NET Server Controls or any Client base Script controls like ExtJS or DhtmlX since the performance will never be same (performance with loading 15000 rows using ActiveX where data is passed through JavaScript row by row is pretty fast).

I would like to know what alternative I have if I want to replace these controls. Is it Silverlight or .NET based ActiveX controls? My client browser will always be IE7+ and having Silverlight or .NET framework on client is not a problem. However the main criteria is that usage of these controls and communication with JavaScript for loading these controls should as close to as we currently do with VB6 ActiveX controls.

If anyone can suggest any vendor who provides these controls that would be great.

Thanks in advance.

A: 

While there are vendors that sell Silverlight controls that you can use you are not able to directly use these controls in your HTML page. Instead you will have to create a Silverlight application that could be a simple wrapper around a control. It is possible for the Silverlight application to interact with the browser object model and vice versa using JavaScript to interact with the Silverlight application. However, if performance is important you should probably let the Silverlight application interact directly with the web server.

I want to mention that Silverlight doesn't require the .NET framework to be installed. Silverlight also runs on the Mac and the Silverlight runtime includes a trimmed version of the .NET framework.

Martin Liversage
A: 

Silverlight (along with the toolkit) has all the controls out-of-the-box that you've mentioned. It has good interaction with Javascript not only can you use javascript to manipulate the Silverlight content, silverlight application code has good access the the containing browser.

However since you will always be using IE7 and are happy to install SL and .NET frameworks on the clients it would suggest that you have significant control of the client machines. In this case why deliver the UI in a browser at all?

You could build a WPF based applicating with a one-click install (or group policy base MSI install). You could use a fully Silverlighted app with RIA so the browser is merely a host (good comms with Javascript becomes immaterial).

AnthonyWJones
The situation is that I am not in a position to put much resource in this application and would just like to just replace the required code only for new controls (controls which are Unicode aware). I have gone through various Silverlight controls out there but those are best suited to be used within Silverlight Application. Wanted to know if there is any Silverlight control which provides complete interaction with JavaScript out of the box rather than I writing wrapper around those existing control.
Ajay Singh
In that case I don't think SL is for you. If you need to do this change with limited resources I think you're in trouble. You might find you can shoe horn some .NET controls as ActiveX components and emulate what you allready have.
AnthonyWJones
Do you have any information about what controls are used in Windows OS itself for application like Windows Explorer which internally uses Treeview and Listview controls. My guess was those are nothing but the ActiveX controls which are available in Windows Common Controls package. If that is the case then I am using the same controls in my web page as ActiveX controls.
Ajay Singh