代码改变世界

阅读排行榜

Asp.net MVC验证哪些事(2)-- 验证规则总结以及使用

2013-12-31 09:20 by JustRun, 3120 阅读, 收藏,
摘要: 上篇文章Asp.net MVC验证那些事(1)-- 介绍和验证规则使用中,介绍了Asp.net MVC中的验证功能以及如何使用。这里将对MVC中内置的验证规则进行总结。一,查找所有验证规则上篇文章中提到,所有的验证规则都是位于下面的命名空间下:using System.ComponentModel.DataAnnotations;我们可以用ILSpy反编译工具,看看这个命名空间下都有些什么. 下面的图让我们一目了然,在这个命名空间下,.net为我们提供了那些验证规则。不过,有三点需要注意:1. 列出的类基本都是Attribute,如果不理解Attribute,可以看这里.Net Attribu 阅读全文

为什么项目总是失败?

2013-03-31 09:56 by JustRun, 3107 阅读, 收藏,
摘要: 做了很长时间的开发,也带过一些项目,有过很多成功和失败的经历。一些失败的项目不断促使自己思考如何才能把项目做成功,也看了一些关于项目管理和敏捷开发方面的书籍。自己总结下来,发现项目失败的原因大概是两方面:1. 缺少方法, 不知道如何应当使用那些方法来保障项目的成功。这个方面可以通过请教、多看书、不断实践来提高。2. 还有一个重要原因是人性的弱点,"超越规则"的侥幸心理。近期报道的中国式的过马路,凸显了国人不遵守规则的心理。因为人总会认为自己是个特例,明知道规则的情况下,总是认为自己能够超越规则而能够成功或者避免惩罚。这也是软件项目中同样的失败案例不断重现的原因,即使我们有前 阅读全文

.Net Collection的一些理解——记录一次向实习生的答疑

2014-08-14 12:18 by JustRun, 2975 阅读, 收藏,
摘要: 公司最近进了个实习生,每天下班前我都会花一些时间来解答一下实习生的一些疑问。今天问起了关于集合排序方法Sort的一些疑问,这让我一下回到自己刚刚入行的时候。那个时候也遇到了集合排序的问题,为发现接口IComparable和ICompare的妙处而兴奋,还在公司的内部分享会上分享了如何使用它们来排序。... 阅读全文

Visual Studio 2015上安装Entity Framework Power Tools

2016-01-05 07:54 by JustRun, 2962 阅读, 收藏,
摘要: Entity Framework Power Tools是个非常好用的EF Code First插件。通过它能够非常简单地生成和数据库结构匹配的model和dbcontext代码。使用的方法,这里有介绍 旧项目如何切换到Entity Framework Code FirstVisual Studio... 阅读全文

推荐博客文章

2013-04-09 13:54 by JustRun, 2953 阅读, 收藏,
摘要: 这里是一些个人感觉本博客里比较值得一看的文章。开发和常用工具推荐清单.Net基础枚举类型转换成字符串Math.Round和四舍五入关于DateTime和String转换的容易犯得错误C#只允许运行应用程序的一个实例的正确写法.net中的对象序列化(1): 序列化是什么, 以及一个简单的例子.net中... 阅读全文

韩非子中的管理故事 -- 明辨人才

2014-06-13 08:01 by JustRun, 2944 阅读, 收藏,
摘要: 原文:太公望东封于齐,齐东海上有居士曰狂矞、华士昆弟二人者立议曰:“吾不臣天子,不友诸侯,耕作而食之,掘井而饮之,吾无求于人也。无上之名,无君之禄,不事仕而事力。“太公望至于营丘,使吏执而杀之,以为首诛。周公旦从鲁闻之,发急传而问之曰:“夫二子,贤者也。今日飨国而杀贤者,何也?“太公望曰:“是昆弟二... 阅读全文

VS 2013中的新特性browser link

2014-04-11 08:51 by JustRun, 2927 阅读, 收藏,
摘要: Browser Link是连接VS和浏览器之间的通道。有了这个特性,web程序就能够和VS交互传递数据。这个特性在VS2013中是默认开启的。当开启了Browser Link, web程序运行的时候,就会注册一个HttpModule到asp.net的生命周期中,这个HttpModule的功能就是在每个输出的网页中,注入一段脚本,这段脚本的作用就是负责VS IDE和网页间的通讯。 阅读全文

换个角度看委托

