我们即将着手开发一个大型企业应用程序。我正在认真考虑使用 ASP.NET MVC,因为:
- 我们需要使用 Microsoft 技术(业务逻辑全部是 C#)
- 性能至关重要
- 我想尽可能多地进行测试
我的团队仅使用 PHP 进行 Web 开发,但对 .NET winforms 非常有经验(因此无论哪种方式,我们都有一个学习曲线)。我担心的是,有些人对 ASP.NET MVC 对大型应用程序的可扩展性表示担忧。但据我了解,网络表单也有自己的问题。
我应该重新考虑 Webform,还是坚持自己的直觉并使用 ASP.NET MVC?
相关:
Should I build my next web app in ASP.NET MVC? https://stackoverflow.com/questions/521388/from-webforms-to-asp-net-mvc
最佳答案
ASP.NET Web 表单是重量级的,会在您的网页上放置大量内容,无论是 html/javascript 还是序列化 View 状态。我记得我的第一个 ASP.NET 网站导致 GC 崩溃,因为所有短命对象都从那个可怕的 View 状态中重新水化。哦,当我年轻而天真的时候(即两年前)......你必须对网络表单有很好的理解才能用它们构建可扩展的网站。可能的?确实。简单的?不是。
ASP.NET MVC 最初更难编码,但SO比 Webform 更容易开发。最难学的东西是 1) 约定又名“魔术字符串”,2) Html + 内联代码又名 ASP 和 3) html 表单。
使用 MVC,您无法摆脱 Webform 开发中常见的状态噩梦,这意味着您的网页会变得非常薄弱。这也意味着你必须更智能地编写你的状态代码。恕我直言,该代码也比传统的 Web 表单简单得多,并且可扩展性更好。
此外,由于框架中包含硬编码和不可模拟的依赖项,因此使用 ASP.NET 进行测试几乎是不可能的。 ASP.NET MVC 用 System.Web.Abstractions 成员替换了所有这些成员,这些成员是这些设计糟糕且无法测试的对象的可模拟包装器。
跑到 MVC,而不是步行。
<小时/>对于明显的障碍,如果您使用位于 ASP.NET 框架之上的框架,例如 MVC 或您编写的或其他人编写的任何其他框架,显然其中一些备注不适用。
另一方面,如果您像早期人类那样针对 ASP.NET Webforms 模型进行编码(例如 Page_Load 中的 Response.Write()),那么我的评论适用。
您可以编写可针对 ASP.NET 进行测试的代码吗?当然。您可以在不包含您或其他人编写的特殊测试代码的情况下做到这一点吗?当然。如果您有 TypeMock。
关于asp.net - 对于大型企业项目来说,ASP.NET MVC 是一个糟糕的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/570705/