代码改变世界

随笔分类 -  软件开发

memcached 、redis相关文章

2013-08-12 15:01 by kellweke, 174 阅读, 收藏,
摘要: http://www.cnblogs.com/chenchunyong/archive/2013/04/17/Redis.htmlhttp://blog.csdn.net/susubuhui/article/details/8930551http://www.oschina.net/question/102776_13807http://www.linuxidc.com/Linux/2012-06/62809.htmhttp://blog.sina.com.cn/s/blog_5611597901012wfs.htmlhttp://www.cnblogs.com/daizhjhttp://ww 阅读全文

ADO.NET中容易混淆的概念(4)

2013-08-12 11:22 by kellweke, 206 阅读, 收藏,
摘要: ◆ 数据绑定的同步WinForm中很多控件都可以与数据源绑定,绑定又分两种情况:简单数据绑定简单数据绑定指将一个控件绑定到单个数据元素(如数据集表的列中的值)的能力。这是用于控件,如 TextBox 控件或 Label 控件(即通常只显示单个值的控件)的典型绑定类型。事实上,控件上的任何属性都可以绑定到数据库中的字段。复杂数据绑定复杂数据绑定指将一个控件绑定到多个数据元素的能力,通常绑定到数据库中的多条记录,或者绑定到多个任何其他类型的可绑定数据元素,一般是绑定到一个DataView。支持复杂绑定的控件的示例有DataGrid、ListBox 和 ErrorProvider 控件。一般Data 阅读全文

ADO.NET中容易混淆的概念(3)

2013-08-12 11:17 by kellweke, 187 阅读, 收藏,
摘要: 三、DataGrid这里说的DataGrid是winform中的DataGrid,一般都是跟DataView绑定来显示DataTable中的数据,和修改DataTable中的数据。DotNet的DataGrid的功能强大,可是在使用上与以前的习惯不太一样,有时还比较麻烦,所以很多人都对这个DataGrid感到有些摸不着头脑,有一种无从下手的感觉,其实把一些概念搞清楚了许多问题就会迎刃而解了。DataGrid通过DataSource和DataMember 属性来绑定其要显示的数据源。数据源一般是DataTable、DataView、DataSet等,不过将这些数据源绑定到DataGrid时实际上 阅读全文

ADO.NET中容易混淆的概念(2)

2013-08-12 11:06 by kellweke, 228 阅读, 收藏,
摘要: 二、DataViewDataView表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。可以将DataView同数据库的视图类比,不过有点不同,数据库的视图可以跨表建立视图,DataView则只能对某一个DataTable建立视图。DataView一般通过DataTable.DefaultView 属性来建立,再通过通过RowFilter 属性和RowStateFilter 属性建立这个DataTable的一个子集。RowFilter属性用来筛选要查看DataTable中哪些行的表达式,这个表达式同上面所说的建立计算列的表达式相同。例如:"LastN 阅读全文

ADO.NET中容易混淆的概念(1)

2013-08-12 11:02 by kellweke, 190 阅读, 收藏,
摘要: 一、DataTableDataTable表示内存中数据的一个表,它完全是在内存中的一个独立存在,包含了这张表的全部信息。DataTable可以是从通过连接从数据库中读取出来形成的一个表,一旦将内容读到DataTable中,此DataTable就可以跟数据源断开而独立存在;也可以是完全由程序自己通过代码来建立的一个表。◆ DataColumn一个表是由行和列组成的一个两维的结构。表的结构是由DataColumn对象的集合组成,DataColumn对象集合可由DataTable.Columns属性中能获取到,通过定义每一列的数据类型来确定表的架构,类似数据库中定义表。定义完表的结构就可以根据结构来 阅读全文

引用计数

2013-08-12 10:44 by kellweke, 332 阅读, 收藏,
摘要: 生命控制客户不应直接控制组件的生命期原因:当使用完一个接口而仍然使用另一个接口时,是不能将组件释放掉的。由于很难知道两个接口指针是否指向同一组件,因此决定何时可以安全的释放一个组件将是极为复杂的。得知两个接口指针是否是指向同一对象的唯一方法是查询这两个接口的Iunknown,然后对结果进行比较。当程序越来越复杂时,决定何时可以释放一个组件是极为复杂的。 我们可以通过组件何时需要使用它的某个接口以及何时使用完接口,而不是直接将接口删除。对组件的释放可以由组件在客户使用完其各个接口之后自己完成。IUnknown的两个成员函数AddRef和Release的作用就是给客户提供一种让它指示何时处理完一个 阅读全文

