在完整框架和紧凑框架之间共享DAL

时间:2014-03-20 10:00:18

标签: c# dependency-injection refactoring compact-framework data-access-layer

我在Compact Framework上运行WinCE应用程序。

使用OpenNETCF.IOC库将DAL实现为IoC服务(仍在主EXE中)。 该层处理POJO类。使用Compact Framework版本的ADO.NET提供程序建立的数据库访问。此版本已弃用,不受支持。

现在我们应该有第二个使用Full Framework在Windows桌面上运行的应用程序。我希望在这两个应用程序之间共享数据访问层。

正如我所提到的,有两种方法:

  • 快速和脏:在CF和FF之间共享DAL C#源代码。两个版本都应该使用 某些平台差异应该通过条件编译指令来解决
  • 必须将DAL代码从CF应用程序移动到新的FF应用程序(可以实现为WCF服务)。 CF app现在通过客户端界面访问数据库。

推荐哪种方式?

2 个答案:

答案 0 :(得分:1)

由于您正在使用依赖注入,因此从DAL中提取平台差异并将其隐藏在抽象之后会相当容易。可以将针对该抽象的特定于平台的实现注入到DAL类中。这允许您在CF和FF之间共享CAL C#代码,而无需恢复到条件编译指令。 IMO这种方法快而脏。

答案 1 :(得分:1)

绝对选择#1。

由于您已经在抽象事物,为什么不抽象DAL使用an ORM that is compatible with both the CF and the desktop并允许您换出数据存储实现?如果能避免陷入与特定数据存储绑定的陷阱。