当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET MVC对于大型企业项目来说是一个糟糕的选择吗?

如何解决《ASP.NETMVC对于大型企业项目来说是一个糟糕的选择吗?》经验,为你挑选了3个好方法。

我们即将开始大型企业应用程序.我正在认真考虑使用ASP.NET MVC,因为:

    我们需要使用Microsoft技术(商业逻辑是所有C#)

    表现至关重要

    我想尽可能多地测试一下

我的团队只使用PHP进行Web开发,但对.NET winforms非常有经验(所以无论哪种方式我们都有学习曲线).我担心的是有些人对ASP.NET MVC对大型应用程序的可扩展性表示担忧.但是从我读到的内容来看,webforms也有自己的问题.

我应该重新考虑webforms,还是坚持我的直觉并使用ASP.NET MVC?

有关:

我应该在ASP.NET MVC中构建我的下一个Web应用程序吗? /sf/ask/17360801/

小智.. 30

ASP.NET webforms是重量级的,并且在html/javascript和序列化视图状态中放弃了网页上的内容.我记得我的第一个ASP.NET网站导致GC爆炸,因为所有短暂的对象都从那个神圣的观点状态重新水化.哦,当我年轻和天真(即2年前)...你必须非常好地了解webforms,以便从中构建可扩展的网站.可能?当然.简单?不.

ASP.NET MVC是很难的代码开始,但SO更容易比web表单开发.最难学的东西是1)惯例又名"魔术字符串",2)Html +内联代码又名ASP和3)html表单.

使用MVC,你无法摆脱webforms开发中常见的状态噩梦,这意味着这意味着你的网页很容易瘾.这也意味着你必须更聪明地编写你的状态.该代码也更简单,并且比传统的webforms,imho更好地扩展.

此外,使用ASP.NET进行测试几乎是不可能的,因为框架中存在硬编码和不可插入的依赖关系.ASP.NET MVC用System.Web.Abstractions成员替换了所有这些成员,这些成员是围绕这些设计糟糕且不可测试的对象的可模拟包装器.

跑步,不要走路,去MVC.


对于显而易见的问题,如果您使用位于ASP.NET框架顶部的框架,例如MVC或您编写的任何其他框架或其他人编写的框架,那么显然这些评论中的一些不适用.

另一方面,如果你像早期人类对ASP.NET webforms模型进行编码(例如,Page_Load中的Response.Write()),我的评论适用.

你能编写一个可以对ASP.NET测试的代码吗?当然.你可以不用包括你或别人写的特殊测试代码吗?当然.如果你有TypeMock.



1> 小智..:

ASP.NET webforms是重量级的,并且在html/javascript和序列化视图状态中放弃了网页上的内容.我记得我的第一个ASP.NET网站导致GC爆炸,因为所有短暂的对象都从那个神圣的观点状态重新水化.哦,当我年轻和天真(即2年前)...你必须非常好地了解webforms,以便从中构建可扩展的网站.可能?当然.简单?不.

ASP.NET MVC是很难的代码开始,但SO更容易比web表单开发.最难学的东西是1)惯例又名"魔术字符串",2)Html +内联代码又名ASP和3)html表单.

使用MVC,你无法摆脱webforms开发中常见的状态噩梦,这意味着这意味着你的网页很容易瘾.这也意味着你必须更聪明地编写你的状态.该代码也更简单,并且比传统的webforms,imho更好地扩展.

此外,使用ASP.NET进行测试几乎是不可能的,因为框架中存在硬编码和不可插入的依赖关系.ASP.NET MVC用System.Web.Abstractions成员替换了所有这些成员,这些成员是围绕这些设计糟糕且不可测试的对象的可模拟包装器.

跑步,不要走路,去MVC.


对于显而易见的问题,如果您使用位于ASP.NET框架顶部的框架,例如MVC或您编写的任何其他框架或其他人编写的框架,那么显然这些评论中的一些不适用.

另一方面,如果你像早期人类对ASP.NET webforms模型进行编码(例如,Page_Load中的Response.Write()),我的评论适用.

你能编写一个可以对ASP.NET测试的代码吗?当然.你可以不用包括你或别人写的特殊测试代码吗?当然.如果你有TypeMock.



2> Chad Moran..:

ASP.NET WebForms与Winforms非常相似,允许RAD(快速应用程序开发).在没有时间得到东西的速度非常快.问题是测试可能是一个主要的痛苦,如果用于任何公共面临可能意味着ViewState的一些主要问题.WebForms可以轻松使用状态,使得向导变得轻而易举.

另一方面,ASP.NET MVC可能需要更长的时间来开发,并要求开发人员了解HTTP的工作原理.它是一种无状态架构,意味着每个请求都是它自己的小世界,并且通常不了解先前的请求.该框架还允许高可测试性.

就性能而言,它们可能是相同的,因为ASP.NET MVC只是构建在现有ASP.NET体系结构之上的框架.虽然对于客户端体验我会说MVC更快一些.

就可扩展性而言,我认为就技术而言,它们大致相同.如何使用API​​并集成它MVC可能会更容易一些.

您现在使用的网站询问此版本问题是基于ASP.NET MVC构建的,它们有2个Web服务器和一个强大的数据库服务器.


我不同意开发WinForms比MVC更快.HTTP比事件模型的复杂性更容易理解(对于Web开发人员).像基于用户控件的OnSelectedItemChanged事件对页面进行数据绑定之类的东西在WebForms中是一个令人厌烦的过程,但在MVC/jQuery中是微不足道的.
这是一个主观评论.我说WebForms对于那些使用WinForms开发的人来说更快.许多开发人员只是"得到它".传统的WinForms开发人员不了解无状态上下文(ASP.NET MVC/HTTP).

3> Gregory A Be..:

ASP.NET MVC对于Enterprise来说不是问题,但ASP.NET,Silverlight等也不是问题.它们都是UI技术.大多数应用程序逻辑应该存在于UI层下面的库中,因此几乎可以使用任何UI.

    我们需要使用Microsoft技术

    表现至关重要

    我想尽可能多地测试一下

基于以上所述,ASP.NET MVC将起作用.但是,您可以将代码移到UI下方并进行测试.如果您的算法低于UI,则可以在不更改UI的情况下调整它们.并且,如果UI层非常薄,则UI的性能命中可忽略不计.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有