2

从网站性能的角度来看,DTO 的优缺点是什么?(我说的是在与 Web 服务器不同的应用程序服务器上访问数据库的情况 - 并且 Web 服务器可以直接访问数据库。)

4

1 回答 1

3

DTO 不是性能问题。我认为您要问的是分层的性能影响。特别是,在 Web 层(Web 服务器)和数据层(数据库服务器)之间使用应用层。

通常,这意味着延迟会增加(您有额外的网络往返),但您可以通过在机器之间分配负载来获得一些额外的容量。

人们这样做的另一个常见原因(同样,非性能)是允许他们将 Web 服务器放置在 DMZ 中,同时将应用程序和数据库服务器保留在防火墙内。

另一个潜在原因(非性能)是在单个应用程序之上插入多个 UI 的能力。我已经在过去的项目中完成了这项工作,并取得了很好的成果(业务需要的地方)。

此外,不要低估维护这种性质的架构所需的工作。它比非分层解决方案工作量更大,因此请仅在您预计需要时使用它。

话虽如此,使用 DTO 并不一定需要使用分层。

我发现的关于分层的最佳描述来自 Martin Fowler 的书《分析模式》。后面有一小部分是关于应用程序外观和分层的。

重申前面的答案,DTO 不是性能问题。它只是一个没有用于在应用程序的各个部分之间提供隔离的方法的类。

我还建议阅读 Martin 的另一本书,企业应用程序架构模式。DTO“模式”记录在那里。

于 2008-09-18T22:31:37.290 回答