![]() |
1
4
每种方法都有优点和缺点——如果您总是运行.NET应用程序,那么您可以通过DLL方法获得更好的性能。远程处理也能很好地工作。 要获得更大的长期灵活性,使您能够在需要时轻松地与其他平台和内部/外部客户机集成,您可以查看为应用程序构建RESTful Web服务API。 在某些情况下,我曾在一些地方工作过,这些地方通过一些精心设计的存储过程在数据层中进行应用程序内部通信,这些存储过程在该场景中非常有效。 我一直在考虑最适合手头任务的工具,而不是试图适应任何特定的趋势,但是,如果你做任何可能涉及外部客户交互的事情,我肯定会看看是否有已经发布的通信标准,你可以接受-有很多标准,这是有很多标准的。您可以使用它来帮助您的行业内的互操作性。 |
![]() |
2
9
我想我会说wcf。原因是多方面的:
在过去,远程处理是一个大爆炸,因为Web服务不能真正做像安全等事情,而不必知道WS-*,这是令人望而生畏的。现在不适用于WCF。是的,它有一个学习曲线,但你会学到一些可以转移到其他微软商店的东西。 只要确保你读了正确的方式做WCF。例如,将所有的消息传递内容分离到它自己的独立dll中。 |
![]() |
3
5
DLL或程序集本身不能解决程序之间的通信问题。但是,在过去构建程序集时,我所做的就是使用一个共享内存空间,自定义dll使用它来访问跨应用程序的共享对象。我已经为具有附带的Outlook外接程序的应用程序完成了这项工作,并且非常成功。 这种方法的优点在于它比使用Web服务路由更快。 但是,我认为这可以归结为您的情况,因为我可以看到在不同的情况下使用多个场地。 共享内存/web服务/remoting/wcf,仅举几个例子。 |
![]() |
4
4
我们使用混合的东西,主要取决于它们被部署到哪里,谁是“客户”,谁是“威胁”。我们主要使用WebServices来处理桌面应用程序接触到的东西,但是对于需要相互对话的基于服务器的应用程序的部分,我们使用远程处理(因为它不会经过负载均衡器,而WebService对每个人都是可见的)。 |
![]() |
5
3
所有.NET/MS商店通常都会处理与Web服务的通信,因为Microsoft使这相对容易。 我在实践中发现的唯一问题是,由于传递消息的大小限制,我们曾经发生过生产故障。它默认为兆字节,并且一个非常大的序列化对象无法容纳在该空间中。它对文本使用序列化而不是二进制。 在我们的设置中,它都是SOA架构的内部组件,我们不必担心威胁。 |
![]() |
6
3
正如大多数其他海报所指出的,如果没有更多的细节,很难提供建议。 如果您的需求允许异步消息传递,那么您可能需要考虑使用 System.Messaging 与 Message Queue 作为第三种选择。 |
![]() |
7
2
对于我们的应用,我们选择了一个组合。我们使用Web服务通过Internet来实现负载平衡和第三方开发,但使用tcpchannel远程处理来实现服务器之间的快速通信。这取决于问题。 |
![]() |
8
2
如果进程是一台单独的机器,那么您的选择主要是Web服务/wcf、.net远程处理或直接TCP/IP连接。如果进程在同一台机器上,那么您有这些选择以及更多选择,包括共享内存和文件系统。如果您不需要与任何其他技术进行互操作,.NET远程处理值得仔细研究——它不需要codegen来完成它的工作,因此更简单,性能也不错。 |
![]() |
9
2
WCF确实是实现这一点的方法——编写服务,让配置决定传输介质。 在选择传输媒介方面,很多都与您的网络架构和需求有关。HTTP对于远程的东西和通过防火墙是很好的,但是它的效率非常低,而TCP可以很快但不可靠。 |
![]() |
anakin59490 · 角度5-组件和服务之间的通信 7 年前 |
|
Timo · Docker容器无法到达本地主机端口4444。为什么? 7 年前 |
![]() |
Herobrine · C++程序和未识别程序之间的双向通信 7 年前 |
|
user2475448 · 卡夫卡比拉比特MQ有什么优势? 8 年前 |
|
Bobby_th · 访问其他java类的片段 9 年前 |