2014-02-28 65 views

回答

3

不,這不是個好主意。

層間分離是一個合乎邏輯的問題,主要通過命名空間進行管理。如果你採用一個精心構建的WPF應用程序,那麼你有很多這樣的應用程序。 ViewViewModel,Model,CommandConvertors應該可能出現在每個非平凡的應用程序中,並且因爲它們都是應用程序運行所需的,所以不需要將它們分開。

然後物理分離成不同的組件就只是一個包裝的考慮因素。如果你有多個應用程序,並且你認爲你可以重新使用一些代碼,那麼它將被拉到不同的物理組件中,但是單獨設計它是過度設計的。

考慮一個具有單元測試套件的應用程序。現在你有兩種方法來運行代碼。您可以像用戶那樣運行應用程序,或者您可以運行測試運行器並讓測試按設計運行您的代碼。這裏我們至少有兩個組件。當您使用應用程序時,測試代碼不是必需的,因此它可以分開。但是,應用程序本身不需要僅僅是一個單獨的程序集,所以很好的做法是讓自己省下努力。

現在我將介紹這個部分,我從來沒有試圖鏈接C#和德爾福,但它只是增加了你將面臨的複雜性。你需要要用這個嗎?它會讓事情變得更復雜嗎?

你問什麼是好的做法,我不得不說寫一個WPF應用程序,就像你可以基於其他人從這個過程中學到的教訓一樣。爲此,請閱讀MVVM,並使用其中一個基本庫來提供幫助,例如Caliburn.Micro,ReactiveUIMVVMLight

+0

「等級分離是一個合乎邏輯的問題」:否!等級分離是一個物理問題。所以我們可以在不同的硬件上運行不同的軟件。現在,我同意答案:如果沒有真正需要使用delphi,只是嘗試使用C#來完成所有工作。 – Kek

+0

非常感謝@AISki,我明白,但是我對分離它們的擔心是重用現有的庫,並且最重要的是,保護來自託管世界的業務流程 –

+0

@Kek,我同意在不同的時間運行不同的部分,但這是驅動程序。如果沒有這種需要,我認爲不這樣做。從一個裝配開始,按邏輯分開,只根據需要進行物理分離。 – AlSki

相關問題