大家好,我对分层开发过程很陌生。我目前正在开发一个应用程序,我有一些关于当今技术的最佳实践/架构问题的基本问题。我将使用 WCF 作为服务层。请注意,我正在尝试尽可能多地解耦。我不希望上层的任何事情都必须了解下层的任何事情,这是我不喜欢 LINQ TO SQL 或实体框架的原因之一。
1) 在层之间传递数据的最佳方式是什么?我知道数据集或数据表都很容易,但我认为在层之间传递这种臃肿的数据结构并不是最好的解决方案。如果数据表/数据集很大,调试也会更加困难。一组 POCO 对象可能是最好的解决方案还是有更好的方法?
2)下一个问题有点棘手。许多应用程序会有一堆不同的数据视图。您可能有多个报告、各种数据网格,可能还有一个或两个图表。您如何为此设计数据层?您是否只是为每个表设计一个“获取”类型的函数,然后尝试将它们组合成有用的视图,例如您的业务层中的网格或报表,或者您是否为业务层中需要的每个视图提供了专门的功能。
老实说,我不喜欢这两种解决方案。如果您决定每个视图的专用逻辑,那么您需要为每个视图创建一个 POCO 对象(假设您将返回一个 POCO 对象数组)。如果您稍后决定需要向其中一个视图添加更多列,那么您将破坏现有代码(因为您更改了 POCO 上的界面)。如果您决定返回每个表的视图并尝试将其组合到业务层中,那可能会变得非常混乱。TSQL 有连接是有原因的:)。此外,您可能会返回比您需要的更多的数据,具体取决于您的设计,这将是低效的。
我还有一些问题,但我会留到以后。我不希望这篇文章变得太大:)
笼子