在MVC 3 + Entity Framework中创建WebForms应用程序

gbs*_*gbs 5 asp.net asp.net-mvc entity-framework

我有一个在ASP.NET 2.0 WebForms中开发的小应用程序.出于学习目的,我正在考虑将此应用程序转换为MVC 3 + Entity Framework.下面是模拟我的应用程序的最简单示例.没有什么花哨.

应用布局:

(图像应为"输入字段"而不是"文件")

在此输入图像描述

建筑:

在此输入图像描述

关键点:

  1. Service层中的SqlCommand ExecuteReader方法是使用ADO.NET 方法执行存储过程

  2. 大多数操作等逻辑都是在存储过程中完成的.在Service层中几乎没有任何数据操作

现在我想将此应用程序转换为MVC.

问题:

  1. 如果我将此应用程序转换为MVC +实体框架,我(技术上)会获得什么好处?

  2. 我该怎么办呢?

  3. 我已经看了一些基本的MVC3教程,但他们都讨论了EF代码优先,我认为这不符合我的情况,因为我想使用现有的存储过程.那是对的吗?

注意:我想使用现有的存储过程.假设我无法控制数据库结构的变化.

更新1:

  1. 我的应用程序中没有单个内联查询.即使是最小的小查询也是存储过程.他们的吨.

  2. 使用SQL Server几乎没有机会更改为任何其他DBS.

更新2:

我的webforms应用程序已完成99%,可以随时上线,但由于一些业务障碍,它没有.同时我想如果我可以将其转换(即开发)到MVC,我将学习加上如果它能够实现(我的第一个MVC)而不是webforms.

mar*_*ind 2

在回答具体问题之前,我会指出您应该将选择分为 2 个:

  1. 将表示层转换为使用 MVC 而不是 WebForms。
  2. 将数据层转换为使用 EF 而不是 ADO.NET。

现在回答你的问题

  1. MVC 的好处包括更好地控制 HTML、更好的可测试性等。EF 的好处包括抽象出特定于 DB 的东西(理论上,您可以用 MySQL 替换 SQL Server,假设有适当的 MySQL 提供程序)、LINQ 支持等。当然,还有这种转变也需要付出代价。
  2. 分而治之。如前所述,您不必一次完成所有事情。从表示层开始,将其转换为 MVC。请记住,您可以混合使用 WebForms 和 MVC 应用程序,这样您就不必同时转换所有页面。然后将数据层转换为 EF。或者以相反的顺序开始,只要对您的项目有意义即可。
  3. [不是该主题的专家]如果您严重依赖 SP,那么请考虑传统的 EF。如果您只有几个 SP,那么您可以考虑首先编写代码 + 使用数据集(可能包含在自定义构建的类中)处理 SP,以使一切正常工作,尽管这可能会变得复杂。和以前一样,如果成本太高,您不必迁移到 EF。