sách gpt4 ai đã đi

ASP.Net MVC khác với ASP cổ điển như thế nào (không phải ASP.Net - ASP gốc)

In lại 作者:行者123 更新时间:2023-12-04 16:49:51 27 4
mua khóa gpt4 Nike

我试图对 ASP.Net MVC 有一个高层次的理解,我开始意识到它看起来很像原始的 ASP 脚本。过去,我们将“模型”/业务逻辑代码组织到 VBScript 类或 VB COM 组件中。

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

1 Câu trả lời

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

网址映射

使用经典的 ASP,可以从编写 HTML 页面平滑过渡到编写具有动态内容的 HTML 页面。与静态 HTML 文件一样,每个 URL 都直接映射到文件系统中的一个文件。 ASP.NET 或多或少也是如此,就其值(value)而言。

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

这为您提供了合乎逻辑且对 SEO 友好的 URL,并将相关功能组合在一起。

逻辑与表示分离

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

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

除了使事情井井有条之外,这对于能够为事物编写自动化测试也有很大帮助。您可以将一个模拟对象发送到您的 View 并确保它看起来不错,您可以将错误数据发送到您的模型并确保它提示,您可以确保您的 Controller 发送到您的 View 的对象与它从模型中读取的内容。

强大的打字和编译

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

if (MyArray.Length > 0)

Còn hơn là
if (MyArray.Length)

但恕我直言,这是为您从强打字中获得的速度和健全性检查所付出的很小的代价。

在大型框架中编译语言的更大缺点是,与经典 ASP 之类的东西相比,部署变得更像是一种生产。您不能仅仅将几个文件复制到 Web 服务器来更新您的应用程序。您通常必须关闭网络服务器(希望您有一个冗余对)并重新编译,这可能需要几分钟。

关于asp.net - ASP.Net MVC 与经典 ASP 有何不同(不是 ASP.Net——原始 ASP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2436675/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com