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

本文关键字:框架 之间 共享 DAL | 更新日期: 2023-09-27 17:51:01

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

DAL使用OpenNETCF实现为IoC服务(仍在主EXE中)。国际奥委会图书馆。这一层处理POJO类。使用ADO的Compact Framework版本建立数据库访问。净提供者。此版本已弃用,不支持。

现在我们应该有第二个应用程序将运行在Windows桌面使用完整框架。我希望在这两个应用程序之间共享一个数据访问层。

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

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

推荐哪一种方式?

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

一定要用#1。

既然你已经抽象的东西,为什么不抽象的DAL使用一个ORM兼容CF和桌面,并允许您交换出数据存储实现?这样可以避免被绑定到特定数据存储的陷阱。

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