1

一直有人告诉我,使用 3 层模型设计应用程序是将数据层和业务逻辑层与表示分离的最佳实践。

但是当我开始使用现代用户界面组件(比如 DevExpress)时,我会失去很多很棒的功能,比如动态过滤、分页、动态加载等。

并且您应该实现自己的方法,允许用户控件保留这些功能。

我从 Nhibernate 的 Ayende 那里读到了那些文章:

http://ayende.com/blog/3958/the-dal-should-go-all-the-way-to-ui
http://ayende.com/blog/3955/repository-is-the-new-singleton
http://ayende.com/blog/4567/the-false-myth-of-encapsulating-data-access-in-the-dal

现在我很困惑!这是否意味着我可以在我的 UI 中引用 Nhibernate?例如,我可以有如下代码:

GridView.DataSource = session.Query<Order>();
4

1 回答 1

1

仅从过滤、分页、动态加载等方法和方法的角度来看问题并不是解决问题的完整方法,至少有两个原因,首先是因为您的 DAL 和 DAL 接口必须提供合适的 API对于这些机制,否则您的 DAL 将被视为不完整的 DAL,第二个更重要的是您的应用程序/系统的环境,在这里我们有很多问题需要问自己,或者我们可以将其命名为战略决策 1- 我们是否需要随着时间的推移更改数据库引擎?2- 我们的应用程序/系统的复杂程度是多少我的意思是 BLL 复杂性,如果我们的大多数应用程序/系统只是 CRUD 方法,我们必须问自己,我们真的需要创建 BLL

实际上这里有很多问题,对这些问题的回答可能会将我们推向简单的面向对象体系结构,该体系结构将我们引导到一个对象,该对象包含用于建模对象数据的属性,以及(创建、更新和删除)操作对象的实例方法,以及从数据库中检索持久数据的(ReadByID、ReadAll、ReadPage ets)静态方法

于 2013-06-17T09:30:06.623 回答