C# 与.NET断开连接的体系结构

C# 与.NET断开连接的体系结构,c#,.net,architecture,C#,.net,Architecture,我正在使用WinForm和WCF处理一个n层应用程序 引擎服务(Windows服务)=>WCF服务=>Windows窗体客户端应用程序 问题是,即使引擎服务关闭,WinForm客户端应用程序也需要100%可用 那么,如何建立一个断开连接的体系结构,以使我的winform应用程序始终可用 谢谢。通常,您实现了应用程序内部的队列 队列将请求转发到web服务。如果web服务关闭,它将保持排队状态。队列机制应该经常检查web服务是否处于活动状态,以及何时转发它存储的所有内容 或者,您可以直接转到web服

我正在使用WinForm和WCF处理一个n层应用程序

引擎服务(Windows服务)=>WCF服务=>Windows窗体客户端应用程序

问题是,即使引擎服务关闭,WinForm客户端应用程序也需要100%可用

那么,如何建立一个断开连接的体系结构,以使我的winform应用程序始终可用


谢谢。

通常,您实现了应用程序内部的队列

队列将请求转发到web服务。如果web服务关闭,它将保持排队状态。队列机制应该经常检查web服务是否处于活动状态,以及何时转发它存储的所有内容

或者,您可以直接转到web服务,然后在发生初始故障时将其发布到队列中。但是,队列仍然需要每隔一段时间检查一次web服务

编辑: 只是澄清一下,是的,所有的业务逻辑都需要在客户端可用。否则,当客户端连接备份时,您需要提供“验证”机制


然而,这并不是一件坏事。无论如何,您都应该将业务逻辑放在它自己的程序集中。

通常,您实现了应用程序内部的队列

队列将请求转发到web服务。如果web服务关闭,它将保持排队状态。队列机制应该经常检查web服务是否处于活动状态,以及何时转发它存储的所有内容

或者,您可以直接转到web服务,然后在发生初始故障时将其发布到队列中。但是,队列仍然需要每隔一段时间检查一次web服务

编辑: 只是澄清一下,是的,所有的业务逻辑都需要在客户端可用。否则,当客户端连接备份时,您需要提供“验证”机制


然而,这并不是一件坏事。因为您应该将业务逻辑放在它自己的组件中。

看看智能客户端工厂:

只是为了突出目标(这是从上面的链接剪下来的):

  • 他们有一个丰富的用户界面 利用 微软视窗桌面
  • 它们连接到多个后端 系统与它们交换数据
  • 他们提供来自世界各地的信息 通过 一个集成的用户界面,因此 数据似乎来自一个 后端系统
  • 它们利用本地存储 和处理资源,以使 在第 网络连接或间歇性故障 网络连接。
  • 它们易于部署和维护 配置
编辑 我要用通常的CYA陈述来回答这个问题,这要看情况而定。让我举几个例子。以一个应用程序为例,该应用程序将监视文件系统,以查找将以任意数量的不同格式(DB2、Flatfile、xml)生成的文件。然后应用程序将导入文件,向用户显示文档的统一视图。允许他下电子商务订单

在这个应用程序中,你可以选择检测文件,将它们压缩并上传到服务器进行转换(应用业务逻辑,如数据规范化等)。但是,如果互联网连接中断,会发生什么呢。现在,用户必须等待连接后才能下电子商务订单

更好的解决方案是在转换文件的客户端中运行业务规则。现在,让我们假设,您有一些业务逻辑,它将基于订单确定附加规则,例如将订单发送给销售人员或定价折扣……这些可能对服务器有意义

您需要问的问题是,当服务器不在时,我需要什么功能才能使我的应用程序正常工作。任何属于这一类的东西都需要客户端


我也从来没有使用过Click Once部署,我们必须推出自己的更新程序,这是另一个线程的故事,但您应该能够轻松地发送更新。您还可以在程序集中对业务逻辑进行编码,从URL加载该程序集,以便在运行客户端时可以轻松地对其进行更新。

查看智能客户端工厂:

只是为了突出目标(这是从上面的链接剪下来的):

  • 他们有一个丰富的用户界面 利用 微软视窗桌面
  • 它们连接到多个后端 系统与它们交换数据
  • 他们提供来自世界各地的信息 通过 一个集成的用户界面,因此 数据似乎来自一个 后端系统
  • 它们利用本地存储 和处理资源,以使 在第 网络连接或间歇性故障 网络连接。
  • 它们易于部署和维护 配置
编辑 我要用通常的CYA陈述来回答这个问题,这要看情况而定。让我举几个例子。以一个应用程序为例,该应用程序将监视文件系统,以查找将以任意数量的不同格式(DB2、Flatfile、xml)生成的文件。然后应用程序将导入文件,向用户显示文档的统一视图。允许他下电子商务订单

在这个应用程序中,你可以选择检测文件,将它们压缩并上传到服务器进行转换(应用业务逻辑,如数据规范化等)。但是,如果互联网连接中断,会发生什么呢。现在,用户必须等待连接后才能下电子商务订单

更好的解决方案是在转换文件的客户端中运行业务规则。现在让我们说,你有一些b