C# 流程 - 数据流、XML 和数据网格

标签 c# architecture process

我正在寻找一些关于如何设置我正在构建的小型应用程序的工作流程的意见/建议。当应用程序启动时,数据网格将通过 XML 文件填充。一旦运行应用程序将收到一个数据流,我希望更新文件和数据网格。

所以我很好奇您对我如何设置工作流有何建议(即,从数据流中拆分数据并同时填充文件和网格,或者您会建议先填充 XML 文件并设置一个计时器来让网格读取文件?)我真的在寻找最佳性能。

最佳答案

首先,数据网格是 UI 元素,因此它的工作应该只以 UI 为中心 - 它不应该控制应用程序的流程/工作流。我不认为你是在暗示你要那样做 - 所以我只是想确保你不会 :)

怎么做?将应用程序拆分成多个部分,每个部分都完成一项工作并且做得很好:

  • 在逻辑层中,有一个处理数据流的组件(接口(interface)/服务)。为了将来的灵 active ,如果可以的话,将其抽象出来。 WCF 可能是一个选项 (?)
  • “管理”逻辑层内的数据 - 将其用作主要(数据)真实来源。
  • 使用事件驱动模型使主要数据源与用户和服务发起的更改保持同步。
  • 拥有(子)组件来处理特定的更新任务(文件/用户界面和数据网格)。
  • 最后,逻辑层还将包含一个中心位置,您可以在其中编排所有内容。

见下图。

您可以使用一些设计模式 - 但我不确定根据给定的信息哪些是合适的 - 但希望这在此期间会有所帮助。

就性能而言 - 您认为性能在哪些方面是个问题?

  • 传输数据?
  • 呈现给用户?
  • 反射(reflect)变化(如果是 - 在哪些位之间)?
  • 您移动了多少数据,更改频率如何?
  • 基于 Web 还是胖客户端?

alt text http://www.freeimagehosting.net/uploads/09a5e70b03.jpg

方框显示了主要组件,这些组件可能包含各种类。 线条显示了主要的信息流。

“中央控制员”主持节目。 “主要数据”是数据的私有(private)副本。 DataGrid(或任何其他类型的“客户端”)可以通过事件将更新发送到中央 Controller 。 数据通过相同的事件处理程序桶(相同之处在于它们存在于相同的逻辑区域中)传递到 Controller (谁决定如何处理它)。您可能希望将这些定义在接口(interface)后面,以便您可以根据需要交换实现。其中之一可能是本地数据提供者去请求数据(而不是将其推送到 Controller /事件处理程序。

关于C# 流程 - 数据流、XML 和数据网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2599810/

相关文章:

linux - 关于多核的 Linux Scheduler 代码在哪里?

C# 获取两个日期之间的日期,同一行中有几个小时

c# - 在 OnActionExecuting 中重定向不起作用

c# - 从两个列表 C# 中获取具有索引的公共(public)元素

azure - 分布式计算/横向扩展模式的良好资源

mobile - 如何构建一个向后端 API 提交大量表单数据的 Flutter 应用程序

c# - ASP.NET MVC 自定义用户类与 System.Security.Principal.iPrincipal 发生冲突

PHP - 扩展、库与类 - 何时以及为何

linux - Linux 内核是一个进程、线程还是一些处理来自应用程序的请求的被动的东西?

java如何调用外部unix命令