【发布时间】:2010-12-02 02:01:39
【问题描述】:
最好使用网络服务从数据库中提取数据并将其加载到我的实体对象中,然后将实体对象发送到我的 winform 应用程序?
与直接访问数据库并将数据读取器拉回 winform 客户端,然后在客户端上加载实体相比,这是否会产生任何性能差异?一些用户将在中国访问美国的数据库。
还有更好的选择吗?
谢谢
【问题讨论】:
标签: winforms web-services ado.net data-access-layer
最好使用网络服务从数据库中提取数据并将其加载到我的实体对象中,然后将实体对象发送到我的 winform 应用程序?
与直接访问数据库并将数据读取器拉回 winform 客户端,然后在客户端上加载实体相比,这是否会产生任何性能差异?一些用户将在中国访问美国的数据库。
还有更好的选择吗?
谢谢
【问题讨论】:
标签: winforms web-services ado.net data-access-layer
最好的选择可能是拥有分布式数据库和/或分布式服务器。无论您如何从中国的客户端应用程序转到美国的数据库,网络都将成为巨大的瓶颈,性能可能会非常糟糕。如果你能在中国建立一个复制的数据库,那将产生巨大的积极影响。
您是否拥有网络服务在此不是一个重要因素。当然,添加 Web 服务会添加一个网络跃点,这会对性能产生负面影响,但正如我所说,我认为这不会成为您的性能瓶颈。
【讨论】:
这是主观的,但一般来说,您会发现直接进入数据库的性能更好。但是,这不利于关注点分离。
鉴于您系统的高度分布式特性,使用 Web 服务(或至少一种 SOA 方法)对我来说很有意义。但是,我会更进一步,将业务逻辑放入 Web 服务层,不仅是数据访问,而且这在很大程度上取决于具体情况。我只是认为,如果需要更改代码并重新部署到的地方越少越好,
这是否有理由必须是客户端应用程序而不是 Web 应用程序?这将使您的分布式用户更容易保持最新状态。
【讨论】: