asp.net mvc架构选型的几点思考

作者:敖士伟 ikmb@163.com

一、mvc的优点:

1.mvc最大的优点在于将view和controller分离,松散耦合,从架构上强化了分层思想(表示层,控件/业务层,数据层)
2.url相对友好
3.接收url中的查询参数可以使用action的model绑定或者参数绑定,实现参数强类型

二、mvc的问题:

1.纯执行速度比aspx慢20%左右
2.CPU占用比aspx高15%左右
3.mvc的url相对友好的意思是,诸如/controller/action/arg1/arg2或者/controller/action-arg1-arg2.html或者/path1/path2/path3/controller/action/arg1/arg2这样形式的url:
(1)也要在route中进行单独配置
(2)重新配置后要重新生成应用,甚至是重新更新应用的dll,这样会为应用带来更多的稳定性风险
(3)mvc的url重写规则反到不如ISAPI_Rewrite或者nginx这样灵活
4.controller更新问题
(1)由于controller默认是在应用的dll中,或者分离到几个类型项目生成几个dll,这样更新某一个controller甚至action,将会更新整个dll,为应用带来更多的稳定性风险
(2)我尝试将各个controller单独生成dll来解决controller来解决更新问题,根据测试结果(2000个controller的dll),整个应用加载需要很长时间(mvc在第一次扫描所有dll的controller类名并缓存),同时响应速度是aspx的40%

三、aspx的问题:

1.html与代码耦合性较强
2.服务器控件及viewstate使输出html增大,减慢了响应速度,增加了网络带宽

四、选用aspx的解决办法:

1.选择asp.net web site而不是asp.net web application
2.在思想上分清表现层与业务层的关系,在架构规则中作出说,比如aspx.cs里只写列表型代码,而一些接收更新、删除操作的代码写到ashx文件中,通过ajax调用
3.禁止使用服务器控件
4.禁止viewstate
5.使用ISAPI_Rewrite或者nginx进行url重写

6.view的好坏主要还是在于美工而不是什么服务器控件

作者:敖士伟 ikmb@163.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值