我一直在使用Windows Forms一段時間,並且由於Forms的某些限制,我想按照更好的方式製作GUI。我發現WPF,看起來很有希望,但我問你們,如果有什麼更好的方法用C#爲Windows做好GUI? 在此先感謝!WPF是C#GUI的最佳解決方案嗎?
回答
我會尋找他們計劃推動平臺的MS路線圖和說明。例如: .NET Technology Guide for Business Applications
這是自2013年11月以來,但仍然有很大程度上有效。除此之外它指出(重點煤礦):
.NET的Windows Presentation Foundation
這對於需要UI複雜的Windows桌面應用程序的首選技術,風格 定製和圖形 - 用於桌面的密集場景。 WPF也利用XAML視圖。 而WPF開發技能類似於Windows Store開發技能,因此從WPF遷移到 Windows Store應用程序比從Windows Forms遷移更容易。
HTML5 &基於JS的應用程序是一種替代路線,但我認爲它由於開發效率和可維護性原因而較差。如果你是一個腳本小夥子,那麼值得一看。
根據我的經驗,WPF絕對是用於桌面開發的方式。
與WPF相比,HTML和JS是一個笑話...如果你需要它。我使用使用Direct3d進行快速渲染的圖表,我編寫可打開多個屏幕的應用程序。 HTML和JS無法做到這一點 - 他們是爲了簡單的東西。 – TomTom
肯定有一個學習曲線從Forms開發遷移到WPF,但在我看來,這項工作非常值得,而不僅僅是因爲WPF與Windows Forms在美學上有所不同。
WPF鼓勵您沿着MVVM(「模型 - 視圖 - 視圖模型」)路徑和UI,邏輯和數據元素之間的關注點分離。另外,MVVM是衆多MV *體系結構模式之一 - 關於不同模式之間差異的構成有一些爭論,但關於分離關注的共識絕對是一件好事。例如:
https://nirajrules.wordpress.com/2009/07/18/mvc-vs-mvp-vs-mvvm/
What is difference between MVC, MVP & MVVM design pattern in terms of coding c#
在了形式獨特的優勢而言,有很多的東西,你用WPF獲得外的開箱,像雙例如雙向數據綁定和UI線程。但是我發現,思考問題的變化同樣重要。當我開始思考MVVM時,異步編程(例如從基於Windows的客戶端應用程序調用Web服務)等概念和理由變得更加容易。在網絡開發中,MV *也是所有的憤怒,所以技能(以及理想世界中的一些代碼)可以轉移到網絡上。
- 1. 最佳解決方案
- 2. 最佳SQL解決方案?
- 3. 最佳解決方案
- 4. SQLite是備份Heroku上的postgres的最佳解決方案嗎?
- 5. Cookie會議是React的最佳解決方案嗎?
- 6. Box2D是我iphone遊戲場景的最佳解決方案嗎?
- 7. 數據透視表是最佳解決方案嗎?
- 8. 最佳的asp.net crud解決方案?
- 9. 「Array chaining」的最佳解決方案
- 10. Null DateTime值的最佳解決方案
- 11. 解決方案結構/最佳實踐
- 12. 最佳解決方案後Gurobi回調
- 13. XML和MQ最佳解決方案
- 14. 最佳體系結構解決方案
- 15. 最佳解決方案架構
- 16. 最佳實踐:解決方案參考
- 17. 在WPF/C中實時刷新設備UI的最佳解決方案#
- 18. 構建nservicebus解決方案的最佳方式是什麼?
- 19. WPF應用程序的最佳本地數據庫解決方案是什麼?
- 20. 在c中表示Data [i,j]的最佳解決方案?
- 21. MS SQL,C++解決方案的最佳全文搜索替代
- 22. 在C中動態帳戶連接的最佳解決方案?
- 23. 檢索出文本最佳解決方案嗎?
- 24. 最佳解決方案:擴展方法還是新類?
- 25. 班級延伸 - 最佳做法/最佳解決方案
- 26. 什麼是mysql連接超時的最佳解決方案?
- 27. 什麼是Flash圖表和圖形的最佳解決方案?
- 28. 什麼是創建幫助頁面的最佳解決方案?
- 29. .NET Workflow Scheduling,最佳實踐,它是正確的解決方案
- 30. 什麼是此更新的最佳解決方案
鏈接到一篇文章(即使四歲,我會說它仍然成立):http://stackoverflow.com/questions/9752375/which-windows-gui-frameworks-are-currently-worth-learning –
我發現WPF比winforms好得多,但第一年或第二年的學習曲線卻是一團糟。這是對事物的不同思考方式。使用模板進行數據綁定可以快速實現乾淨,可維護的UI。 –