2009-12-28 103 views
0

我想寫我的第一個真正的多層應用程序,我想知道在一個winform應用程序是否「打破」DAL/PL分離規則,如果我要添加一個對象數據源窗體,所以我可以使用數據綁定控件而不是通過我的BLL然後到達DAL來獲取數據?C#DAL與PL邏輯分離

謝謝。

回答

1

以這種方式使用ObjectDataSource不一定會破壞BLL/DAL邏輯的分離。當使用ObjectDataSource時,您可以指定操作模型中對象的BLL操作,這些操作可能會在內部使用您的DAL。 ObjectDataSource有效地提供了UI和BLL /業務對象之間的連接。 BLL和DAL分離仍然存在。

但是,在WPF的上下文中,您可能需要密切關注正在推廣的Model-View-ViewModel模式,作爲開發WPF應用程序的最佳方式。就WPF和WinForms之間的可重用性而言,我認爲你的業務對象BLL和DAL應該符合這個要求(它們將構成MVVM中的「模型」),因爲它們應該沒有內置的UI注意事項。但是,至於綁定到UI中的視圖和操作的機制,您可能會發現這是分歧的自然點。 WPF將來可能會比WinForms更廣泛地使用,並且我不會主張純粹使WPF模式成爲可複用的WinForms。

0

這取決於你如何在這個特定的應用程序中定義你的分離。如果你有兩種不同的獲取數據的方式(一種來自你的數據源對象,一種來自你的BLL/DAL),那麼是的,這可能被解釋爲違反了委託人,因爲你不再明確指出應用程序可以分離。

如果您的數據源作爲DAL的交互點公開,那麼這將成爲更好的模型。

分離的想法是將應用程序的各個部分放入可輕鬆使用的模塊中(包括交換,但這不一定是主要關注的問題)。這意味着您需要在應用程序中的庫/模塊之間有良好定義(並且易於識別)的交互點。

最終的選擇歸結爲在項目/應用程序給定的時間內更容易維護/擴展。