學習C#語言時。現在所有的應用程序都在開發中。我會更專注於Windows窗體開發或WPF開發。我想開發使用ADO.net進行SQL Server數據庫訪問的軟件。同時獨立的應用程序與Microsoft Office集成,以創建圖表和圖形等...什麼是C#中最好的chioce,Windows窗體或WPF開發?
回答
儘管對於Windows UI來說,兩者都可以實現類似的結果,但它們的功能與其目的是相互獨立的。
WinForms的嘗試是真實的,由於根源很強而不發展。這並不意味着WinForms已被棄用。這僅僅意味着WinForms的基礎類已經很完善並且很靈活。請記住通過Control類和深度工程UI消息傳遞(通過WinForms類公開的句柄)來擴展WinForms的靈活性。
然而,WPF是設計用戶界面的抽象層,不一定或完全是Windows用戶界面。跨越最困難的障礙是從基於座標的用戶界面(像素/位圖/索引)的想法轉變爲基於矢量的用戶界面,其中WPF可以適應幾乎任何尺寸控制或渲染平面。
WPF的好處是,您正在爲您的應用程序學習三個不同的目標 - Windows UI,SilverLight和現在的Windows Phone。 WinForms面向Windows用戶界面和Windows Mobile(CE)。基於常用小部件的乾淨UI在WinForms中具有適當的基礎。如果一個自定義的動態用戶界面是你的目標,那麼就讓WPF旋轉。
我會使用WPF,因爲它也可以讓你使用同樣的XAML標記做Silverlight應用程序。
話雖如此,有馬的課程,所以你需要爲任務選擇合適的工具。這確實意味着你需要知道雙方作出明智的決定。 :)
與WPF的學習曲線,絕對是陡峭得多 - 在同一時間,你馬上就能在Windows窗體中一些簡單的用戶界面,填寫關於ADO.net或SQL Server數據庫訪問您的需求。一旦將圖表/圖表添加到組合中,您將希望學習WPF。你
可能也想看看LightSwitch的,這需要一些使用Silverlight/WPF複雜的照顧。
雖然WPF是未來,它給了你這麼多的靈活性,我不建議完全切換到WPF。另外,如果您有一位能夠在設計部分工作的設計師,您將能夠充分利用WPF。我並不是說你需要一個設計師,但是根據我對WPF的經驗,如果你想開發一個殺手級的應用程序,你肯定需要知道WPF的位和字節。就像BrokenGlass所說的那樣,WPF的學習曲線太陡。所以,只需要逐步切換。如果您已經有一些Windows窗體應用程序,請嘗試重寫WPF中的一些應用程序。
那種東西你正在試圖做的可以同WinForms和WPF來完成。 WinForms是一個比較熟悉的範例,但是一般來說(大但是)XAML,特別是WPF並不是未來,但是當前在.NET中執行Windows UI的方式是,WinForms是過去它基本上處於維護模式現有的應用程序,我敢說新應用程序已經過時了)。是的,XAML的學習曲線有點陡峭,但你獲得的能力是值得的,除了XAML/WPF/Silverlight上有更多的資源(書籍,圖書館),而WinForms則有很多但是停滯不前(我沒有'在幾年內沒有看到任何新版本的WinForms書籍)。值得注意的一件事是XAML的數據綁定能力,它使不必要的許多代碼將數據從/傳送到對象/數據集到/從可視控件。
因爲你的主要目標是學習C#,所以你應該更專注於語言特性,而不是你的UI。你應該嘗試學習和使用C#的各種功能,以及它支持什麼和如何。學習(C#)將更多地用於開發應用程序的業務層和數據層,而不是您的UI;所以你應該首先集中精力建設這些圖層(使用任何表示框架)。
我不確定您是否有任何控制檯應用程序,WinForms,WPF或ASP.net的任何經驗,但爲了學習目的,您應該選擇一個最適合您的應用程序。如果你開始新鮮的話,我會建議你先從WinForms開始,因爲你將在WinForms中編寫很多C#代碼,然後在WPF中編寫代碼,然後再選擇WPF。
我的回答是完全專注於事實,你的首要目標是學習C#,而不是其UI框架更好等
WPF和XAML是一個學習曲線,但我的經驗是可以建立更加強大,簡潔,並在更短的時間內支持應用程序。可以將XAML從一個頁面複製並粘貼到另一個頁面。在Windows窗體上,我放棄了從一個頁面(表單)到另一個頁面的UI元素的複製和過去,因爲它太多次地鎖定了整個應用程序。雙向數據綁定是一個夢想。 WPF UI具有更商業級的外觀。可移植性到Silverlight。對我而言,這是我從C++中獲得的一小部分努力的98%。
誰不喜歡我的答案?我是一個生活的開發者。我沒有說明任何絕對 - 只是我的意見。是什麼給了否定? – Paparazzi 2011-06-30 01:32:19
- 1. WPF或Windows窗體
- 2. WPF或Windows窗體
- 3. 什麼是Windows窗體最好的免費皮膚庫?
- 4. 什麼是Windows下最好或最常用的C++編譯器?
- 5. 在Windows窗體或WPF
- 6. 在Windows窗體上使用WPF有什麼好處?
- 7. 什麼是Windows窗體的``StartPosition`屬性的WPF等價物?
- 8. 從VBA代碼打開.NET WPF窗口或Windows窗體
- 9. WPF開發中最常犯的錯誤是什麼?
- 10. 對於Wpf(或Windows窗體)的Dnx
- 11. 什麼是Windows窗體的基類?
- 12. 什麼是eclipse最好的小字體?
- 13. C#Windows窗體中的按鈕(開/關)
- 14. - 什麼是最好的語言開始?
- 15. 什麼是最好的WP7:SQLite或Data.Linq?
- 16. 什麼是保存/加載Windows窗體的最佳方式ToolStripMenuItem
- 17. C#Windows窗體發射Keypess
- 18. WPF或Windows窗體應用程序
- 19. Windows窗體或WPF - 記得在DataGridViews
- 20. 在Windows窗體中繪製立方體的最簡單方法是什麼?
- 21. iOS開發。 MySQL的? SQLite的?最好的辦法是什麼?
- 22. 什麼是更好的開發遊戲
- 23. .NET Windows窗體事件觸發的順序是什麼?
- 24. 什麼是最好的開發「添加」的瀏覽器
- 25. 什麼是'最好的'XNA開發的PC遊戲?
- 26. 什麼是好的網頁開發字體?
- 27. Linux中最好的C++開發環境
- 28. 什麼是最好的C#字體選擇控件?
- 29. C#添加WPF按鈕到Windows窗體
- 30. 什麼是Microsoft開發人員最好的操作系統?
我覺得*太*陡有點太多了。 XAML/WPF確實需要學習很多東西,但我不會說這是不可逾越的:幾個月前,我幫助一個沒有以前的XAML經驗的團隊學習,然後推出Silverlight 4應用程序,這是一個滑坡次,但該項目完成了所有權利和團隊瞭解XAML :-) – 2010-09-22 01:19:08