ADO.NET中SQL Server数据库连接池

2013-08-12 09:56 by kellweke, 271 阅读, 收藏,
摘要: 实际上,大多数应用程序仅使用一个或几个不同的连接配置。 这意味着在执行应用程序期间,许多相同的连接将反复地打开和关闭。 为了使打开的连接成本最低,ADO.NET 使用称为连接池的优化方法。连接池减少新连接需要打开的次数。 池进程保持物理连接的所有权。 通过为每个给定的连接配置保留一组活动连接来管理连接。 只要用户在连接上调用 Open,池进程就会检查池中是否有可用的连接。 如果某个池连接可用,会将该连接返回给调用者,而不是打开新连接。 应用程序对该连接调用 Close 时,池进程会将连接返回到活动连接池集中,而不是真正关闭连接。 连接返回到池中之后,即可在下一个 Open 调用中重复使用。只有 阅读全文

JSON 的优点

2013-08-09 14:38 by kellweke, 944 阅读, 收藏,
摘要: 在 Web 开发方面,JSON 与 XML 相比主要有两个优点。首先,它更加简洁。JSON 对象是一系列以逗号分隔的 name:value 对,最外面有一对花括号。相反,XML 则使用重复的开始和结束标记包装数据值。因此,与相应的 JSON 相比,这样便产生了两倍的元数据开销,所以 Crockford 将 JSON 趣称为 “XML 的无脂替代品”(请参阅 参考资料)。当处理 Web 开发的 “细管道” 时,每次减少一些字节都可以带来实在的性能好处。 清单 1 显示了 JSON 和 XML 如何组织相同的信息: 清单 1. 比较 JSON 和 XMLCode highlighting pr.. 阅读全文

精通 Grails: 用 JSON 和 Ajax 实现异步 Grails(转载)

2013-08-09 14:30 by kellweke, 342 阅读, 收藏,
摘要: 【IT168技术文档】本文讨论 Grails 对于其互补技术 JSON 和 Ajax 的支持。在前几期的 精通 Grails 系列文章中,JSON 和 Ajax 都扮演支援者的角色,而这一次,它们担任主角。您将使用内置的 Prototype 库和 Grails标记发出一个 Ajax 请求。您还将看到一些关于提供本地 JSON 和通过 Web 动态获得 JSON 的例子。 为了进行演示,您将组建一个旅行计划页面,在该页面中,用户可以输入出发地机场和目的地机场。当机场显示在一个 Google Map 上时,用户可通过一个链接搜索目的地机场附近的宾馆。图 1 显示了这个页面: 图 1. 旅行计划.. 阅读全文

JavaScript定时机制、以及浏览器渲染机制(转载)

