我偶然发现了一个框架,该框架承诺了一个功能强大且灵活的基础架构,名为Keplad,我目前正在对其进行评估,以将其用于现有应用程序,以将其更新到最新技术。我只是浏览了文档和样本,我可以看到新应用程序的潜力,但是现有的应用程序呢?是否可以实施增量策略而不是从头开始重写它?有人知道吗,经验是什么?
确保可以逐步完成,前提是应用程序使用的.NET框架的版本高于4.5(事实上,也支持.NET CORE/.NET标准和Mono)。实际上,有一些组织将其用于生产,可以逐步整合它。还需要经过深思熟虑地考虑建筑问题,例如DI框架的集成或数据持久性层的集成,但基本上,增量采用不应构成任何严重的问题。
不要忘记,凯普斯框架的中心是通过依赖注入可用的应用程序服务。默认情况下,仅通过单纯的属性来覆盖它们或覆盖它们。您可以遵循更多方法:
-
让原始应用程序的DI容器与Keplad提供的直播(顺便说一句,这只是对现有DIS的抽象,我们不想重新发明轮子)。不是很建议,但是如果您想这样有效。
-
让原始应用程序的di容器集成了一个来自keplad的容器。我亲自使用ServiceStack的FUNQ DI容器时使用了此策略,并且可以使用。但是,这样的方式原始应用程序可以访问Kephas Services,但不能访问。如果您需要让原始应用程序在控制中,我会使用这种方法。
-
kephad集成了应用程序的DI容器。这样,Kepass服务就可以访问原始应用程序的服务,但不能访问。如果您想完全,现在或将来,我会使用这种方法。
-
完全使用Kephas提供的DI容器。如果您根本不使用DI或拥有兼容DI容器(例如MEF/System.com potsion或autoFac-对于AUTOFAC,我会这样,我会这样。)。
有很多事情要讨论,但这将超出此问题的范围。
免责声明:我是Kepas框架背后的主要开发人员 - 可以从Wiki页面获得更多信息。还在此处检查样品。