ASP.NET Web 表单、ASP.NET 网站、ASP.NET Web 应用程序、ASP.NET MVC 有什么区别?

问题描述 投票:0回答:1

我对开发 Web 解决方案的所有不同项目类型感到困惑。 ASP.NET Web 表单、ASP.NET 网站、ASP.NET Web 应用程序、ASP.NET MVC 之间有什么区别?

如何检查我的项目是使用 ASP.NET Website 还是 ASP.NET Web App 开发的?

asp.net asp.net-mvc webforms vs-web-site-project vs-web-application-project
1个回答
3
投票

好的,我们有 ASP.NET Web 表单。

使用网络表单,您有两种类型的项目

ASP.NET 网站

ASP.NET 网站应用程序。

所以,以上都是网页表单。

所以:

ASP.NET Web 表单与 ASP.NET 网站与 ASP.NET Web 应用程序之间的区别

嗯,ASP.NET 网站和 ASP.NET 网站应用程序都可以使用并基于 Web 表单。

asp.net 网站和 asp.net 网站应用程序之间的主要区别?

嗯,有了网站,就没有 sln 项目文件了。虽然您可以在您的开发盒上编译、构建和运行?在发布时,您将提供两个 aspx 页面,并且代码文件必须放置在服务器上。

因此,IIS 是最终编译该代码的系统。

如果您使用网站应用程序?好吧,您有一个标准的 .net 项目文件,当您发布时,所有代码都会编译到 .dll 中。 (并且可以而且经常发生将所有许多 .dll 合并到一个项目 .dll 中)。这意味着如果你改变后面的一行代码?那么你必须重新构建并重新发布整个项目。 (因为我们使用编译的 .dll,并且源代码未发布到 Web 服务器)。

所以,很多开发人员喜欢 asp.net 网站选项。事实上,如果您的网络上有活动且正在运行的 Web 服务器,那么在 VS 中您通常可以直接打开活动的正在运行的站点,并进行更改。您所要做的就是按 ctrl-s(保存)您的更改 - 现在它们就生效了。

尽管可以“轻松”地更改网站?

我仍然非常喜欢使用网站应用程序。原因是诸如设置库代码、引用其他第 3 方代码以及引用程序集之类的事情是在开发人员和设计时解决的。所以,它更像是一个桌面项目,或者控制台项目。您可以添加引用,当您构建时,您的代码将转换为类等的 .dll。

使用 ASP.NET 网站,您在设置引用和使用附加程序集方面不会获得更好的编译时间和开发人员经验。因此,例如,我可能会共享一个非常大的类,该类执行大量业务规则和处理。我可以在多个项目之间共享该项目(类),包括设置引用并将该项目用于 asp.net 网站应用程序。因此,您在引用和使用网站应用程序的其他项目和程序集方面拥有更好的体验。但是,成本当然是现在您在发布之前进行完整的编译+构建。因此,即使只更改某些网页中的一行代码,也需要完全重新构建和编译才能发布到网站(并且您必须重新发布整个网站)。

使用 asp.net 网络?您甚至不必发布。您通常可以直接打开网站文件,如前所述。对代码进行了任何更改吗?您点击“保存”,IIS(网站)将重新编译该一页代码。

所以有一个叫做 asp.net webforms 的东西和系统。

选择以上的Web表单后,您就可以选择asp.net网站,或asp.net网站应用程序选项进行开发。

MVC:

此设置与网络表单方法和系统无关。因此,您无法进行拖放操作,也无法像使用 Web 表单那样获得可视化布局设计器。

还抛弃了控件等的自动视图状态,一般来说,您将遭受更少的页面回发和往返,就像您必须“忍受”网络表单一样。但是,由于 MVC,学习曲线更加陡峭,并且您实际上使用更传统的 Web 技术和设计来构建工作页面。结果,您还增加了成本和时间。 MVC 开发不仅更难,而且在大多数情况下会花费你更多的时间,但结果是更少的回发,结果更符合“Web 标准”。

如果您来自桌面领域,并且习惯拖放设计。 (然后说单击按钮跳转到后面的事件代码存根?那么 Web 表单将更容易学习和采用)。

但是,如果你想使用 React、jQuery.UI、bootstrap 等?没有什么可以阻止您在 Web 表单中采用这些技术 - 通过这样做,您可以减少回发和往返 - 从而最终获得 MVC 提供的轻量级结果。

© www.soinside.com 2019 - 2024. All rights reserved.