C#DAL与PL逻辑分离

时间:2009-12-28 04:30:45

标签: c# data-access-layer

我正在尝试编写我的第一个真正的多层应用程序,我在winform应用程序中想知道它是否“破坏”DAL / PL分离规则如果我要向表单添加对象数据源以便我可以使用数据绑定控件而不是通过我的BLL,然后到DAL获取数据?

感谢。

2 个答案:

答案 0 :(得分:1)

以这种方式使用ObjectDataSource并不一定会破坏BLL / DAL逻辑的分离。使用ObjectDataSource时,您可以指定操作模型中对象的BLL操作,而这些操作又可以在内部使用您的DAL。 ObjectDataSource有效地提供UI和BLL /业务对象之间的管道。 BLL和DAL分离仍然存在。

但是,在WPF的上下文中,您可能需要密切关注Model-View-ViewModel模式,该模式正在被提升为开发WPF应用程序的最佳方式。至于WPF和WinForms之间的可重用性,我相信你的业务对象,BLL和DAL应该适合这个(它们将构成MVVM中的'Model'),因为它们应该没有内置的UI注意事项。但是,至于在UI中绑定视图和动作的机制,您可能会发现这是分歧的自然点。 WPF将来可能会比WinForms更广泛地使用,我不会主张将WPF模式简单化为使其在WinForms中可重用。

答案 1 :(得分:0)

这取决于您在此特定应用程序中如何定义分色。如果您有两种不同的获取数据的方法(一种来自您的数据源对象,一种来自您的BLL / DAL),那么这可能被视为违反了委托人,因为您不再清楚地知道应用程序可以分离。

如果您的数据源作为DAL的交互点公开,那么这将成为更好的模型。

分离的想法是将应用程序的多个独立部分放入易于使用的模块中(包括交换,但这不一定是主要关注点)。这意味着您需要在应用程序中的库/模块之间具有良好定义(且易于识别)的交互点。

最终,选择归结为在项目/应用程序给定的时间内更容易维护/扩展。