2009-10-29 67 views
1

我有一個Web應用程序,廣泛使用Windows公共控件ActiveX控件用戶界面。這些主要包括ListView,Treeview,通用對話框等。通過這些控件,我可以在加載時獲得非常好的性能,並且這些控件還提供了與JavaScript的良好通信。替代VB6 ActiveX控件 - 基於Silverlight或.NET的ActiveX控件

最近我啓用了支持應用程序中的Unicode字符,並開始面對這些控件的問題,他們只是將這些Unicode字符呈現爲'???'。這是特別發生的雙字符(例如中文,日文等)。

我想用新的和更強大的東西來替換這些控件。當然,我不想使用.NET服務器控件或任何客戶端腳本控件,如ExtJS或DhtmlX,因爲性能永遠不會相同(使用ActiveX加載15000行的性能,其中數據通過JavaScript逐行傳遞的速度非常快)。

我想知道如果我想要替換這些控件,我有什麼替代方案。它是基於Silverlight還是基於.NET的ActiveX控件?我的客戶端瀏覽器將始終是IE7 +,並且在客戶端上安裝Silverlight或.NET框架不成問題。然而,主要的標準是這些控件的使用以及與JavaScript的通信來加載這些控件應該與我們目前對VB6 ActiveX控件所做的一樣接近。

如果任何人都可以建議任何提供這些控件的供應商,那就太棒了。

在此先感謝。

+0

另外我的理解是,這些是在Windows本機應用程序,如資源管理器中使用的相同的控制。在那種情況下,爲什麼這些控件默認不顯示Unicode字符。還有一些設置可以通過JavaScript調用來啓用Unicode支持嗎? – 2009-10-29 12:00:50

回答

0

雖然有些銷售商銷售Silverlight控件,但您可以使用,但無法在HTML頁面中直接使用這些控件。相反,您將不得不創建一個Silverlight應用程序,該應用程序可以是控件的簡單包裝。 Silverlight應用程序可以使用JavaScript與瀏覽器對象模型進行交互,反之亦然,以便與Silverlight應用程序進行交互。但是,如果性能很重要,您應該讓Silverlight應用程序直接與Web服務器交互。

我想提一提,Silverlight不需要安裝.NET框架。 Silverlight也在Mac上運行,並且Silverlight運行時包含.NET框架的修剪版本。

0

Silverlight(與工具包一起)具有您提到的所有開箱即用的控件。它與Javascript的良好交互不僅可以使用JavaScript來操縱Silverlight內容,Silverlight應用程序代碼還可以很好地訪問包含瀏覽器的內容。

但是,由於您將始終使用IE7,並且很樂意在客戶端上安裝SL和.NET框架,因此它會建議您對客戶端計算機進行重要控制。在這種情況下,爲什麼在瀏覽器中提供UI?

您可以使用一鍵安裝(或組策略基礎MSI安裝)構建基於WPF的應用程序。您可以在RIA中使用完全Silverlight應用程序,因此瀏覽器僅僅是一個主機(使用Javascript的良好通信變得不重要)。

+0

這種情況是,我無法在這個應用程序中投入太多資源,只想替換新控件所需的代碼(可識別Unicode的控件)。 我已經經歷了各種Silverlight控件,但那些最適合在Silverlight應用程序中使用。想知道是否有任何Silverlight控件可以提供與JavaScript之間的完全交互,而不是圍繞那些現有的控件編寫包裝。 – 2009-10-29 11:34:53

+0

在這種情況下,我認爲SL不適合你。如果你需要用有限的資源做這個改變,我認爲你有麻煩了。你可能會發現你可以將一些.NET控件作爲ActiveX組件來模擬,並模擬你已有的東西。 – AnthonyWJones 2009-10-29 12:40:13

+0

您是否有任何有關Windows操作系統本身使用的控件的信息,例如內部使用Treeview和Listview控件的Windows資源管理器應用程序。我的猜測是這些只是Windows公共控件包中提供的ActiveX控件。如果是這種情況,那麼我在我的網頁中使用與ActiveX控件相同的控件。 – 2009-10-30 05:18:42