我正在研究一种N层体系结构,以便在iOS,Android和C#ASP.NET MVC项目上共享尽可能多的代码。
我已经将解决方案分为几层:
介面
DAL(实体框架6模型/ Db优先)
BLL
介绍
我已经将我的BLL与DAL分开了,所以BLL不知道DAL。它由PL注入。那是因为我想共享我的BLL,因为在多个平台上都一样。这种注入的缺点是我的PL需要引用我的DAL。在这种情况下可能需要这样做,因为iOS和Andriod不支持对本地数据库使用EF,至少我不知道。
我不确定在此方面是否正确。一种替代方法是创建一些引用我的BLL的Web服务。该解决方案的缺点是需要互联网连接。我宁愿没有这个项目的要求。
此刻我在怀疑我会左走还是右走。是否有人对此有任何提示或了解一些好的文章?
最佳答案
听起来您是在手动注入依赖关系,而不是使用IoC容器,这就是为什么表示层在调用BLL时需要将引用传递给DAL。
在IoC容器中注册您的类型,并使用它实例化BLL,它将自动将对DAL的引用注入。这样,只有设置IoC容器的引导程序代码才需要知道特定的类型。
关于使用的特定IoC容器,您有很多选择。最近,我将大量现有代码集成到了使用Unity的移动应用程序中,效果良好。
关于entity-framework - 跨平台共享代码的最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28450428/