分享代码跨平台的最佳实践

时间:2015-02-11 09:13:46

标签: entity-framework architecture xamarin cross-platform n-tier-architecture

我正在使用N层架构在iOS,Android和C#ASP.NET MVC项目上共享尽可能多的代码。

我已经将我的解决方案分成几层:

  • 接口
  • DAL(实体框架6型号/ Db优先)
  • BLL
  • 演示

我已经从我的DAL中分离了我的BLL,因此BLL不知道DAL。它由PL注入。那是因为我想分享我的BLL,因为它在几个平台上都是一样的。这次注入的缺点是我的PL需要参考我的DAL。在这种情况下可能需要,因为iOS和Andriod不支持EF到本地数据库,至少不是我所知道的。

我不确定是否正确行事。另一种方法是创建一些引用我的BLL的web服务。该解决方案的缺点是需要互联网连接。我宁愿不把它作为这个项目的要求。

目前我怀疑自己是左转还是右转。有没有人有任何提示或知道一些关于这个主题的好文章?

1 个答案:

答案 0 :(得分:1)

听起来你手动注入依赖项而不是使用IoC容器,这就是为什么表示层在调用BLL时需要传递对DAL的引用。

在IoC容器中注册您的类型并使用它来实例化BLL,它将自动注入对DAL的引用。这样,只有设置IoC容器的引导代码才需要知道特定的类型。

您有很多关于您使用的特定IoC容器的选项。我最近将大量现有代码集成到使用Unity的移动应用程序中,效果很好。