Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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#_Asp.net_Sql_Xml - Fatal编程技术网

C# 体系结构:基于集合的数据管道挑战

C# 体系结构:基于集合的数据管道挑战,c#,asp.net,sql,xml,C#,Asp.net,Sql,Xml,我正在开发一个数据库驱动的web应用程序(ASP.NET,SQL 2008),它接收来自不同来源的结构化XML数据。数据类似于一个集合,通常需要“清理”,因此它以XML形式通过数据库,并转换为结果集进行显示 我希望捕获生成的“干净”结果,并将其发送到存档数据库以将其持久化到磁盘 到目前为止,我考虑的方案有: 将整个“干净”结果集序列化为对象(XML/.NET序列化),并将其发送回存档数据库 优点:易于重复-可以分析/捕获存档计算机上的数据库调用,并重新运行它们以识别任何问题 缺点:版本控制可

我正在开发一个数据库驱动的web应用程序(ASP.NET,SQL 2008),它接收来自不同来源的结构化XML数据。数据类似于一个集合,通常需要“清理”,因此它以XML形式通过数据库,并转换为结果集进行显示

我希望捕获生成的“干净”结果,并将其发送到存档数据库以将其持久化到磁盘

到目前为止,我考虑的方案有:

  • 将整个“干净”结果集序列化为对象(XML/.NET序列化),并将其发送回存档数据库

    • 优点:易于重复-可以分析/捕获存档计算机上的数据库调用,并重新运行它们以识别任何问题
    • 缺点:版本控制可能很棘手
  • 将清理后的结果存储在一个表中,并定期将该表中的新记录复制到存档计算机

    • 优点:易于构建-快速计划作业
    • 缺点:在存档机器上很难重新调用;需要保留输入表的内容

是否有其他选择,是否有人有过类似情况的经验?

我成功地使用了这两种情况,我所做的取决于系统

保存原始Xml: 当我处理非结构化数据时,或者当我们处理消息传递系统时,并且希望跟踪消息时,我倾向于保存原始Xml。例如,我处理的一个应用程序从已部署的windows客户端收集消息,我们会将消息转储到关系结构中,然后将它们卷到仓库中。当我接手这个项目时,我们开始存储即将到来的原始xml,因为它确实允许我们重放,并且能够准确地看到将要进入系统的内容

关系数据 如果我需要对数据进行任何报告聚合,我会将数据分解并存储到常规表中。我知道可以在数据库中查询xml数据,但我尽量避免这样做。我可能仍然会保存原始消息,以备重放和故障排除

保存二进制对象 我所做的最后一件事是保存一个完整的序列化二进制对象。当对象图非常复杂,并且对象之间的关系非常重要时,我发现这很方便。它确实有一个巨大的缺点,那就是版本控制;但是,我已经成功地管理了这个版本,即使是名称空间更改、对象继承人权限更改等。如果您需要访问SQL中的数据,这不是一个好办法