关于以序列化作为主要隐喻的六边形体系结构的任何建议?

时间:2010-01-26 21:43:18

标签: c# .net architecture serialization hexagonal-architecture

我有机会重写我的雇主用于文档控制的内部开发应用程序的核心。我的“核心”需求列表是这样的:

  • 更容易导入/导出为各种格式(文件集合+相当广泛的元数据是常见因素)
  • 更容易在多个级别添加新字段(其存在是数据驱动而非全局)
  • 介绍几个违反旧系统基本前提的新功能(基本上,围绕文档的元数据结构正在发生根本变化)
  • 保持严格控制文档和元数据关系和约定的能力

我一直在玩一个使用序列化作为与世界通信的主要方式的架构,到目前为止我对结果感到满意 - 我可以序列化为&从用户界面,XML存储和数据库轻松反序列化,无需修改核心类以适应各种源和接收器。我认为这基本上是hexagonal architecture - 它以相同的方式处理每个序列化目标(作为Serialize方法的可注入依赖性)。

然而,这是我第一次尝试这种方法,我想知道是否有人有任何经验,如果有任何见解或建议。

1 个答案:

答案 0 :(得分:2)

我的第一直觉是,任何严重依赖于核心类序列化的东西都可能会遇到毛茸茸的版本问题 - 对核心的更改将要求同时修改所有序列化提供程序&消费者(可能还有所有持久性商店),而不是基于服务/合同的方法,这种方法可以使接口在可能的情况下保持静态。

然而,如果不对系统的使用方式做出大量假设,就很难给出任何意见。随着时间的推移而发展 - 如果你对这种方法感到满意,那就继续吧。让我们知道它是怎么回事。