[转载]Spb内部资料:为什么选择mvc?

baacloud免费翻墙vpn注册使用

[转载]Spb内部资料:为什么选择mvc? – SPB代言人 – Spacebuilder.

前言

本资料是2008年7月份左右我们筹划开发Spacebuilder V2.0之前进行的调研,详细的分析了Spacebuilder的问题,以及分析了为什么选择mvc,在后续的文章中我们会继续放出内部在使用mvc开发 SPB 2.0中遇到和解决的问题,以及mvc为Spacebuilder所带来的改变。

一、SPB表现层当前存在的问题

1.表现层整体运行效率低

由于全部采用的自定义控件,是靠在运行时动态加载skin文件实现换肤的,导致以下性能问题:

*动态加载skin导致全部采用FindControl方式导致浪费很多服务器资源;

*在加载skin文件时首先都要检查文件是否存在,也浪费了服务器资源;

*不利于前端优化,当前不好控制css、JavaScript的链接位置及JavaScript的执行位置;

*即便很多功能不依靠ViewState但是为了减小页面大小还需要对ViewState进行处理;

2.ajax效率低

当前spb的ajax主要使用的是ASP.NET ajax的UpdatePanel,使用UpdatePanel并不是真正的ajax解决办法,其实只是一个防止页面刷新的障眼法而已,页面的传输流量没 有减少而且会经历完整的页面生命周期。

3.url rewrite不够灵活

*当前实现二级域名形式(http://mazq.spacebuilder.cn)url rewrite,要借助外部工具;

*无法重写实现类似目录的url重写,例如:http://spacebuilder.cn/mazq/blog/2008/8/10/19

4.SEO困难

*css、js文件的链接及加载位置难以控制,页面内容不利于SEO

*当前url rewrite规则不利于SEO;

二、WebForm与MVC比较

1.WebForm与MVC表现层模式比较

mvp

View不能重用
P与V关系密切

View可以完全交给界面设计人员

mvc

View可以重用

C与V关系不紧密

View完全交给界面设计人员有一定难度

2.WebForm优缺点分析

优点:快速上手、快速开发、强大的扩展机制

缺点:复杂的引擎、对于开发高性能的站点反而降低开发效率(解决ViewState、控件ID、换肤功能、SEO)

3.ASP.NET mvc优缺点分析

优点:

原生态url routing,便于url rewrite
Control与View完全分离,利于换肤且没有性能损失
便于对输出的html做完全的控制,利于精简代码及SEO
表现层的性能可以优化到极致
应用ASP.NET的master及去除控件的运行时特性,使用vs开发时将可以使用设计视图

缺点:

开发人员需要花时间熟悉这个新技术
现有代码移植到mvc需要一定时间
开发人员需要熟悉html以及css、JavaScript
开发人员需要摆脱在WebForm开发时对服务器控件种种依赖

三、ASP.NET MVC介绍

1.mvc运行图

mvc运行图

2.mvc详细请求流程

mvc详细请求流程

(1)用户发起一个url请求

(2)ASP.NET MVC framework通过url roueing rules找到一个处理该请求的Controller及Action
(3)Controller调用Model加载View需要的数据
(4)Model从数据库获取数据
(5)Controller把从Model取出的数据传输到View,然后由View负责对外呈现

四.使用mvc注意事项

1.aspx、ascx、master依然可用,但是不再有postback模型,亦不会有页面生命周期及ViewState;

2.asp.net mvc框架将完全支持象forms/windows身份认证,URL授权,成员/角色,输出和数据缓存,session/profile状态管理,健康检 测,配置系统,以及provider架构等现有的ASP.NET特性;

3.SBContext将不复存在;

4.XxxUrls Url集中管理类将不复存在;

5.所有依赖ViewState的控件将重新考虑设计或直接去除;

6.ResourceManager及相关控件需要调整

附 件:SPB表现层技术选型-asp.net mvc.pps

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