假设一家公司正在建立一个全新的应用程序。该应用程序遵循DDD原则。 旧的代码库有很多产品(或公司的另一个“实体”),他们想要转换为新的代码库。
如何完成这项工作?通常,使用例如ssis导入更快更容易 - 从一个数据库转移到另一个数据库。但这里的主要问题是很多BusinessRules(在DomainLayer中的托管代码中实现)被跳过... 如果开发人员说:“我控制它了,那就足够了。规则是作为sql脚本复制的......”
我们是否应该将托管代码库导入SQL Server(至少可以在.NET和MS SQL Server中使用)? 或者我们是否应该在托管代码中创建导入脚本,以便在实体保存在数据库中时遍历域中的所有图层?...(可能需要很长时间......)
你有什么想法?
答案 0 :(得分:1)
我建议您在.NET中编写一个小的 - import-application,您可以在其中应用业务规则。由于这项任务(至少我认为是这样)只会运行一次(或两次;))速度并不重要 - 为了加快速度 - 将其设计为多线程 - 如果可能的话。
并且它不够好 - 如果有人说“我控制它” - 这是一个嗡嗡声,我所有的警钟都会消失。一些细节将永远被遗忘,这主要是一个小小的灾难;)
答案 1 :(得分:0)
这两个选项并不相互排斥。 SQL Server可以使用Web服务。您可以将导入服务创建为Web服务,然后从SQL Server调用它。当然,您甚至可以使用SSIS执行此操作。
答案 2 :(得分:0)
就像那个联盟中的很多其他问题(这是最好的方法,选择哪种语言,ORM与否),如果不了解旧应用程序的细节,新的应用程序很难回答,数据模型(关系和OO)....或者简单:仔细分析您的任务,然后选择您的工具。
我不知道所有这些,我会说:新的应用程序必须遵循旧的业务规则以及必须为域设计新的关系层。开发人员应该了解业务和域规则,(sql-)脚本应该是一种可行的方法。