2013-04-21 09:02 by JustRun, 2848 阅读, 收藏,
摘要: 毛主席说过长征是宣言书,长征是宣传队,长征是播种机。那么委托是什么呢?阅读目录:一、 委托是函数模板二、委托是函数指针三、委托是函数指针集合四、委托是事件通知五、委托是外部帮手六、.net中定义的丰富多彩的委托一、 委托是函数模板和类做对比, 类是对象的模板, 那么委托就是函数的模板.先看看平常我们如何定义一个classpublic class ClassA{}如上,我们使用关键字class来定义一个类.对于委托,我们使用delagate来定义:public delegate void MyDelegate(string a);我们定义了一个MyDelegate类型, 它定义的函数模板要求: 阅读全文

.Net Attribute详解(下) - 使用Attribute武装枚举类型

2013-12-10 08:18 by JustRun, 2820 阅读, 收藏,
摘要: 接上文.Net Attribute详解(上)-Attribute本质以及一个简单示例,这篇文章介绍一个非常实用的例子,相信你一定能够用到你正在开发的项目中。枚举类型被常常用到项目中,如果要使用枚举ToString方法直接输出字符串, 常常不是我们想要的输出,因为它是安装定义的名称输出字符串。比如你有一个性别枚举,有Man, Woman. 你在中文系统中,在创建用户的页面上,这个枚举代表的下拉框,当然不是显示Man和Woman的,而是要显示”男”和”女“。 下面就介绍如何使用Attribute非常方便的输出我们想要的字符串。1, 使用System.ComponentModel.Descripti 阅读全文

Entity Framework中的Identity map和Unit of Work模式

2013-08-07 22:59 by JustRun, 2708 阅读, 收藏,
摘要: 阅读目录:一、什么是Identity map模式二、关于Identity map模式的验证示例三、Unit of Work 模式四、总结和注意的问题一,什么是Identity map模式Identity map是EF获取和缓存数据的模式。Identity map模式指的是任何数据都只会被加载一次,以map的形式缓存,以唯一的identity来再次获取这些数据。在EF中,就是在一个Context的生命周期中,所有查询过的数据都会缓存到Context的local中缓存。当再次访问这些数据的时候,就会以主键(identity)从缓存中获取这些数据。二,关于Identity map模式的验证示例看看下 阅读全文

MVC数据验证原理及自定义ModelValidatorProvider实现无编译修改验证规则和错误信息

2013-10-15 08:00 by JustRun, 2673 阅读, 收藏,
摘要: Asp.net MVC中的提供非常简单易用的数据验证解决方案. 通过System.ComponentModel.DataAnnotations提供的很多的验证规则(Required, StringLength等)。但是常常有这样的需求,我们希望能够把model的验证规则,保存到数据或者xml文件中,而不是代码里, 这样的好处是,我们可以很方便的修改验证规则和错误消息,避免需要重新发布网站。这篇文章,一起来看看是如何通过自定义ModelValidatorProvider来通过XML文件配置对于Model的验证。阅读目录:一、简单回顾内置MVC验证的使用二、分析MVC验证的内部过程三、一个例子,针 阅读全文

如何在修改checkbox状态,不触发事件

2012-05-13 11:49 by JustRun, 2597 阅读, 收藏,
摘要: 如果checkbox有状态修改的事件响应,这个时候如果为checkbox赋值初始状态的时候,就会触发checkbox的事件,而往往这个不是我们希望的。如何避免这种事情发生呢? 其实就是要区分到底是人为的触发的,还是代码触发的。 如果是人为触发的,那么这个时候焦点就会在checkbox上,如果是代码赋值触发的,一般焦点都不在checkbox上。事件响应的函数中添加这个条件 chkbox.Focused 阅读全文

.Net中使用aliases让相同命名空间的dll引用共存

2013-11-12 18:40 by JustRun, 2487 阅读, 收藏,
摘要: 有些不得已的时候,我们需要同时在代码中使用某个dll的不同版本。比如用低版本的dll中的方法导出数据,然后使用高版本的方法导入数据来实现数据的升级. 又或者需要同时使用第三方的dll不同版本。如何使它们并存于系统中是个难题。如果同时存在于系统中,会出现ambiguous refrence(有歧义的引用)的编译错误。下文介绍如何使用aliases解决这个问题。一, 构建两个不同版本的Project首先构建2个不同的Project来模拟不同版本的dll引用, 这两个project中的命名空间和类名完全相同。在MultipleVersionTest项目中同时引用这两个Project. 如下图:Hig 阅读全文

