【发布时间】:2023-04-10 03:30:01
【问题描述】:
这是一个设计问题。
如果您必须创建一个解决方案,其中前 5 个客户端仅在本地网络中查看 SQL Server(客户端可以读取具有相同架构的不同数据库),您是否会为数据库工作 (CRUD) 创建 WCF 服务或只是将数据访问层直接留在客户端?这使得客户端独立!
【问题讨论】:
这是一个设计问题。
如果您必须创建一个解决方案,其中前 5 个客户端仅在本地网络中查看 SQL Server(客户端可以读取具有相同架构的不同数据库),您是否会为数据库工作 (CRUD) 创建 WCF 服务或只是将数据访问层直接留在客户端?这使得客户端独立!
【问题讨论】:
如果这是在 LAN 中并且永远不会在其他任何地方 - 不要在顶部添加不必要的 WCF 层。
如果您预计有一天外部来源可能想要访问该数据 - 那么使用 WCF DataService 或类似的东西来公开数据可能是有意义的。
WCF 和 Dataservices 总是添加一些额外的层、一些额外的处理,因此会降低一些性能。如果您只有 5 个本地用户(在您的公司 LAN 中) - 我认为确实没有令人信服的理由为此使用 WCF 服务。只需使用良好的数据访问技术(Linq-to-SQL、Entity Framework、NHibernate)并直接访问该数据库。
在这种情况下,额外的 WCF 服务层不会给您带来任何好处 - 所以不要让事情变得不必要地复杂。
【讨论】:
我建议您将 WCF 服务契约接口和实现编写到单独的程序集中并由客户端直接使用。如果在稍后阶段您决定需要互操作性,您可以始终将程序集公开为 WCF 服务,对客户端产生轻微影响。
【讨论】: