2012-03-15 56 views
5

我目前正在研究可能的方法,我们可以重构我们的代码库,以使其更易于使用。从数据集迁移到EntityFramework

该应用程序是相当大的Asp.Net Webforms应用程序,所有数据设置/检索通过Web服务发生。目前,这些WebServices返回数据集,其中包含从存储过程返回的一个或多个表。代码库与ASP代码紧密相连,后台在多个地方调用WebServices,大多数业务逻辑发生在代码隐藏或存储过程中。

现在有一段时间了,我们一直在寻找可能的方式来更新应用程序,并实现代码库的现代化。我们不能(也不想)重写整个应用程序,但如果我们能够开始将它逐步移植到更新的体系结构中,那将是非常好的。我研究了MVP体系结构,它似乎与我们当前的体系结构很好匹配 - 它不会涉及太多的重写,但仍应该导致更多可测试的代码(另一个目标 - 我们目前没有自动化测试)。

但我想知道,如果任何人有关于从DataSets移动到EntityFramework的一些提示/信息/文章。我认为这对我们来说是最大的优势,因为它可以让我们对数据进行建模并对其进行测试。不幸的是,我还没能在网上找到关于这种迁移的任何信息。我们的数据库设计非常好(谢天谢地),但是我们必须同时使用DataSet和EntityFramework一段时间,直到我们摆脱了DataSet - 我们不可能一次完成所有事情。

任何人都可以就此提供建议?

+1

您是否继续使用WebServices返回当前处于DataSet形式的数据?或者,您的应用程序是否会通过EntityFramework直接触摸数据库? – 2012-03-15 19:07:20

+0

@John我认为我们仍然需要以某种方式使用Web服务。我们使用相同的Web服务来检索Microsoft InfoPath中的数据,我们也无法摆脱它。 – 2012-03-15 19:12:00

回答

3

这听起来像你需要解决两个单独的问题。

  1. 如何使内部 Web服务(S)使用的EntityFramework 的。
  2. 其次,你如何将这些结果传递给Web服务以及如何传递这些结果。

对于#1,我们只能猜测您当前实施的相关细节。但是,这可能是您可以搜索和寻求帮助的常见变化。

对于#2,您可能想要定义一系列来回的业务对象。 Web服务可以在它们和EntityFramework对象之间进行转换。 (您大概可以直接传递EF对象,但根据您的场景,可能存在问题。)

+0

我很好奇你指的是什么“业务对象”。你的意思是序列化到XML/JSON,还是你指的是别的? – 2012-03-16 11:36:30

+0

@ a_m0d:“业务对象”只是具有属性的类。他们的运输方式(XML,JSON等)是一个完全独立的问题。 – 2012-03-16 14:12:51

+0

那么Business Object与POCO类会有什么不同呢? – 2012-03-16 15:49:48