2009-10-21 53 views
5

我們正在考慮將我們的用戶界面遷移到XBAP。 我們選擇了XBAP,儘管知道客戶必須預先安裝.net,因爲我們不是針對大衆,而是針對企業環境中的IT專業人員, ,這是一種保護我們投資的方式(在基於WPF的用戶界面在客戶端 - 服務器體系結構中)並享受Web部署。然而,我們擔心平臺/架構的成熟性以及它的採用。XBAP使用和成熟度問題

你知道使用XBAP的任何商業應用嗎?你有使用它的經驗嗎?你能詳細說明這個經驗嗎?

此外,正如@Murph建議的,您能想到強烈的理由更喜歡clickOnce over XBAP(或其他方式)嗎?

+0

在看這一個也需要問爲什麼XBAP over Clickonce?不幸的是,我可以通過任何一種方式做很多事情! – Murph 2009-10-21 10:03:51

+0

好問題,我不得不說我不知道​​哪個更好,會更新我的問題。 – 2009-10-21 10:08:09

+0

讓每個人都難過!我想爲賞金選擇一個接收器,但是StackOverflow不允許這樣做(花費太長時間)。我認爲這真的很糟糕,我在meta網站上寫過,但是我無法改變這一點。所以我向大家道歉,並感謝您的幫助! – 2009-11-02 17:37:02

回答

2

我們在ClickOnce方面取得了很大的成功,其中包括對外部非技術客戶的生產鋪開。它易於使用,包括易於集成到我們的自動構建過程中。我們的經驗至少有一個數據點供您在權衡兩種替代方案的風險時考慮。

你說得對,XBAP的採用確實非常低。我認爲這主要是因爲Silverlight對於大多數在瀏覽器中希望獲得WPF/DotNet的好處的人更有意義(因爲他們的應用程序可以通過Silverlight跨平臺)。

+0

能否詳細說明第一點 - clickOnce?是否容易角色更新? (或者它是一個複製和每次點擊運行?),正如我所說的,我們的動機主要是快速輕鬆地部署幫助臺用戶。至於第二點 - 再一次,我們希望使用盡可能多的現有代碼,並且似乎Silverlight在使用我們的通用程序集等時會受到更多的限制,因爲silverlight項目不能引用非silverlight程序集。 – 2009-10-29 16:20:44

+0

是的,推出更新非常簡單 - 這是ClickOnce的核心部分。因此,您將工具的新版本發佈到安裝它們的HTTP服務器上,下次運行它時會自動升級。你可以控制它應該是多麼的嚴厲:強制更新,提示更新等。 – 2009-10-29 19:38:49

+0

你對Silverlight的理解完全正確。我只提到它是XBAP採用率低的一種可能的解釋,而不是作爲您在這個問題上使用的建議。部分信任的 – 2009-10-29 19:40:34

1

我可能是錯的,但IIRC XBAP使用ClickOnce作爲其底層部署方法。 [無法找到我讀這個,所以拿一粒鹽。]

這就是說,我已經通過ClickOnce部署運行WPF應用程序很成功。如前所述,您將所有文件部署到您的Web服務器。在發佈更新時,只需將它們複製到Web服務器上,當客戶端運行應用程序時,系統會提示您更新到最新的版本,您可以要求更新或允許它們延期。

它非常用戶友好,不需要瀏覽器的開銷來運行您的應用程序。

3

我一直在做一個XBAP工具,也用於內部企業需求。部署更新非常簡單 - 只需更新服務器應用程序版本,客戶端下次連接時就會更新。因此,在這方面它與ClickOnce並無太大差別。

我們面臨的主要問題是「部分信任」模式,你必須服從。在某些非常意外的情況下,它會出錯,例如,我們的一些第三方WPF失敗了,因爲它們使用了WPF位圖效果,後者又使用了GPU着色器,這被視爲系統的安全違規並被阻止。我不確定ClickOnce是否解決了這類問題。傳言是XBAP信任模式在.NET 4中將不那麼偏執。

否則,我沒有看到任何區別。至少XBAP與獨立WPF的發展完全相同。 (注意:Silverlight不同,它只使用.NET框架的一個子集,它是單獨安裝的並可用於多個平臺.XBAP需要Windows平臺和.NET Framework 3+)。

+0

,使用模態對話/打開新窗口等有多困難/容易?我讀過,打開一個新窗口將派發彈出窗口阻止程序,有沒有辦法讓它在沒有進一步本地配置的情況下工作? – 2009-11-02 13:48:16

+0

通常,您不允許打開新窗口或使用自己的對話框(http://msdn.microsoft.com/zh-cn/library/aa970910.aspx)。您可以調用一些標準對話框,例如文件打開,並且可以創建彈出式實例。不知道他們是否會被阻止,但您也必須自行實施「模式」(http://social.msdn.microsoft.com/forums/en-US/wpf/thread/ef66f6a7- eb9d-42f6-86ba-7fbefb72fa95 /)... – 2009-11-02 14:26:38

+0

另一個問題 - 我的客戶端調用Web服務,通​​過app.config配置WCF。當我使用XBAP時,我無法找到部署它的方法,而且由於該過程在PresentationHost的上下文中運行,因此無法使用app.config。你有沒有使用app.config的替代經驗(尤其是在Web服務環境中)?(部署另一個文件並手動加載?使用硬編碼配置?) – 2009-11-02 15:00:52

2

我們開發了一個既有桌面又有web實現的應用程序。由於功能幾乎相同,我們需要單一來源解決方案。該應用程序是CAD應用程序的項目和圖紙管理工具。使其在瀏覽器中運行的最重要原因是應用程序將用作交換項目數據和繪圖的協作工具。

與瀏覽器承載的應用程序的問題是,他們在瀏覽器中運行,因此僅限於適用的規則(如在另一個回答如提到的新窗口和信任的限制)。

因爲我們的應用程序主要用於控制內部網和外部網,我們認爲我們可以與我們的解決方案管理。我們的應用程序以完全信任的方式運行,並使用我們自己的證書進行簽名,使生活變得輕鬆一些

的好處當然是通過網站點擊一次安裝(和更新維護),並讓用戶安裝應用程序「隨時隨地」的能力(需要.NET或課程,並在我們的情況下,證書)。信任,導航,我們可以解決的對話

我們面臨的最大問題是相關的。另一個問題是我們的應用程序使用Web服務來訪問數據。客戶端與Web服務之間的綁定在默認情況下非常困難(嵌入式),但我們也找到了解決此問題的方法。

我們也可以運行我們的瀏覽器之外的應用程序(但可通過瀏覽器進行安裝)。但是,我們的產品所有者目前需要瀏覽器體驗,因爲這對用戶來說更有意義。如果您通過網站安裝,但在瀏覽器外部運行該應用程序,則瀏覽器所需的限制較少。

2

這是一個有趣的事實。在.NET 4.0中,他們增加了通過ClickOnce部署的XBAP應用程序以完全信任的方式運行的能力。不再需要部分信任。這應該給你一些選擇!