2012-06-11 72 views
2

我開發的桌面(winforms)應用程序沒有遵循任何適當的設計模式或敏捷方法。現在我已經完成了在C#(Winforms)中重寫現有ERP應用程序的任務。我一直在閱讀領域驅動設計,Scrum,極限編程,分層體系結構等等。它非常混亂且很難(因爲時間限制)去嘗試每一種方法,然後決定走哪條路。我非常難以理解更大的局面,並瞭解遵循哪種模式和敏捷方法。 更具體的什麼,我想知道的是:Winforms選擇哪種設計模式/敏捷方法

  1. 是否有可能遵循領域驅動設計,仍然是靈活的。
  2. 我應該選擇極限編程或在這種特定情況下的Scrum
  3. 哪裏MVP和MVVM配合,其中之一將是對我
+2

您需要提出具體問題。 –

+1

這太籠統了 - 你的代碼做了什麼,你的應用程序必須遵守什麼gereral原則等。 – MoonKnight

+0

這就是我想說的是,它甚至很難問我自己關於體系結構和設計的具體問題。既然你是人才,至少你可以幫助我。至少你可以教我什麼是我現階段應該問的正確問題。 – ZedBee

回答

6

這是一個非常主觀和有爭議的話題,尤其是在開發者社區。我只是寫下我的想法。你可以從中得出它的好處 - 如果有的話 -

沒有人在設計時有意識地應用設計模式。總是有一種迭代的方式來達到一個好的設計。面向對象的原則應該是S.O.L.I.D.你應該巧妙地選擇你的抽象。嘗試用接口來思考。

對於您的遺留代碼,我認爲您應該先從domain classes開始。基本上,您的實際數據模型駐留在哪裏。你在哪裏和你的倉庫/數據庫交談。開始逐個重構它們並在它們周圍創建單元測試。我不強調這裏的測試驅動。但是,you need to have solid Unit Tests因爲你現在正在改寫它。一旦你的域類準備好了,就可以很容易地在任何標準模式下掛接UI。

你可以看看這個簡單的WinForms應用具有非常久遠的多線程概念使用BackgroundWorker的正常UI模式中的所有元素 -

http://www.codeproject.com/Articles/88390/MVP-VM-Model-View-Presenter-ViewModel-with-Data-Bi

這也符合一個代碼示例詳細解釋非常有幫助 - 在那裏他展示瞭如何使用MVVM爲的WinForms [上面的代碼項目的文章的母公司 -

http://aviadezra.blogspot.co.uk/2009/08/mvp-mvvm-winforms-data-binding.html

我不能鐵道部這裏我詳細闡述了它的一個非常主觀的話題。在您繼續進行設計時,您可以搜索Martin Fowler's的一些文章。希望這可以幫助。

+0

非常感謝您的詳細回覆。我將閱讀文章,並在下次嘗試提出更具體的問題。其實我讀過關於TDD,DDD等話題,但無法理解所有這些模式/概念如何相互關聯。 – ZedBee

2

雖然你的問題是相當普遍的。我明白一個更好的選擇你正處在一個重大旅程的開始。

爲了幫助你,我會給你一些提示,從我的經驗...

一般來說,MVVM適合很好地中大現實世界的應用(甚至WinForms的),所以你可能從這裏開始調查。那麼你可能想要至少有一個3層架構(數據業務表示)。你也可以考慮服務層,以及後​​來的方式...

好吧...試着堅持自己現在最瞭解的東西,然後在適應的過程中!正如「Angshuman Agarwal」所說......嘗試在每一步的接口思考,這是成功的關鍵。

祝你好運!