Asp.net MVC的Model Binder工作流程以及扩展方法(1) - Custom Model Binder

2014-03-19 08:02 by JustRun, 2481 阅读, 收藏,
摘要: 在Asp.net MVC中, Model Binder是生命周期中的一个非常重要的部分。搞清楚Model Binder的流程,能够帮助理解Model Binder的背后发生了什么。同时该系列文章会列举MVC中Model Binder的扩展点,以及如何使用这些扩展点。阅读目录:一.MVC中的Model Binder的工作流程二.继承IModelBinder, 实现CustomeBinder三.使用Custom Model Binder的弊端四.总结一, MVC中的Model Binder的工作流程在MVC中, 当一个请求发送到服务器,先是要经过Route匹配, 找到对应的Controller和A 阅读全文

解决IE8不支持数组的indexOf方法

2013-04-02 22:17 by JustRun, 2431 阅读, 收藏,
摘要: 今天,测试报过来一个js bug, 在IE8下有个js错误,但是在其它浏览器下(Firefox, Chrome, IE9)下面都很正常。后来调试发现原因是在IE8下, js数组没有indexOf方法.下面是我找到的解决办法:在使用indexOf方法前,执行一下下面的js, 原理就是如果发现数组没有indexOf方法,会添加上这个方法。if (!Array.prototype.indexOf){ Array.prototype.indexOf = function(elt /*, from*/) { var len = this.length >>> 0; var from = 阅读全文

如何查看Linq to SQL运行时,实际执行的Sql语句

2012-02-22 14:29 by JustRun, 2261 阅读, 收藏,
摘要: 调试Linq to sql代码是, 如果遇到错误,很难判断错误的原因是什么,如果能够输出实际执行的sql原文,对于我们寻找错误的原因有有很大帮助。以下是我用到的方法: StringBuildersql=newStringBuilder();try{using(varcontext=newDataContext()){context.Log=newSystem.IO.StringWriter(sql);context.SubmitChanges();}}finally{sql.ToString();} 阅读全文

Asp.net MVC的Model Binder工作流程以及扩展方法(3) - DefaultModelBinder

2014-04-02 08:36 by JustRun, 2249 阅读, 收藏,
摘要: Default Binder是MVC中的清道夫,把守着Model Binder中的最后一道防线。如果我们没有使用Custom Model Binder等特殊处理,那么Model的绑定都是有Default Binder处理的。这篇文章,一起看看Default Binder和如何扩展Default Binder.一,Default Binder的流程下面的图是Default Model Binder中的关键方法BindModel的代码逻辑图。ValueProvider是包装好的类似于字典容器,里面包含了所有request中能够获取到的值(无论是Form提交的,还是Querystring中的) 阅读全文

.net中的对象序列化(2):三种序列化方式

2012-03-25 16:38 by JustRun, 2038 阅读, 收藏,
摘要: .Net框架中提供了3中序列化的方式, 分别是:Binary SerializerSoap SerializerXML Serializer1. Binary Serializer如果需要序列化这个类的对象,那么这个类必须要标记为是可序列化的。需要用到特性 [Serializable] (作用域是Class, Struct, Enum, Delegate)如果某些变量不需要序列化, 或者不能序列化可以使用[NonSerialized], (作用域是Field)需要注意, 如果类中使用了其它的类属性,如果希望它们能序列化,那么其它的类也必须是可序列化的, 如下面类DethDisease1name 阅读全文

Asp.net MVC - 使用PRG模式(附源码)

2013-04-18 19:03 by JustRun, 1999 阅读, 收藏,
摘要: 阅读目录:一、 传统的Asp.net页面问题二、Asp.net MVC中也存在同样的问题三、使用PRG模式四、PRG模式在MVC上的实现一. 传统的Asp.net页面问题一个传统的Asp.net页面的请求会是这样的: HTTP GET 请求"Register.aspx" HTTP POST 请求 "Register.aspx"(点击按钮等触发服务器端事件) 数据检验失败, 重新返回到"Register.aspx" 在HTTP POST到"Register.aspx" 数据创建成功, 重新返回到"Regis 阅读全文

如何定义泛型是枚举类型

2012-06-22 22:59 by JustRun, 1971 阅读, 收藏,
摘要: 使用泛型,可以约束这个泛型继承自那个类或者借口。但是如果我们的泛型需要的是一个枚举类型的时候,应当如何定义呢?没有直接的实现方式,只能是用下面最接近的方式实现:where T : struct, IComparable, IConvertible, IFormattable 阅读全文
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页