我參與了一個項目,其中一個開發團隊正在構建一個非常長期的基礎設施項目,以取代現有的10年曆史的系統。 「非常長期」我的意思是從發佈時起,它必須在未來運行,支持和維護至少10年。考慮到〜2年的發展,這意味着我們現在應該選擇一種技術/語言/框架來持續至少12年。我們完全控制運行項目的計算機,操作系統等。我是將要被替換的10年前系統的開發者,我正在幫助團隊建立新的系統。選擇C#與WPF超長期項目?
該應用程序具有非常複雜的用戶界面。 UI是在啓動時從配置文件動態構建的,每個UI組件都依賴於邏輯和其他UI組件,它們必須在運行時接收。 UI元素本身是非常複雜的,想象的定製儀表,圖表,旋鈕等
兩種選擇已經在對項目進行了,我不判斷或嘗試改變:
- 這將是一個桌面應用程序
- 將在C#開發
現在我們在選擇正確的框架的一個點,使我們非常靈活的UI系統「易於開發」,即依靠降低開發者的錯誤數量在已調試的,已經制作的框架上。
該團隊審查了微軟的CAB(複合用戶界面),它非常適合它的用途,但事實上微軟在2007年停止使用這個事實是一個考慮到項目長期方面的巨大問題(想想一個框架bug在6年內被發現 - 誰會提供支持? - 我知道我們可以在CAB中修改代碼,但這是我們想要避免的)。
顯而易見的一件事是依靠微軟的WPF。它似乎是UI開發的「未來」,但它在長期考慮這個問題時會嚇到我。我主要關心的是市場不會接受它,從現在開始3年微軟將停止它,並且從現在起6年,我將無法得到適當的支持。
但是,除了編寫我們自己的框架之外,我並沒有真正看到其他選擇。我不想不尊重任何第三方框架開發人員,但對於這樣一個長期項目,我只能使用來自非常成熟的供應商的產品/框架/等。
我很感激對於選擇WPF是否是給定上述上下文的正確調用(如果不是這樣 - 對於使用C#的這樣的長期桌面應用程序項目來說什麼是正確的「複雜UI框架」?)。
謝謝(對不起長問題)
感謝您提供豐富的答案。關於你的笑話 - 我真的認爲,在我們的日子裏,計劃未來10年幾乎是不可能的,因爲軟件和硬件廠商推動我們每2-3年進行一次升級的速度...... – 2009-05-25 10:31:43
「Silverlight(微軟真正關心的)」五年後,這句話很有趣...... – Yaurthek 2014-04-28 09:33:39