Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多客户端sql访问体系结构的最佳实践_C#_Sql_.net_Linq_Architecture - Fatal编程技术网

C# 多客户端sql访问体系结构的最佳实践

C# 多客户端sql访问体系结构的最佳实践,c#,sql,.net,linq,architecture,C#,Sql,.net,Linq,Architecture,我现在正在计划一个简单的多客户端设置,其中每个本机.net客户端实例都应该能够连接到SQL db 然而,我关心的是架构。如果安装扩展到几百个客户端连接,那么最好的架构是什么 整个设置将保持在一个封闭的网络中 答:在客户端和SQL db之间实现处理程序服务,以便以后更好地平衡负载 直接将客户端连接到数据库 非常期待阅读您的想法和建议。我真的不愿意直接公开数据库,这可能会导致任何数据库更改都需要更新客户端。我会在两者之间放置一个服务(REST、SOAP等等),然后只公开您需要的操作和对象。然后,如果

我现在正在计划一个简单的多客户端设置,其中每个本机.net客户端实例都应该能够连接到SQL db

然而,我关心的是架构。如果安装扩展到几百个客户端连接,那么最好的架构是什么

整个设置将保持在一个封闭的网络中

答:在客户端和SQL db之间实现处理程序服务,以便以后更好地平衡负载

直接将客户端连接到数据库


非常期待阅读您的想法和建议。

我真的不愿意直接公开数据库,这可能会导致任何数据库更改都需要更新客户端。我会在两者之间放置一个服务(REST、SOAP等等),然后只公开您需要的操作和对象。然后,如果您发现需要对某些数据进行非规范化以提高性能,则服务定义和客户机不需要更改

这也意味着您可以在服务器上拥有逻辑(而不是存储过程),如果您需要修复或改进某些东西,更新服务器总是比更新多个客户端更容易。缓存也可以更好地工作,并有助于处理数据库负载

您可能会发现自己需要从数据库以外的地方获取数据,例如,如果您需要良好的全文搜索,一种常见的方法是使用Lucence进行搜索,并检索从关系数据库中找到的项。也许您需要从其他服务或应用程序获取更多数据。同样,服务器可以完成所有这一切,而不需要客户机知道或关心

您的数据库连接也要少得多,而且它们的延迟应该很低,因为服务和数据库可以在同一个子网中。我不知道你的连接性会有多好,但是像REST和HTTP这样的东西可能会比原始数据库查询宽容得多

所以我会选择client->server->db