2010-10-14 44 views
4

我知道這個可能可能是一個主觀問題,但我想知道你的經驗和估計Winforms程序員需要多長時間才能切換到WPF並編寫一個簡單的應用程序。從Winforms移到WPF

我開始使用.Net Winforms構建一個Windows應用程序。由於客戶關心用戶界面,我認爲最好切換到WPF是一個好主意。
我對WPF很陌生,除了一些常識外,幾乎不知道它。

該應用程序是一個單用戶桌面應用程序,SQL Server Express作爲後端數據庫,將使用強類型數據集或亞音速作爲其DAL。將使用一些基本的UI元素(Datagridviews,Textboxes,Buttons,...)。正如你所看到的,這根本不是一個複雜的項目。這就是爲什麼我正在考慮爲這個項目首次使用WPF。

我不知道Winforms開發人員習慣WPF需要多長時間。
你認爲我應該使用WPF考慮它的學習曲線來開始這個項目嗎?
P.S.該項目應該在2個月內準備就緒,我是一個快速學習者。

回答

3

像Dan說的那樣,使用Canvas,你非常接近winforms,但這很糟糕。編輯:在我忘記之前,不要指望DataGrid是Winforms DataGrid之類的東西。我傾向於使用ListView(使用GridView佈局)在簡單情況下替換它。

獲得一本好書(即實用導向型)的書籍,以獲得陡峭的學習曲線。我推薦Adam Nathan的這本書,它以很快就準備好的步伐教給你重要的概念。

4

您可以使用WPF輕鬆快速地編寫「WinForms-like」(事件處理程序,代碼隱藏等)代碼,它將工作得很好。但它並不是真正的「WPF方式」,並且會限制您未來的靈活性。

+0

謝謝丹。這是豐富的。但我真正想知道的是大約需要多長時間才能寫出適當的「WPF樣式」代碼。 – Kamyar 2010-10-14 14:00:18

+2

@Kamyar,在過去一年左右的時間裏,我花了大約3個月的時間研究各種WPF項目(主要是內部工具,但生產子系統需要幾個星期)。只是在最近的項目結束時,我感覺像我終於「做得對」了,可以這麼說(儘管我確信在幾個月後我會認爲這是非常有缺陷的)。這是整體轉向理解/使用單元測試和嘲諷的一部分,這引發了一系列的理解,這有助於澄清WPF體系結構背後的原因。 – 2010-10-14 14:53:05

+0

+1爲「級聯的理解」。 WPF最終點擊時我也發生過這種情況。我現在是學習WPF的好程序員。 – bufferz 2010-10-15 00:43:33

2

我最近在開發了幾年的Windows.Forms後,在WPF中創建了我的第一個更復雜的(即不是企業,但不是hello world)應用程序。我會說開關不是太複雜。你必須學習新的類和一些新的編碼風格(例如更多的XAML定義,不同的數據綁定等)。

總的來說,我會說,如果應用程序不是太複雜,你應該在一個星期內學到很多東西,當你的項目在2個月內完成時,應該非常擅長WPF。

2

很多人覺得這是一個非常大的飛躍。估計需要多長時間很困難,因爲它取決於你來自哪裏。您可能會從reading Scott Hanselman的博客文章中獲益,因爲他在學習WPF時的經歷。它會從頭到尾完成開發過程,最終結果(Baby Smash!)可供下載。

4

對於winforms和WPF開發,有兩件有趣的事情(對我來說)。

  • 支持並採用模型,視圖,視圖模型(MVVM)開發方法。儘管過去我使用過MV *方法,但數據綁定,路由事件/命令等概念似乎很適合MVVM模式。從我的角度來看,由於關注的分離,這使得編碼更容易。

  • MVVM方法自然將用戶界面與數據/業務邏輯分離 - 但是,WPF更進一步,將用戶界面與實際顯示方式分開。 MSFT表示他們認爲設計師應該是設計師,開發者應該是開發人員,而且這兩種技能組合有時可以混合使用,但很少。因此,他們在WPF中的樣式化方法上做得非常出色,可以讓開發人員製作一個快速(醜陋)的用戶界面,然後將其交給一個設計師團隊進行清理,使其看起來很漂亮 - 所有而不會影響底層代碼。 (在MIX '09討論)

我想你可以做的最糟糕的事情是儘量把一個WinForms代碼隱藏的方法來WPF發展。首先,因爲大多數(最近)將閱讀的材料都是面向MVVM模式的,其次,因爲在MVVM模型中,您會發現應用程序的開發和維護更輕鬆一個數量級。