委托
    
            
摘要:对于委托的理解方式可能每个人都不尽相同,正所谓1000个人心中有1000个哈姆雷特!笔者以一种较容易理解的方式太陈述,可能更适合新手,各路大神砖家们请勿喷,感激不尽!!!回顾一下上一篇的demo代码,有一些小的改动:View Code上一篇地址http://www.cnblogs.com/error500/archive/2012/09/14/2684321.html前面说过委托也是一个类,可以将方法当作另一个方法的参数来传递,这里没有直接传入方法名,而是定义了两个基于委托的变量,可能更好理解。其实在javascript里面也有一中类似的用法,有时候我们会将一个函数名传给第二个函数,第二个函数
        
阅读全文
摘要:内容摘要异步编程在我们日常的开发工作中经常遇到的场景。现在的应用程序,很难说不需要进行异步的一些任务。例如网络服务的调用。典型的情况就在于Silverlight和AJAX场景中。一个异步任务的执行,可能很简单,.NET有大约4种所谓的异步编程模型,最常见的是基于回调的方式。每个异步任务,都是独立的一个线程,这些任务之间,默认情况下不会有依赖,也不会有先后顺序的概念的。他们一般是同时发出去的请求,然后根据具体每个任务的情况,会逐渐返回结果。但这里有一个情况就是,他们返回结果的时间是不可预期的。但是如果我们需要有多个异步任务,而且这些任务之间本身存在一定的先后次序,例如A先执行完,然后才能执行B,
        
阅读全文
摘要:在日常开发中有时需要做一个小程序来完成一个相对比较单一的业务,这个小程序可能要求在后台线程里执行业务同时界面还要有日志提示,以告之后台线程处理的情况,最后程序还要记一些日志以便于日后查找问题。其实这样的小程序开发起来总体比较简单,每个人可能都有自己的开发方式,只是如果做了很多小程序你就会发现,其实这些小程序只有后台业务不一样,其它的都可以采用统一的框架,为此我在这里分享一下我平日里写程序时用的一个小框架,希望对你有所帮助,特别是对一些经验不是很多的初级程序员。 一,解决方案图 说明:此框架主要包括宿主(UI),父类业务,帮助类(日志记录),工厂(配置连接,DAL实例生成),一个Demo项目..
        
阅读全文
摘要:我曾经在想,怎么样控制权限比较好呢。曾经尝试过控制到页面,很方便,但不细致;也曾想过控制到按钮,很麻烦,也不灵活。最终我决定,还是控制到方法吧(实际是控制到类),所以现在这套权限管理方案便产生了。只需要继承与一个类,并给它设置一个attribute,就那么简单。这就是Lm.Common.Auth命名空间提供的权限控制方案。以下是对这种权限控制方案的简单描述,以及整理出来的最简代码。完整代码请访问我的开源项目,http://lmcommon.codeplex.com/OperationBase类,是权限控制的核心。如果一个类ClassA继承与OperationBase,那么ClassA提供的所有
        
阅读全文
摘要:如果经常浏览我博客的人就发现,我三个月前就搞鼓过一下什么MVVM与MVC的比较,knockout.js与ember.js。然后就没动静了,因为之后一个月,我的MVVM就孵化出来,开发代码很逆天也很龌鹾,就叫avalon(WPF开发代号)。我觉得,都是好东西,相互借鉴是没所谓,只要造福IT民工!说说MVVM的重要性,它虽然是从MVC中衍生出来的,但其双向绑定机制是特有的,完全是面向界面开发而生,这是传统的MVC比不了。最近我拉了一伙人在搞我的mass UI就遇到这问题了。//由mass UI开发团队的Hodor 提供define('panel',['$node',
        
