加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.Net MVC与Classic ASP(不是ASP.Net – 原始ASP)有何不同

发布时间:2020-12-16 03:40:54 所属栏目:asp.Net 来源:网络整理
导读:我试图对ASP.Net MVC有一个高层次的了解,它已经开始发生在我看来它看起来很像原始的ASP脚本.回到当天,我们将“模型”/业务逻辑代码组织到VBScript类或VB COM组件中. 当然,现在我们拥有c#和.net框架类的额外功能.除了c#和.Net中的高级oo和其他功能外,原始ASP
我试图对ASP.Net MVC有一个高层次的了解,它已经开始发生在我看来它看起来很像原始的ASP脚本.回到当天,我们将“模型”/业务逻辑代码组织到VBScript类或VB COM组件中.

当然,现在我们拥有c#和.net框架类的额外功能.除了c#和.Net中的高级oo和其他功能外,原始ASP和ASP.Net MVC之间的其他主要区别是什么?

解决方法

主要区别有三个:URL映射,逻辑与表示的分离以及强类型.

URL映射

使用经典ASP,可以从编写HTML页面到编写具有动态内容的HTML页面顺利过渡.与静态HTML文件一样,每个URL都直接映射到文件系统中的文件.同样的事情或多或少都适用于ASP.NET,因为它的价值.

在ASP.NET MVC中,URL的每个“族”映射到Controller对象(默认情况下存储在/ Controllers目录中),其中该族的每个成员在访问时调用方法.在每个方法的末尾(通常),你告诉它渲染一个特定的视图(存储在/ Views目录中以控制器命名的文件夹中),这很像一个经典的ASP页面,所有逻辑都被分离出来.

这为您提供了逻辑和SEO友好的URL和组相关的功能.

逻辑与表达的分离

在经典的ASP中,通常会找到顶部包含一些HTML的页面,然后打开数据库连接,并在输出给用户时从数据库中读取一些内容,然后再输出一些html,然后是另一个数据库语句,等等.

在ASP.NET MVC中,您的业务逻辑(例如验证)进入模型层(您可以从几十种中选择一种,但流行的选择是LINQ-to-SQL和LINQ-to-Entity-Framework),您的人机界面逻辑进入控制器(例如,根据国家/地区选择填充州/省菜单),您的演示文稿(您可以交给设计人员编辑的实际HTML)进入视图.

除了保持组织有序之外,这还有助于为事物编写自动化测试.您可以将一个模拟对象发送到您的视图并确保它看起来不错,您可以将错误数据发送到您的模型并确保它抱怨,并且您可以确保控制器发送到您的视图的对象与您的视图一致它从模型中读取的内容.

强大的打字和编译

ASP.NET是强类型和编译的.这是一把双刃剑.一方面,它会在编译时捕获很多愚蠢的程序员错误.另一方面,这意味着你的代码中存在“无穷大减1”可能的错误(单元测试可以使其无穷大减去更大的数字).此外,你必须做的事情如下:

if (MyArray.Length > 0)

而不是

if (MyArray.Length)

但恕我直言,这是一个很小的代价来支付你从强打字得到的速度和理智检查.

在一个大框架中编译语言的更大缺点是,部署变得比使用Classic ASP更具生产力.您不能只是将几个文件复制到Web服务器来更新您的应用程序.您通常必须关闭Web服务器(希望您有一个冗余对)并重新编译,这可能需要几分钟.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读