- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[mvc]融合思想深入探索sarp架构
转:[MVC]融合思想:深入探索S#arp架构
Posted on 2009-11-13 16:56 Jolly-zhang 阅读(100) 评论(0) ?编辑 收藏 所属分类: 项目管理/架构设计
开发Web应用程序是痛苦的。无论是组织与测试AJAX脚本,还是在无状态环境下模拟状态,开发Web应用程序需要在计划和开发的各个阶段中,全神贯注,专心致志。Web开发人员还要面对开发中的诸多挑战,例如对象与关系的不匹配;在纷繁复杂的选项中选择最合适的工具提高开发效率;在项目中应用良好的架构,在保证代码具有可维护性的同时,不至于影响项目的交付。种种问题都使得开发形势变得越发严峻。
一切都在发展之中。不断涌现出的技术与技能虽然正在逐步解决这些开发中的难题,但没有任何一个可以单独扮演银弹的角色。但是通过对各种技术的权衡,精心挑选技术与技能,还是可以在不牺牲质量的前提下,大幅度地提高开发效率与可维护性。本文关注于Web开发的主流发展方向,通过使用S#arp架构,这是基于ASP.NET MVC的一个框架,荟萃了这些技术与技能的精华,从而为客户贡献价值。
赢得关键阶段的技术趋势
如果要用一个词来描述软件开发这个行业,毫无疑问,这个词语就是“变化”。比起那些历史久远的学科如土木工程学,我们这个行业不过是刚刚兴起,还处于萌芽状态。我们正在成长,而成长的烦恼就是行业自身经历的大量变化,而且看起来这样的变化还会持续一段时间。
这种变化可谓屡见不鲜。一个例子是项目管理方法学,由于其走向误区而带来的惨痛经历,它经历了大起大落,从一棵冉冉升起的“明星”,迅速衰落至默默无闻。另一个例子是有关技术的兴衰,长江后浪推前浪,新技术总是后来居上,取代旧的技术。以ASP.NET中的MVP(Model View Presenter)模式为例,该设计模式虽然为ASP.NET引入了更好的可测试性,但却增加了复杂程度。最近,微软引入了ASP.NET MVC用 来取代ASP.NET,它将之前ASP.NET实现的可测试性提升了一个新的台阶。由于要考虑.NET web开发的可测试性,MVP模式总是将控制器逻辑放在ASP.NET页面后面的代码(code behind)中,而ASP.NET MVC则抛弃了MVP的这种做法。这并不是说MVP隐含的原则到现在已经无效,而是随着这项技术的出现,通过使用适当的关注分离,可以更好的简化MVP实 现可测试性的目标。
因此,虽然软件行业仍然变化莫测,但技术发展的特定趋势与设计理念,仍然构成了开发与交付高质量可维护项目的基础。或许,这些理念的实现会随着时间 的推移而发生变化,但理念本身却是成功软件的坚实基础,能够持续地影响着软件开发。下面,我将简要地回顾这些设计理念,它们在关键阶段所获得的成功,已被 开发社区所广泛接受,因而对未来的软件开发产生了深远的影响。
抽象的基础功能
在不久之前,我还在为一个新对象编写CRUD功 能而被搞得焦头烂额。这项工作就像重新粉刷我的房子一样,费力而不讨好。充斥的大量重复代码,也成为了错误的多发地带。从编写存储过程与ADO.NET的 适配器,到测试片断的JavaScript验证代码,我发现我每天都将大把精力投入到了这些基础功能细节的实现上,以至于在我写完这些代码之后,巴不得赶 尽将它们抛诸脑外。
范式的转换在过去十年间已经发展成熟,其中关于基础功能的实现细节,属于最底层的工作,最好能够交给专门的工具来完成。面临的挑战是需要为这项工作找到合适的工具,既要允许软件忽略这些实现细节,又要保证基础功能可以使用。NHibernate是 这类工具的典范。它能够处理普通的.NET对象与关系数据库之间的持久化。采用这种方式,它就能够让对象自身完全忽略如何实现持久化,又能够解决对象与关 系之间的不匹配。而且,它不需要编写任何一行ADO.NET代码或者存储过程。NHibernate是一个非常棒的工具,更重要的是它实现了一个远大目 标,通过提供一个固定的解决方案,避免乏味而又琐碎的基础功能实现。要知道,这些实现在过去可是开发活动的重要组成部分。
随着时间的推移,软件行业引入了大量成熟的工具与技术,对这些乏味无趣的基础设施构建进行抽象,然后在开发完成后再进行设置。例如,随着NHibernate的逐渐成熟,那些附加的插件,例如Fluent NHibernate具有自动映射的能力,完全能够减轻管理数据访问的负担。这一现象印证了Douglas Hofstandter著作G?del, Escher, Bach中提到的预言,即:采用合理的抽象是软件开发的发展之道,需大力提倡。
松散耦合
遗留软件系统最常见的毒瘤是紧耦合。(我在这儿使用的“遗留”一词,指的是那些其他开发人员强加给你的破烂软件,或者是你自己在很多年前开发的破旧 系统)紧耦合的例子多不胜数,例
您可能关注的文档
- Anritsu MS2711B 手持式频谱分析仪用户指南.doc
- AO工艺A2O工艺氧化沟SBR工艺CAST工艺的特点总结.doc
- AnnotationOverlayEffect分析报告.doc
- AR18宽带路由器IPSec+Qos的应用组网和配置.doc
- API_682密封标准浅析.doc
- ARDS患者肺保护性策略未来的方向-end1.doc
- ARM电机转动控制实验.doc
- Amoeba分布式数据库的安装与配置.doc
- AutoCAD是由美国Autodesk欧特克公司于二十世纪八十年代初为微机上应用CAD技术.doc
- avr利用pwm控制led光暗和蜂鸣器.doc
- [核磁共振波谱学讲义]第三章—nmr实验技术基础(4脉冲技术).docx
- [教案精品]新课标高中数学人教a版必修二全册教案422圆与圆的位置关系.doc
- PWM变流器控制实验设计最终版.doc
- [ae]关于数字色彩原理(高品质画面色彩的物理关键).docx
- “结肠灌洗-镜检双通管”的研制及其在.doc
- 《“硫化氢延迟预处理对大鼠心肌缺血再灌注损伤后细胞的保护作用”实验的实验原理及统计学要求的讨论报告》.doc
- 《c++语言程序设计》检测题.doc
- 《photoshop图像处理与制作》考试样题300个(附答案).doc
- PWM控制技术的必威体育精装版科技成果.doc
- 《冰川的地质作用》教案.doc
最近下载
- 正稿《花钟》说课稿【公开课教学PPT课件】部编版·统编教材人教版小学三年级语文下册[文字可编辑].ppt VIP
- 艺术哲学:美是如何诞生的学习通超星期末考试答案章节答案2024年.docx VIP
- 佳能 iR ADV 4051 4045 4035 4025 黑白复印机 维修手册.pdf VIP
- 提高领导干部创新思维能力课件.pdf VIP
- 企业内部控制制度范本(24篇).docx VIP
- 纯音听力检查2015李忠信.pdf VIP
- 食品营养学第六章维生素.ppt VIP
- 涉网安全和电力监控系统网络安全检查表.pdf VIP
- 企业内部控制制度范本(24篇).pdf VIP
- 《创新思维与领导力》课件.ppt VIP
文档评论(0)