ASP.NET Webforms (2.0-3.5) 的主要优势是什么?我不是在寻找与其他框架的比较,我只是在寻找对 ASP.NET 的反馈,就像它现在一样。
8 回答
一个关键优势(对某些人来说)是集成到 Visual Studio 中的拖放式开发环境。这使您可以快速启动和运行简单的事情,但当您真正需要了解底层代码时,这也可能是一种负担。
我认为组件模型是关键,易于使用其他网页的部分作为组件(通过用户控件)是关键优势。
ASP.Net 的主要优势是:
- 编译代码 - 性能
- 多语言开发
- XCopy 部署
- Visual Studio 设计时集成和表达式 Web
- 许多第三方控件,包括开源的和商业的
- 易于初学者学习
- 状态管理
- 入门简单的学习曲线低(但是,一旦您拥有一个包含动态添加元素的页面,就会很快变得复杂)。
- 庞大的成熟控件库
- 大量的文档和资源
- 很棒的演出
尽管其他人可能会说什么,但有可能防止事情变得一团糟。
网络表单的好处
- 事件驱动
- 有状态的
- 轻松开发可重用控件
对 Web 表单的误解
- 它不容易测试
- 如果您正确地构建代码,它很容易测试
- 控件生成的 HTML 不好
- 不再,有 CSS 友好的控制适配器
总体而言,ASP.NET 网络表单是一个很好的开发模型,人们抱怨的大多数缺点是误解或糟糕的设计/架构。最重要的功能是 Web 表单的生命周期/状态性,您可以灵活地开发非常易于使用和可重用的控件。
Web 应用程序的构建速度相对较快,但维护起来相对较难。
比较容易学。您不需要了解 html、css 和 javascript。但是,如果您已经了解 html、css 和 javascript,其他 Web 开发技术可能更容易学习。
如果您来自不同的技术,采用 asp.net 网络表单相对容易,因为它不需要严格的方法来有效,而且它支持多种语言。
这是一项比较成熟的技术。
向 Web 应用程序添加新功能相对容易,但在保持良好代码质量的同时更改现有功能相对困难。
易于与 Windows 应用程序集成,因为它是事件驱动的。
许多第三方库可用。
比较容易处理应用程序状态。
比较容易部署。
平台独立性(我没有这方面的经验,所以我不知道这是不是真的)
然而:
理论上它有很好的性能,但实际上它没有。编译后的代码不会带来更好的性能,因为这不是 Web 应用程序的瓶颈。瓶颈是发送到浏览器的 html 数量、执行字符串操作的速度以及查询数据库的速度。在这些方面,它是市场上最差的产品之一。
在竞争对手公司正在开发类似产品的简单应用程序或创新项目中,快速构建 Web 应用程序可能是一个优势,但在大多数情况下,应用程序的可维护性比构建时间重要得多。
使用多种语言进行开发是不利的,因为某些第三方组件只能以一种语言提供,如果您碰巧需要它,您将需要学习两种语言,而不仅仅是一种语言。C# 和 VB.Net 99% 相同,只是使用不同的词,但语法几乎相同。在团队中开发时,总会有人偏好其中一种语言,而用两种语言开发一种产品只会让事情变得混乱,因此必须选择一种语言,不同意这种选择的团队成员将以糟糕的方式开始项目士气最终会对您的项目产生不良影响。唯一真正受益于多语言支持的是微软。
与无状态系统相比,Web 表单的全状态特性是一个缺点,因为它会导致很多问题。外部网站或书签将无法直接链接到所有内容,因为某些内容只有在执行几个用户操作后才可用,因此不要直接链接到 www.example.com/a/b?c=d 网站必须链接到 www.example.com/a/b 并向用户提供一些关于如何访问引用内容的说明。大多数搜索引擎将无法找到大部分内容。在浏览器中使用后退按钮可能会导致错误。客户端的连接问题或休眠可能会导致错误。它不能利用代理,在某些情况下会导致性能不佳。代理、网关和缓存可能会导致错误。在网站更新时浏览网站会导致错误。
我同意 sontek 的观点,即如果以正确的方式构建很容易测试,但我不同意 sontek 的观点,即这是 Web 表单的优势。因为在软件架构中,您通过架构创造的每一个优势也会导致劣势。在这种情况下,它会导致构建时间的劣势,这几乎是 Web 表单的主要优势,所以如果你想要一个可测试的系统,使用 Web 表单是没有意义的,因为那样你可以更好地使用 MVC 或其他东西像那样。
它使您无需很好地理解 HTTP 等底层概念即可构建 Web 应用程序。这有其自身的缺点。
易于使用以完成简单的事情