阅读全文
摘要:在设计对象继承的时候,父对象建构子会需要一些参数,这些参数可以由子对象建构子透过base关键词来提供。?123456789101112131415161718192021namespaceTest001{publicclassParentClass{// ConstructorspublicParentClass(IEnumerable<string> dataCollection){this.DataCollection = dataCollection;}// PropertiespublicIEnumerable<string> DataCollection { 
        
阅读全文
摘要:增加了程序自动更新版本的功能,实现方式如下:后台数据库中用一张表来保存程序的版本信息,该表的字段很简单,如下:CREATE TABLE [dbo].[sys_AutoUpdate]( [UID] [int] IDENTITY(1,1) NOT NULL, [SystemName] [varchar](50) NULL, [SystemVersion] [varchar](10) NULL, [Remark] [text] NULL, [UpdateDate] [datetime] NULL, [UpdatePath] [varchar](500) NULL)在之前的项目里面增加了一个新的项目,
        
阅读全文
摘要:/// <summary> /// 发送邮件 /// </summary> public class SMTPManager { /// <summary> /// /// </summary> /// <param name="Dep_Email">收件人</param> /// <param name="Title_Name">邮件的标题</param> /// <param name="Mis_Describe">邮件的内
        
阅读全文
摘要:js中escape对应的C#解码函数 System.Web.HttpUtility.UrlDecode(s) //注意编码----------------------------------------------------------------------------------------------需要注意的几点:1、HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法。2、Server是HttpServerUtility类的实例,是System.Web.UI.
        
阅读全文
摘要:今天的项目中碰到了一个乱码问题,从JS里传URL到服务器,URL中有中文参数,服务器里读出的中文参数来的全是“?”,查了网上JS编码相关资料得以解决。1、在JS里对中文参数进行两次转码复制代码代码如下:var login_name = document.getElementById("loginname").value;login_name = encodeURI(login_name);login_name = encodeURI(login_name);2、在服务器端对参数进行解码复制代码代码如下:String loginName = ParamUtil.getStri
        
阅读全文
摘要:escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-ZencodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-ZencodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z1.JS:escape :js使用数据时可以使用escape例如:搜藏中history纪录。0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编
        
阅读全文
摘要:高级编程语言在编程界,当用“高级”来形容一种编程语言时,那是表示这种编程语言含有接近人类语言的结构和语法。或者反过来说,在坐标另一轴的“低级”表示一种编程语言的结构和语法更直接反映硬件的特性,比如:机器代码及其体系结构。高级并发编程模式这个概念启发我建立了一个类似的标准来描述并发编程的模式和技术。“高级”用来表示一种并发编程模式的思维方式更接近人类的,而“低级”则表示更接近机器的思维方式。评价一种模式是高级还是低级,一般要观察它的静态特性和动态特性。静态特性指的是它有哪些结构可以给程序员用来构建程序,这些结构是更象人类的思考模式还是机器的。比如一个整数数组,甲语言要求全是整数;乙语言里可以是整
        
阅读全文
摘要:分享两套MVC3开源程序:YQBlog个人博客系统以及YQCMS通用建站系统开发环境: Visual Studio 2010(MVC3+EF4.0) + SQL2005运行环境: .net framework 4.0 + SQL2005预览源码下载1.为什么有两套程序?YQBlog之前已经发布了两个版本,现在是1.2版本,YQCMS则是首次发布的1.0版本。目前很多流行的博客程序,除了用作博客网站外,很多人还会把它进行改造来做企业站。虽然实质上都是内容管理,但基于业务的偏差还是会有不少程序上的需求差异。企业站的需求千差万别,如果我们想要去适用这些需求,则会导致程序的不断增长而变得庞大。如果仅仅
        
阅读全文
摘要:1.异步方法的实现原理异步方法不需要多线程,因为一个异步方法并不是运行在一个独立的线程中的。异步方法运行在当前同步上下文中,只有激活的时候才占用当前线程的时间。异步模型采用时间片轮转来实现。2.使用异步编程模型的优势:避免性能瓶颈,提升应用程序的整体响应性。3.关键字 全新的异步编程模型使用“async”和“await”关键字来编写异步方法async:用来标识一个方法,lambda表达式,或者一个匿名方法是异步的;await:用来标识一个异步方法应该在此处挂起执行,直到等待的任务完成,于此同时,控制权会移交给异步方法的调用方。4.异步方法的参数和返回值异步方法的参数:不能使用“ref”参数和“
        
阅读全文
摘要:在之前介绍的Winform分页控件中,都以分页控件+显示表格控件作为一个整体性的控件,不可分开,这样做的目的是可以实现更多的操作,集成更多丰富的特性,减少我们开发的工作量,这种情况虽然适用于大多数的情况,不过有时候需要更进一步对列表控件进行设置修改或者实现一些特殊的显示效果的时候,这种绑定列表控件的分页控件方式就有点捉襟见肘了。为了解决这个问题,我对分页控件进行稍微的调整,使其支持分页和列表控件分开的情况,具体实现以及效果是如何的呢,下面我们来分析了解下。1、单独的分页信息控件在我的开发设计过程总,实现一些关键的属性及操作后,它就可以作为一个独立的分页控件进行使用了。运行的时候效果如下所示:2
        
阅读全文
摘要:本地化中文示例代码需求调查2012-09-10 11:50 by Jialiang, 888 阅读,4评论,收藏,编辑目前在MSDN Samples Gallery上有4393个示例代码,包括1072个微软一站式示例代码库示例:http://code.msdn.microsoft.com/?f%5B0%5D.Type=Contributors&f%5B0%5D.Value=All-In-One%20Code%20Framework&f%5B0%5D.Text=All-in-One%20Code%20Framework%20team但其中仅有96个示例的文档,界面和代码注释被本地
        
阅读全文
摘要:CPQuery, 解决拼接SQL的新方法阅读目录开始CPQuery是什么?参数化的SQL语句改造现有的拼接语句揭秘原因CPQuery源码CPQuery的已知问题以及解决方法更多CPQuery示例友情提示我一直都不喜欢在访问数据库时采用拼接SQL的方法,原因有以下几点:1. 不安全:有被SQL注入的风险。2. 可能会影响性能:每条SQL语句都需要数据库引擎执行[语句分析]之类的开销。3. 影响代码的可维护性:SQL语句与C#混在一起,想修改SQL就得重新编译程序,而且二种代码混在一起,可读性也不好。所以我通常会选择【参数化SQL】的方法去实现数据库的访问过程, 而且会将SQL语句与项目代码(C#
        
阅读全文
摘要:相信每个有几年工作经验的程序员都会有自己的小类库,这些类库承载的自己学习工作的成果,可是要怎样整理类库呢,以下分享一下自己方法。(非分享类库源码,请理解)之前的类库是这样的全部类都放在一个类库中(一个dll),要使用时不方便查找。通常看到好的代码都会直接放在类库中,而没有经过仔细的测试,有时候某些代码明明应该属于已有的某一个类,但是由于不想花时间去找,通常会直接新建类去存放,如此会导致相同功能的代码分属于不同的类。公共代码累计越来越多,但是用的时候却非常少。因为疏于管理,不方便检索,而且代码不一定正确,所以遇到问题更多的时候直接google,如此代码库用的机会就越来越少,最后直接放弃。截图现在
        
阅读全文
摘要:PredicateBuilder 对 ADO.Net Entity Framework 支持的改进曾几何时,网络上曾经大传PredicateBuilder用于拼接两个 Lambda 表达式树。在对内存数据的筛选上面,其简洁方便的操作大放异彩,但是对数据库操作的不支持,一直是其硬伤。PredicateBuilder 拼接表达式的过程中,产生的 Invoke 表达式无法翻译成 SQL 语句,这是其根本原因。另外,Invoke 表达式编译后,形成的委托调用委托的方式,也是对性能的一种损耗。当然,也有很多人对其做过改造,不过给人的感觉,总不是那么完美。以前,因为种种原因,我们不得不忍受这种问题。前几天
        
阅读全文
摘要:2324252627282930123456搜索我的标签FlashPaper(2)Office文档转换(2)转换SWF(2)装换Flash(2)Select覆盖Div(1)sql(1)UpdatePanel JS .Asp.Net C#(1)关系(1)主外键(1)随笔档案2012年9月 (2)2012年6月 (1)2012年3月 (1)2011年9月 (1)2011年8月 (1)相册文章用最新评论阅读排行榜1. 解决Select覆盖Div的简单直接的方法(907)2. VM中启动mac遇到的错误及解决方案(314)3. .Net向Page和UpdatePanel输出JS(298)4. .Net
        
阅读全文