代码改变世界

推荐排行榜

读《.NET设计规范》之命名规范的总结

2012-02-09 22:07 by stevey, 2118 阅读, 收藏,
摘要: 《.NET 设计规范》是数千名微软精锐开发人员的经验和智慧,最终浓缩在这本设计规范之中。它指导着.NET Framework几个版本的开发,和微软windows操作系统的下一代API---WinFX开发。上面这些话是C#之父说的,不是我。它指导着微软内部开发规范,可见是一本非常好的书,而且博客园的其他大牛也推荐过的,是一本修炼内功的武功秘籍。为什么需要命名规范?1、提高框架的可用性,一致性。使的不同项目的开发人员使用同一个框架成为可能。大到一个Framework,小到一些控件(Grid)或者封装的库,他们中的API都是为其他开发者所使用的,固良好的命名很重要。就比如:.NET Framew.. 阅读全文

[原创] 从列表页面“切换”到详细页面---两个神奇的div

2012-01-03 22:33 by stevey, 3102 阅读, 收藏,
摘要: 需求场景:在我们做web 前段开发的时候,可能会遇到这样的场景。在一个列表(list)页面,如下图:当我们前进到第10页时候,选中一条数据,点击编辑,会跳转到如下的详细(detail)页面,如图:提出问题:我们是如何跳转到这个详细页面的呢?1.最直接的方法,window.location=details.aspx.现在问题来了,如果是直接重定向到详细页面,那么在返回列表的时候,会不会遇到什么问题。在返回的时候,假设返回执行的代码:window.location=list.aspx。这样就会返回到列表,没错,可是回到了列表的第一页啊。上面假设的这种跳转,会出现“状态”丢失的情况。或许有同学说了, 阅读全文

性能优化-列表类型转换(ConvertList<TSource, TResult>)

2013-12-16 16:55 by stevey, 1918 阅读, 收藏,
摘要: 之前,在项目中看到过一段通用列表类型转换的代码,直接的实现便是用反射。大概看了下,它用在领域模型转DTO和SOA接口中契约实体的转换等等。首先,它使用了反射,其次,还是在循环中使用,便有了优化的想法。方法原型如:public static List ConvertList(List source) where TResult : new(),下面贴出代码。说明一下,在此我没有任何的贬义,这段代码可能比较老,其次在项目中,首先是实现功能,如果当时没有更好的实现,就先实现功能,后面有时间可以在优化,毕竟项目有时间节点,个人自己平衡哈。public class ObjectConvertHelp.. 阅读全文

扩展LINQ to Entity:使用Lambda Expression批量删除数据------让微软帮我们生成T-SQL语句

2012-06-28 23:31 by stevey, 4780 阅读, 收藏,
摘要: 我们在使用EF(ADO.NET Entity Framework)的时候,大部分的的是查询操作,当然Insert,Update,Delete是没有问题的。但如果我们想要批量删除数据,那该怎么做呢?然后就尝试着去寻找一些方法,而后看到老赵的《扩展LINQ to SQL:使用Lambda Expression批量删除数据》,从中获益匪浅,学到不少东西,非常感谢。老赵的方法中需要解析Lambda Expression(当然也是正规的必经之路),来生成where条件及整个T-SQL语句,那么解析Expression需要考虑到很多方面,所以要实现一个比较完善的解析方法,目前来说比较复杂,要花费大量的.. 阅读全文

Expression Tree实践之通用《对象相等性比较器GenericEqualityComparer》------"让CLR帮我写代码"

2012-05-12 02:03 by stevey, 1501 阅读, 收藏,
摘要: 在上篇中,我们已经实现了一个根据类型动态生成Parse方法调用。下面我们就实现一个的对象“逻辑”相等的通用比较器,来继续领略一下Expression Tree的动态代码生成的强大功能。 实现这个通用比较器的想法是一个机遇巧合的。那天有个叫小玉的同事问到我这样一个问题,在list列表中怎么样过滤掉重复的对象?他好像是调用别人的存储过程接口,得到可能重复记录的list列表(先不管他这个场景是否合理)。我直接就把msdn关于distinct的方法法给他了,可他感觉好像比较复杂,最终好像是自己写了个for循环的方法实现需求了。刚好过了没多久,就读到老赵在InfoQ上的一篇文章《表达式即编译器》,... 阅读全文