2KB项目,专业的源码交易网站 帮助 收藏 每日签到

4 年后 MVC 何去何从

  • 时间:2019-06-20 12:59 编辑:2KB 来源:2KB.COM 阅读:452
  • 扫一扫,手机访问
  • 分享
摘要: 英文原文:How
英文原文:How we do MVC – 4 years later

我曾经有3年时间首要从事于运用NServiceBus来开发SOA/消息系统,而中断了在web使用程序方面的任务,而就在比来又回归到一个MVC项目上来了。很多工具曾经发作了改动,可是也有很多工具一如畴前。

我们在MVC中测验考试运用的大大多数工具(强类型视图stringly-type view,输出/输出协助 input/output helper,元数据驱动输出metadata-driven output 等等)使得它成为我缭绕AutoMapper所失掉的诸多疑问的中心——我们依然要运用它么,等等这些问题。简洁的答复是yes,语重心长的答复则是“看状况”。因为AutoMapper旨在移除我们或许曾经写过的代码,假如我仍是计划写那些代码的话,我就会发明我对它的运用都趋势于了统一个目标,。

其它翻译版本 (4) 加载中

因此,不分主次次序,(MVC中的)一些观点和项目禁受住了时间的磨练:

  • 视图模子(ViewModel)形式,和视图与视图模子1:1的比率。它用在我情愿在视图模子以后能有一个以之定名的视图,而不是一个举措(action)办法,如许的地方。
  • 展现/编辑器(Display/Editor)模板协助。虽然我曾经不再运用MVC内建的模子了--它们没有足够的灵敏性。我将转而愈加重视运用它们的细节。
  • 轻浮便当的把持器。我们可以毫无忌惮、不留人情的实行重构。这不单单只是用复制粘贴来反复的技艺——这也是形式/观点的反复。
  • 没有奇异的工作。任何地方都是如许。没有字符串会援用那些“实践上”代表一个把持器/举措/属性/任何工具的类型。我们历来自MVC的恰当的方法取得了90%,而其他的来自对MVC的希冀(基于表达式的URL生成,包含参数的盘算)。
  • 验证你的编辑模子(edit model)——而不是你的域模子(domain model)。除非你的app就是CRUD(增删改查),运用编辑模子表现举动(activity)/操作(operation)/号令(command),而且为那些工具附着上验证,就会是一个很大的优势。我们如今就在为阿谁而运用FluentValidation了——在将来还会有更多的等待。
  • 智能的HTML生成。运用元数据(metadata)——不是奇异的模子元数据(Model Metadata),而就是元数据来生成HTML。测实验证属性的存在,附属性取得值,另有运用这些值来展现一个jquery面板。关于那些的更多工具很快就会到来。
  • 经过查询和号令来运用建模实行垂直切片测试。我其实不老是不断走UI这一条老套路,可是经过模子号令和明白的查询,我们可以将行动隔离到问题的真正攸关的地方,而且不用为ActionResult担忧了,在我们的测试中,状况也与此相似。
  • 子举措(Child action)是我们的朋友。不要把一个单一的形式弄得过分庞杂,也不要运用基于字典的视图数据(ViewData)拜访等等。不要经过一个举措过滤器(action filter)来修正ViewData,运用子举措吧。假如你运用一种举措过滤器/ViewData办法,你根本上就放弃了主动缓存的才能。
  • 从元数据生成模板。FubuMVC关于此有一个很棒的示例——运用模子元数据去生成JS模板。假如你是在手动修正CSS的class属性(class="datepiker"),你就是在做某些错误的工作。不要让我以为你必需将信息放到元数据中,运用它吧!
  • AutoMapper(主动映照)——我们依然在很普遍的运用它。一Start我们为容易的场景运用反向映照(如今这个在盒子以外曾经有了一些支撑)。我们所没有做的是无视了别的一方面SQL所吐出的一些工具。AutoMapper和懒加载(lazy loading)可以成为一种风险的组合——但诚实说,除运用它别无他法。

另有一些工具没有禁受住时间的磨练:

  • 子把持器(Subcontroller),另有更小众的便携式范畴。不坏的创意,但前面随着来了更好的处理计划(子举措和NuGet)。
  • 举措后果中的自定义管道(Customizing pipeline)。我们有一个真的真的很需求FubuMVC行动管道(behavior pipeline)观点的项目。局限实践上呈现在ActionResult的ExecuteResult办法上面。它原本应当是容易的。我们切换到到了一个调理形式(mediator pattern),随着我们的生涯就失掉改良
  • 磨练数据库的模子绑定。你的把持器举措携带一个域工具(domain object),从传入的GUID主动绑定。这不是诸如彼类可组合、可定制的。相反,运用你现有的Tools带(toolbelt),查询工具能任务的更好,且表现得很美丽。

这是一个从少列出的短清单。我想要深化具体到一些Tools选择的变更,但那将要比及接下来的若干篇文章中实行论述。

这里你没有看到的任何Javascript的工具——说诚实话,阔别了JS的4年是一段老长老长的时间。这个app不是运用分量级JS的,因而我不管怎么都不算就它论述任何工具。

自从MVC2发布以来,在你的清单外面就你怎么构建MVC使用程序有哪些改动呢?

本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。


2KB项目(www.2kb.com,源码交易平台),供给担保交易、源码交易、虚拟商品、在家创业、在线创业、Task交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接生意、网站交易、广告生意、站长培训、建站美工等服务

  • 全部评论(0)
上一篇:Docker 公司已死
下一篇:奇虎360 和 go
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部