Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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# 直接推送服务或处理业务逻辑_C#_Service - Fatal编程技术网

C# 直接推送服务或处理业务逻辑

C# 直接推送服务或处理业务逻辑,c#,service,C#,Service,更新: 本质上是让服务器A的服务直接写入数据库或数据表。让服务为业务逻辑中的一系列属性分配值。因此,所有的计算和数据访问都将直接在服务器B上完成 服务器A是使用服务的客户机,这可能是不清楚的 所以我有一个独特的困惑,那就是如何处理这个特殊问题的标准方法。我目前面临使用服务或内部逻辑的选项。情景: 两台服务器 服务器A:将请求推送到服务器B 服务器B:接受这些请求和变量并实现业务逻辑 服务器B:无论如何都将创建关系数据访问,以使其工作量加倍 进退两难的是,我不确定处理这个问题的标准或最佳方法

更新:

本质上是让服务器A的服务直接写入数据库或数据表。让服务为业务逻辑中的一系列属性分配值。因此,所有的计算和数据访问都将直接在服务器B上完成

服务器A是使用服务的客户机,这可能是不清楚的


所以我有一个独特的困惑,那就是如何处理这个特殊问题的标准方法。我目前面临使用服务或内部逻辑的选项。情景:

  • 两台服务器
  • 服务器A:将请求推送到服务器B
  • 服务器B:接受这些请求和变量并实现业务逻辑
  • 服务器B:无论如何都将创建关系数据访问,以使其工作量加倍
进退两难的是,我不确定处理这个问题的标准或最佳方法。我的意思是,让服务器直接映射到数据库更好吗?或者,让服务器存储属性,然后让内部逻辑来处理它更可行吗

我提出这个问题的原因显然是解决方案一会导致快速开发,但在将来会遇到问题,或者只是性能不佳

例如:

  • 服务器B:将持续填充数据表
  • 服务器B:此时的所有持久性都来自它自己从数据库中检索数据
  • 随着项目的发展,可能会使重构变得困难
这些是我最初的担忧,所以我倾向于选择第二种。但正如我所说的,我不确定我的心态是否符合规范或标准

避免将此视为辩论

随着复杂性的增加,选项一的缺点是否会影响任何项目的流动性?选项二的实施是否更可行,因为我可以实现直接访问数据访问层的更好的通用性?

谢谢你的帮助,希望我清楚地表达了我自己,这是有意义的。如果没有,请发表评论,以便我可以相应地进行编辑。

在某种程度上“视情况而定”。从特定的功能角度来看,任何有效的都是正确的

您可能会遇到许多非功能性或设计性需求,这些需求可能会限制或指导特定的实现。例如,如果您的设计应该是面向服务的(SOA),那么每个服务器都应该是自治的。这意味着它们不应该共享数据库(甚至不应该共享模式)。在这种情况下,面向消息通常是一种很好的模式。您可能希望看到消费者/生产者模式和面向消息的中间件,如队列或服务总线。在这种情况下,服务器A将向服务器B推送一条消息(命令),服务器B将处理该消息。您可以使用请求/应答模式将“应答”返回到服务器a。或者,服务器B可以简单地将另一条消息(事件)发送回a,告知其已完成工作

更新:
服务器B使用的“数据”将完全从消息中的B发送给它。

您所说的“服务器A存储到属性,然后让内部逻辑处理”是什么意思?我不确定我是否正确理解了这个问题,但是您可以使用面向服务的方法,而不是依赖数据库进行跨边界的通信。一种选择是使用诸如WCF或Web Api之类的Web服务,或者您也可以添加诸如MSMQ之类的队列,以便在应用程序之间传递消息。@tucaz I添加了一些规范。不幸的是,服务器a有一个与大量项目和intranet的电子商务相关的数据库。其中,服务器B是一个独立的产品,严格为用户和客户构建。不幸的是,有人认为最好的方法是将此注册直接集成到电子商务应用程序中。所以我现在被迫陷入困境。我很感激你的回答,也许我能做到,我得调查一下。