位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# ASP.NET MVC

提问人:刘团圆发布时间:2020-12-09
选择ASP.NETMVC,而不是其他ASP.NET应用程序类型的原因如下:

    •ASP.NETMVC非常适合较大的、较复杂的Web应用程序

    •ASP.NET MVC与Entity Framework (EF)和模型绑定紧密结合在一起

    •ASP.NET MVC与测试驱动开发(Test-Driven Development,TDD)紧密结合在一起

    如前所述,ASRNET Web Forms分为两个单独的模块,ASP.NET MVC则分为三个单独的模块:模型、视图和控制器。前面提到了分离模块对ASRNET Web Forms的帮助,对于ASP.NETMVC,模块的分离也有同样的帮助。模块的分离,使得较大的团队能按专长分姐,同时开发应用程序的不同方面,从而加快开发速度。


    Entity Framework(EF)是一种对象关系模型(Object Relationship Model, ORM)技术。它与ASP.NETMVC架构和模型绑定紧密结合在一起。ORM(以及EF)使开发人员能以面向对象的方式设计数据库。例如,如果某个ASP.NETMVC应用程序用于存储关于人的信息,那么下面的Person类可存储和检索这些信息。

public class Person

{

    public string Name { get; set; } 

    public int Age { get; set; }

}

    设计好数据模型后,开发人员可将模型部署到数据库(如SQL Server)和数据结构。数据库表及主键和外键是使用C#类中的描述生成的。当在Visual Studio中创建一个ASP.NETMVC应用程序后,默认解决方案会包含一个Models文件夹,数据库表的C#类表示就放在这个文件夹中。这些类用于存储内存中的数据库数据,供更新视图的控制器修改。在默认的ASP.NETMVC应用程序中,有一个名为Controllers和Views 的文件夹。

    在控制器中,开发人员添加代码,通过使用绑定的Model对象(如Person)和EF逻辑来创建、读取、更新或删除数据库的内容。控制器也是执行任何业务逻辑、身份验证或应用程序需要的其他任何活动的地方。视图是表示层,由客户端触发,在控制器中使用面向对象模型执行的动作的输出将在这里呈现给客户端。


    ASP.NETMVC与测试驱动开发技术紧密结合在一起,与ASP.NET Web Forms相比,更容易进行单元测试。当创建一个ASP.NET应用程序时,有一个复选框可供选择,如果选中该复选框,将创建另一个项目,专门用于对此程序进行单元测试。

    通过将测试代码放到Tests项目中,可从测试用例抽象出依赖,如IIS、数据库和外部类。这是一个非常重要且有帮助的功能,因为在不同的生产实例中,数据常常是不同的,而且运行IIS的服务器版本可能在生产环境和测试环境中表现出不一致的行为。移除这些依赖,即只测试控制器内的逻辑,而不考虑依赖的状态,能改进测试的速度和效率。原因在于,开发人员不必使所有依赖保持在有效的、稳定的测试状态(这是非常耗时的操 作),而可以将注意力集中在确保测试场景能成功完成。


    ASP.NET MVC使用无扩展名的URL:在请求中,不会添加具体文件名。在ASP.NET Web Forms应用程序中会请求.aspx文件,但在ASP.NETMVC中并非如此。ASP.NET MVC采用了 “路由”概念,使用URL片段(而不是文件名)把请求路由到正确的控制器和视图。例如,请求/Home/About时,将执行名为HomeController的控制器中的About()方法,该控制器保存在Controllers文件夹中。通过使用Views\Home目录中名为About.cshtml的视图,将About()方法的结果呈现给客户端。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部