0

我已经开始在一个项目中使用 EF 和 LINQ,我正在尝试确定要使用的最佳方法/模式。到目前为止,我一直在使用基于 DataSet 和 XML 配置的自定义持久性框架。基本上,它是一个 VS 自定义工具,可以读取 XML 配置文件和数据集,并生成具有所有必要属性/关联/方法的面向对象类。然后从 UI 中使用这个自动生成的类,我可以灵活地只公开 UI 需要的内容。

现在有了 EF 和 LINQ,我对 UI 可以直接使用自动生成的类和所有 LINQ 东西的想法感到不舒服。似乎这种方法将在 UI 和数据库之间进行非常紧密的集成。

所以我正在寻找一些能够“隐藏”所有 EF 和 LINQ 好东西并基本上限制 UI 可以做什么的模式。有没有标准的方法来做到这一点?

4

2 回答 2

1

您正在寻找的是一个 n 层应用程序。它与其说是一种模式,不如说是一种架构。你将你的应用程序分成 2 个或更多部分,通常由 UI、业务和数据组成的 3 个部分。您可以通过其他模式(例如 Facade 或 Repository 模式)来实现这一点,以保持关注点的强分离。

您还可以使用服务层,它可以通过外观或 Web 服务来实现。

理想情况下,您将通过称为 DTO 或数据传输对象的对象传递数据,并且您可以通过在 UI 中使用视图模型来调整这些 DTO(不要与另一张海报错误提到的 MVVM 混淆。)

除此之外,很大程度上取决于您正在构建的应用程序的类型。桌面应用程序、服务器应用程序、Web 应用程序等。

于 2012-10-22T23:12:39.080 回答
0

您正在寻找的模式通常是模型-视图-视图模型或 MVVM。

这是一个似乎触及设计模式高点的教程:http: //cshaperimage.jeremylikness.com/2010/04/model-view-viewmodel-mvvm-explained.html

于 2012-10-22T22:27:18.130 回答