大家中秋快乐,^^,近几日较忙抽点时间把写了快一个星期的日志发出来下,下面有一些是实验验证,有一些的直观感觉,所以难免有错,希望众兄弟指正
以下是这些日子来使用Asp.net Mvc的部分心得与体会
何时使用Helper
其实使用Helper性能不是太高,能免即免,不过可以在以下场合使用
1.存在Url的地方
比如超级连接,Form的Action,图片的Src.因为开发者的UrlRouting可能变化,如果写死,改动成本较大
2.有表单,并且是修改信息的时候
因为<%=ViewData["字段"]%>本身切换显示也很费时,所以不如直接用Html来绑定输出
3.表单中的动太信息DropDownList
因为HtmlHelper已经提供了很好的方法,所以在填充它时还是尽量使用HtmlHelper
对于一般插入型的表单,直接HTML我觉得就比较好了
使用Helper时要注意的问题
1.尽量不要使用RenderAction
RenderAction相当于再执行了一个Action
它的效率选没有Html.RenderPartial好,且无法使用事务,在数据库操作时很是不爽
不过它的使用也算简单,在不要求页面效率时可以使用
2.关于Microsoft.Web.Mvc
在这个程序集中的类都是预计发布的测试版,性能尚不稳定,而且更改的可能性要高很多,所以最好就是尝一下鲜,不推荐使用
提高程序性能
其实这是一个通性问题,在任何的Web架构中都是一样的.
1.尽量使用事务
特别是在写入数据库时,TransactionScope可以有效减少数据库的连接次数
2.各数据库操作共用Connection
在我的程序中,使用了Ado.netEntity,通过Linq to Entities来进行查询,而使用我自定义的数据库类来CUD,经测试二者使用同一个Connection大大的提高了连接数据库的性能.
这个也可以用在Linq to Sql.
架构与模式
其实我觉得Models的含义并不止于实体,其实也有数据的读写功能
将数据的读写封装成类,在适当的Controller中调用其实是一个很好的方法,相信很多朋友已经这么做了.
而封装数据操作我觉得使用Mediator模式比较合适,这样可以将各实体关连,也做到了很好 的分类.
这里只是取了部分我想到的问题,如果您同意或者反对,欢迎讨论