|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了)用MonoRails做过一个项目,感到MVC形式思绪对照明晰,比来传闻微软官方出了MVC,就下载了一份,是第二个预览版,还包括一份源码。刚好比来又有一个小项目,想实验利用ASP.NETMVC来做,由于MR已好久不更新了,从SVN高低来的代码总是有成绩(多是本人的成绩),以为仍是用官方的好一些,何况微软还开放了源码,只是不同意自在公布,因而就进修和测试了一下,对测试中碰到的成绩摘录以下,大概并非成绩,只是和MonoRails对照进修过程当中的一些感到。
1、好的感到
1、全体感到和MR相似,目次布局,把持器类的划定规矩,视图目次划定规矩等基础分歧。
2、视图的可编程性加强。MR的视图(NVelocity)编程才能较差,也是MVC的哲学头脑决意的,而ASP.NET的MVC视图默许是ASPX格局的,编程才能一定是没得说了,C#和类库都可用,的确便利了很多,但要把持烂用,大批的工具写在视图中,感到就欠好了,但关于开辟来讲,的确便利了很多。
3、能够在视图中利用部分服务器控件,还能够绑定命据。偶而用一下何尝不成,和上一条相似,本人把持不要烂用,不然用WebForm好了。
4、能够用Linq查询数据库和创建模子,对数据库的操纵更间接一些了。
5、视图文件的编写撑持语法高亮和代码主动提醒完成,爽多了。不知是否是我的版本有成绩,偶而会掉灵。我但是下的官方90天试用版。
6、完全的IDE撑持,新建项目,新建把持器、视图都有模板可用,MR的IDE撑持欠好。
2、差的感到
1、视图aspx文件带差两个无用的从属文件.cs和.designer.cs,感到很欠好,目次中的文件很乱,是WebForm的遗留。
2、Web.config文件中内容太多、太庞大,弄不懂都设置了些甚么,简单出成绩,幸亏是项目模板匡助设置好的,但要本人修正生怕很难弄分明。
3、没有文档,材料少,网上就那末几篇文章,转来转往,良多写法和语法仍是第一个预览版的,在第二版中已不克不及用了。
4、HtmlHelper太差了,比MR的完美水平要差良多,本人感到MR的FormHelper很完善,基础上没有bug,用起来也很复杂,但ASP.NET的HtmlHelper每个都有良多的重载,参数弄得很庞大,有的重载之间另有抵触,出格是有一些很奇异的写法一时很让人摸不着思想。
好比:Html.Select,我们必要设置的项目一样平常包含,文本字段和值字段,这两个是必须的。写法以下:
<br>Html.Select("selectName",objDatasource,"textField","valueField",objValue)这个输入有几个成绩:
1、而输入时是把textField的值输入成select的value属性,而valueField的内容输入成select的text属性,不知是我了解的有成绩,仍是参数定名成绩,以为很别扭。
2、最初一个参数objValue,有两种重载情势,一种为object,另外一种为IEnumerable范例,用来设定select标签确当前选定值。假如间接在这里写上对象的属性,而这个属性是字符串范例,就会堕落,必要写成(object)objValue才干一般运转。很利诱,不知是我那里弄得不合错误,看了一下微软供应的源码,好象的确要这么写才行。有点弄不懂。
3、个中有一个重载情势能够输入htmlAttributes,从而设置输入标签的格局、onclick事务等,是一个字典,之前用MR都是用这类体例来输入,感到很便利,但在这里这个属的字典请求是RouteValueDictionary范例或Dictionary<string,object>范例,也就是值必须是object,假如用Dictionary<string,string>就会堕落。
4、多种重载情势脆而不坚啊,团体感到只需有下面的基础情势,最初再加上一个htmlAttributes就OK了。
5、强范例的视图写起来真是贫苦啊,哪个范例错了都不可,感到还不如MR的傻傻的视图感到好。
下面次要是写的视图(V)及helper的感到,把持器(C)和MR十分相似,过滤器比MR的要好,MR的过滤器是类过滤器只能使用到把持器上,而ASP.NETMVC的过滤器是办法过滤器,把持器过滤是事务,写起来会更简便一些。模子(M)本来是用ActiveRecord,如今是Linq,没有太年夜可比性,Linq的工具撑持要比ActiveRecod上一个品级,也更天真,哲学概念纷歧样,不成类比。没有测试Linq的数据库视图更新功效,这个也很主要,ActiveRecord中利用的办法是设定模子中哪些字段不更新和拔出,如许天生的SQL中只包含一个表的字段,视图天然就能够更新了。
UrlRotue在MR中没怎样用,感到用起来太贫苦了。而ASP.NETMVC是以UrlRotue为基本的,是一等国民,不单单是看起来悦目,更主要的是可重构,以URL表露全部使用中可供应的服务是一种理念上的变更。因为本来没用过这个东东,以是还必要深切研讨和进修。不外,微软一向器重兼容性,这个也不破例,在mvc项目中即便不利用UrlRotue,也不影响开辟和使用,出格是当一些rotue划定规矩不婚配时,会主动天生原生格局的url,这个很不错,下降了进门门坎。
总的感到,这个版本基础能够到达有用的水平了,有些不完美的中央,只需当心地绕过,应当能够一般在项目中利用。但从初版到第二版变更挺年夜的,估量第三版到beta版,再到正式版还会有较年夜的变更,会给项目标保护和晋级带来必定的事情量。
来自:http://www.ckuyun.com/inhesoft/archive/2008/03/23/1118526.html
我实在想不明白net网页编程的机制,为什么非要那么蛋疼,在同一个平台下重复编译。 |
|