2013-08-09 14:09 by kellweke, 248 阅读, 收藏,
摘要: 昨晚,朋友拿了一道题问我:a.onclick = function(){ setTimeout(function() { //do something ... },0);};JavaScript API 文档明确定义:setTimeout的第二个参数意义为隔多少毫秒后,回调方法就会被执行。那么可以推断出:这里设成0毫秒,就立即被执行了。—————— 既然立即执行,为什么这段代码的作者为什么要 舍近求远?难道作者写代码的时候喝醉了?显然不是!这个问题 David Flanagan 在《Javascript 权威指南》中有阐述:当 setTimeout 的延迟时间设置为 ... 阅读全文

Silverlight json 通信

2013-08-08 15:28 by kellweke, 244 阅读, 收藏,
摘要: asp.net 端using System.Web.Script.Serialization;//List转json字符串{IList list=New List();...JavaScriptSerializer jsonStr = new JavaScriptSerializer();return jsonStr.Serialize(list);} SilverLight 端{WebClient client = new WebClient();Uri uri = new Uri(App.Current.Host.Source,"http://xxxxx//xx.ashx&quo 阅读全文

JS异步顺序执行

2013-08-08 15:16 by kellweke, 920 阅读, 收藏,
摘要: 因为工作的需要,我要在网页端编写一段脚本,把数据通过网页批量提交到系统中去。所以我就想到了Greasemonkey插件,于是就开始动手写,发现问题解决得很顺利。但是在对脚本进行总结和整理的时候,我习惯性地问了自己一个问题:能不能再简单点? 我的答案当然是“能”。首先回顾我的数据批量提交的需求:我有一批用户数据要插入到系统中,但是因为系统库表结构不是行列式的,所以无法转化为sql语句插入。要插入的数据有接近200条,就是傻呵呵地手工录入到系统,估计也要1天的时间。作为程序员,当然不会干这么傻的事情,我一定要用程序来解决。这个编程的过程耗费了我1天的时间。相比手工录入,我额外收入是这篇博文,绝对的 阅读全文

WCF信道的自动关闭或中断

2013-06-19 11:55 by kellweke, 568 阅读, 收藏,
摘要: 步骤一:创建ChannalFactory<T>的静态工厂:ChannelFactoryCreatorusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections;using System.ServiceModel;namespace Artech.ServiceProxyFactory { internal static class ChannelFactoryCreator { priva... 阅读全文

C#虚函数virtual详解

2013-06-09 15:24 by kellweke, 283 阅读, 收藏,
摘要: 在C++、Java等众多OOP语言里都可以看到virtual的身影,而C#作为一个完全面向对象的语言当然也不例外。虚拟函数从C#的程序编译的角度来看,它和其它一般的函数有什么区别呢?一般函数在编译时就静态地编译到了执行文件中,其相对地址在程序运行期间是不发生变化的,也就是写死了的!而虚函数在编译期间是不被静态编译的,它的相对地址是不确定的,它会根据运行时期对象实例来动态判断要调用的函数,其中那个申明时定义的类叫申明类,那个执行时实例化的类叫实例类。如:飞禽 bird = new 麻雀(); 那么飞禽就是申明类,麻雀是实例类。具体的检查的流程如下1、当调用一个对象的函数时,系统会直接去检查这个对 阅读全文

面试官最喜欢的问题 ----索引+C#面试题

2013-06-09 15:11 by kellweke, 387 阅读, 收藏,
摘要: 对大量数据进行查询时,可以应用到索引技术。索引是一种特殊类型的数据库对象,它保存着数据表中一列或者多列的排序结果,有效地使用索引可以提高数据的查询效率。大家面试初级、中级或者高级程序员的时候应该大部分都会被问到这样一些问题,你了解索引吗?你知道索引的分类吗?你知道这些索引的区别吗?你如何去创建有效的索引。本章让大家学会反问面试官hold住全场。--_____--最近面试的文章比较火 客串一下 我只简单问2个问题 看看有多少人能直接回答出来 都是比较基础的1.基类虚函数、派生类重写 与 基类普通函数、派生类覆盖的区别(-____-)2.Using闭包中try catch,异常捕获后抛出,那么us 阅读全文

父类引用f指向其子类的对象的理解

2013-05-22 15:03 by kellweke, 169 阅读, 收藏,
摘要: 当父类引用f指向其子类的对象的时候,通过f无法访问专属于子类对象的成员。为什么这样不可以?LZ有没有想过,因为f是FatherClass,所以编译器只知道f拥有FatherClass.class的信息,FatherClass.class以外的信息,编译器不知道,而子类的对象成员是在SonClass.class里,也就是说在FatherClass.class以外,所以f无法访问子类的对象成员假如子类中有对父类方法的重写,那么根据多态机制,通过f访问这个方法的时候实际访问的是子类中重写的方法。为什么这样可以?上面说了,f只能访问FatherClass.class的信息(注意这里指的是编译期编译器只 阅读全文

ThreadPool.QueueUserWorkItem的性能问题

2013-05-11 15:08 by kellweke, 248 阅读, 收藏,
摘要: 在WEB开发中,为了减少页面等待时间提高用户体验,我们往往会把一些浪费时间的操作放到新线程中在后台运行。简单的实现代码就是://代码一 new Thread(()=>{ //do something }).Start(); 但是对于一个请求量大的网址这样做是很不现实的——每一个操作都要开启一个新线程,最终会因CPU不堪重负而使网站挂掉。更好的做法是使用线程队列。对于线程队列 ThreadPool.QueueUserWorkItem 很多人应该都不陌生,下边看微软的解释:将方法排入队列以便执行,并指定包含该方法所用数据的对象。此方法在有线程池线程变得可用时执行。它的作用就是将一些操作... 阅读全文