ASP.NET Web 窗体和 ASP.NET 网页

Posted

技术标签:

【中文标题】ASP.NET Web 窗体和 ASP.NET 网页【英文标题】:ASP.NET Web Forms and ASP.NET Web Pages 【发布时间】:2011-09-03 06:59:57 【问题描述】:

有什么区别?

Here 它说网页和网络表单是不同的方法。

【问题讨论】:

【参考方案1】:

共有三种 ASP.NET Full 版本,还有 ASP.NET Core(适用于 Linux 和 Mac 的新版本)。

对于 ASP.NET 完整版

第一个是最古老的,称为 Web 表单。基本上,它是一个面向组件的高级 Web 框架,可与按钮和网格等控件一起使用,这些控件封装了行为和视图。

它是最流行的 ASP.NET 风格,但因缺乏对生成的标记的控制而受到批评。目前大多数新项目都是 ASP.NET MVC,但肯定有很多 Web 窗体代码。虽然这是我个人的最爱,但我必须指出,这是开始学习 Web 编程的一种不好的方式,因为它对您隐藏了实现细节(如果您有经验,这很好)并且学习起来有点复杂。

来源:http://www.asp.net/web-forms

ASP.NET MVC 是 ASP.NET 的 MVC 模式的实现。有人声称,与使用 Web 表单相比,使用此框架开发具有单元测试和良好关注点分离的可维护应用程序更容易。

我不同意这一点,并认为使用 MVP 之类的模式可以通过 Web 表单实现相同的效果。另一方面,ASP.NET MVC 有一个很大的优势——它允许完全控制生成的标记。这对于使用 javascript 控制很多东西的现代 Web 开发风格非常重要。例如,在 MVC 视图上添加精美的动画比在 Web 窗体上更容易。

来源:http://www.asp.net/mvc

ASP.NET Web Pages 是(目前)针对小型项目和初学者开发人员(至少在我看来)的最新版本。它适用于开发约 10 页的小型项目。大多数逻辑都写在每页的一个文件中,我称之为“基本 php 样式”。它使用Razor 语法来注入服务器端代码。

来源:http://www.asp.net/web-pages

请注意,Web 窗体使用页面(与 MVC 不同),因此对于 ASP.NET 网页是什么存在混淆。

对于 ASP.NET Core,使用了新版本的 ASP.NET MVC,它在概念上与上述 ASP.NET MVC 相同。有趣的是,从 ASP.NET Core 2.0 开始,还有一个叫做 Razor Pages 的东西,它本质上是一个更高级的 ASP.NET 网页版本。

【讨论】:

Stilger,页面显示了差异,但我们是否也需要不同的 IDE;比如网页的WebMatrix? @stilgar 我不认为有任何区别。在页面asp.net/web-forms 中,如果您单击第 2 节中的“ASP.NET Web 窗体简介”,您将转到与网页有关的msdn.microsoft.com/en-us/library/ms178125.aspx。 是的,Web Matrix 是 Web 页面的必经之路。我对网页(或 Web 矩阵)知之甚少,也不太在意。对我来说,它是微软为想要从 Web 开始的初学者简化 .NET 的业余爱好者的一种玩具。现在 PHP(我认为这是一种令人作呕的语言)非常容易上手,人们倾向于坚持他们首先使用的东西并在上面投入更多。这就是为什么 MS 创建网页来让人们开始使用 .NET 而不是 PHP。 网页是一个框架。我已经提到了一些差异。 Web 窗体使用控件。 Web Pages 使用 Razer 语法将服务器端 (C#/VB.NET) 代码注入到代表页面的单个文件中。 Pages、Forms 的名称是否具有误导性?对我来说,页面似乎是用于简单的网页,而表单是用于数据输入/调查之类的东西。听起来他们都可以完成相同的事情,只是不同之处在于发展。我理解正确吗?

以上是关于ASP.NET Web 窗体和 ASP.NET 网页的主要内容,如果未能解决你的问题,请参考以下文章

asp.net web应用程序和asp.net web窗体应用程序的区别?

带有 Web 窗体的 ASP.NET 路由

如何在 ASP.NET Web 窗体环境中使用 DLL?

向经典 ASP.NET Web 窗体应用和 Web API 应用添加共享身份验证

VS2012创建ASP.NET WEB窗体应用程序失败?

ASP.NET Web 窗体用户数据 - 未存储在 SQL 中