0

背景:我现在正在开发一个 .NET WinForms 应用程序(C#),它带有一个用于数据层的 ADO.net 数据库。

问题:我现在如何开发它,以便轻松迁移到通过 HTTP Web 服务或 REST 接口抽象数据层的模型?

例如,仅使用带有工厂的标准 C# 接口来获得使用 ADO.net 的接口的具体实现是最好的吗?

谢谢

4

3 回答 3

2

实际上,您要做的是将您的 2 层应用程序(应用程序 <--> 数据库)更改为 n 层系统(应用程序 <--> 应用服务器 <--> 数据库)。

这是一个复杂的变化,因为您必须考虑安全性、业务逻辑和一切。

一个想法可能是使用像DataAbstract这样的第三方库。这是一个完整的 n 层框架,仍然允许您使用 LINQ 等功能到远程数据源,并使 n 层开发非常容易。它还提供了一个 Web 服务接口,可以轻松地从任何来源访问应用程序层中的业务逻辑。更进一步,它为您提供了适用于 iPhone 和 windows mobile 的客户端库,它们确实允许您更快(因为是二进制)访问该层。只有在 DataAbstract 不可用的平台上,您才需要 Web 服务接口。

于 2010-03-25T06:12:34.630 回答
1

你一针见血——它是关于抽象的。现在就从业务逻辑中的特定于存储的语义中抽象出来。开发一个干净的、面向对象的 DAL 并通过它执行所有 CRUD/Query 操作,虽然您的对象模型(或域模型,如果您想识别两者之间的区别)可以使用具体的类,但您的 DAL 操作应该被定义在一个界面中。是否使用工厂取决于您的特定用例,但如果您在开发时考虑到这种抽象,那么采用控制容器的反转并通过依赖注入来处理这种连接是有意义的。 很多 可供选择_ _

于 2010-03-25T06:12:36.417 回答
1

你永远不会想用 REST 接口抽象一个 DAL。REST 接口是您直接向“用户代理”公开的东西。您永远不会希望您的业务层通过 REST 使用数据。

唯一的例外是,如果您的主要目标是将原始数据公开给某个远程第三方。

于 2010-03-25T13:46:37.513 回答