我有一个架构问题,我们需要开发两个前端的信息系统:轻量级网络应用程序(ASP.NET)和桌面(WIN-FORMS)应用程序。到目前为止没什么特别的,但是这两个前端应该能够与两个共享和可切换(在应用程序重启后)数据库后端,一个SQL数据库(SQL服务器)和一个,最可能是某种XML存储(一个文件中的所有内容)进行通信就够了)。这两个商店不会同步。 这两个应用程序都非常简单,只有少数几种形式。
请问,是否有任何开箱即用的东西,例如在实体框架中,可以如上所述调整?
或者你会推荐什么样的建筑设计?
答案 0 :(得分:2)
嗯。
您最好的选择是为数据存储库设置类库项目。
为其提供一个已知接口并使用工厂模式在运行时决定它是生成SQL实例还是XML实例。
Best拥有基于单例模式的存储库。
因此,您有Repository
基础继承IRepository
,XMLRespository
和SQLRepository
继承自Repository
。
您的业务逻辑只是引用IRepsository
或Repository
而不关心实际存在的内容(XMLRepository
或SQLRepository
)。
这类似于存储库模式。
如果您想使用具有不同前端的相同业务逻辑并坚持使用ASP.NET Webforms和Winforms,那么我将对业务逻辑执行相同的操作,即将其置于< strong>类库并根据需要从ASP或Winform代码调用。