簡體   English   中英

從Winforms遷移到WPF

[英]Moving from Winforms to WPF

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

我開始使用.Net Winforms構建一個Windows應用程序。 由於客戶關心用戶界面,我認為最后切換到WPF是個好主意。
我是WPF的新手,除了一些常識之外幾乎不知道任何事情。

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

我不知道Winforms開發人員需要多長時間才能習慣WPF。
您是否認為我應該根據其學習曲線使用WPF開始這個項目?
PS該項目應該在大約2個月內准備好,我是一個快速學習者。

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

關於winforms與WPF開發有兩個有趣的事情(對我而言)。

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

  • MVVM方法自然地將您的UI與數據/業務邏輯分開 - 但是,WPF更進一步,並將您的UI與實際顯示的方式分開。 MSFT表示,他們認為設計師應該是設計師,開發人員應該是開發人員,而且這兩種技能組合有時會混合,但很少。 因此,他們在WPF中使用樣式方法做得非常出色,允許開發人員淘汰快速(丑陋)用戶界面,然后將其轉交給清理它並使其看起來漂亮的設計師團隊 - 所有而不影響底層代碼。 (在MIX '09討論)

我認為你能做的最糟糕的事情是嘗試為WPF開發帶來一種winforms代碼隱藏方法。 首先,因為您將閱讀的大多數(最近)材料都面向MVVM模式,其次,因為您會發現應用程序的開發和維護在MVVM模型中更容易一個數量級。

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

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

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

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

關於WPF與Winforms的比較...

WPF與Windows窗體

許多人發現這是一個非常巨大的飛躍。 估計需要多長時間是很困難的,因為它取決於你來自哪里。 閱讀 Scott Hanselman的博客文章,了解他在學習WPF時的經歷,您可能會受益匪淺。 它將從頭到尾引導您完成開發過程,最終結果( Baby Smash! )可供下載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM