摘要:
一口气导入去年在其他个人blog上写的文章.合并成一个,方便查询 阅读全文
随笔档案-2010年08月
NHibernate Step By Step(11)-命名SQL查询
2010-08-26 23:59 by Clingingboy, 1125 阅读, 收藏, 编辑
摘要:
通过一个配置文件,往往无法满足所有的查询,nh提供了sql命名查询,即把sql查询语句定义在配置文件中,如下1.通过GetNamedQuery方法获取IQuery<return-scalar&g... 阅读全文
NHibernate Step By Step(9)-条件查询(Criteria Queries)
2010-08-26 23:57 by Clingingboy, 799 阅读, 收藏, 编辑
摘要:
Criteria 查询是其中查询的一种,其特点是,以各种API来进行查询,大家都不喜欢以字符串形式来查询,比如HQL.这种查询也犹如linq的where,any,等子查询。非常的方便,一般大家会首选此... 阅读全文
NHibernate Step By Step(10)-常用的配置属性
2010-08-26 23:57 by Clingingboy, 995 阅读, 收藏, 编辑
摘要:
概况 (1)connection.driver_class 数据访问驱动 (2)dialect sql方言 (3)connection.connection_string 数据连接字符串 (4)con... 阅读全文
NHibernate Step By Step(8)-数据过滤器
2010-08-26 23:56 by Clingingboy, 738 阅读, 收藏, 编辑
摘要:
1.定义过滤器2.在映射文件中使用过滤器 犹如在hql中下查询语句 3.在配置文件中获取过滤器 4.启动过滤器 ISession</TT对象中会用到的方法有: class=literal Ena... 阅读全文
.NET与COM互操作(1)-绑定与com对象创建
2010-08-26 23:53 by Clingingboy, 1536 阅读, 收藏, 编辑
摘要:
早期绑定 即定义了强类型 分两种方式 1.使用工具自动生成 1.1添加引用,则自动声明命名空间 1.2运行TlbImp命令来声明,可修改命名空间 2.手动编写,可以使用 可调用部分com接口,无... 阅读全文
.net 互操作之p/invoke- 数据封送(字符串版本-ANSI和UniCode,返回错误码,回调函数,常量)(6)
2010-08-26 23:52 by Clingingboy, 936 阅读, 收藏, 编辑
摘要:
处理字符串的函数(ANSI和UniCode版本) 非托管函数后缀名A表示ANSI,W表示宽字符(Unicode),如GetUserName有GetUserNameA和GetUserNameW p/in... 阅读全文
.net 互操作之p/invoke- 数据封送(嵌套结构体,类,数组)(5)
2010-08-26 23:50 by Clingingboy, 2415 阅读, 收藏, 编辑
摘要:
嵌套结构体 复杂的数据类型往往结构体中还有结构体,即嵌套结构体,也可以说是复杂类型.如下定义Person中的name属性被定义成IntPtr, 测试代码 1.使用IntPtr 定义结构体分析如下代码片... 阅读全文
.net 互操作之p/invoke- 数据封送(结构体中的字符串,其他字段,内存布局)(4)
2010-08-26 23:49 by Clingingboy, 1047 阅读, 收藏, 编辑
摘要:
一.字符串封送 与传值没多大区别,内存释放也分两种,自动和手动,不再介绍 1.托管结构与函数2.非托管函数 3.测试 4.封送字符串数组 定义函数 测试 其他字段封送以MarshalAs标签来封送 如... 阅读全文
.net 互操作之p/invoke- 数据封送(结构体传参,返回值,内存管理)(3)
2010-08-26 23:47 by Clingingboy, 1281 阅读, 收藏, 编辑
摘要:
除了简单的数据类型传值之外,还可以传递自定义的结构体 传参 一.同时定义非托管和托管的结构体在托管代码中,需要注意一下几点 1.以StructLayout 来标记此结构体,以Sequential来指... 阅读全文
.net 互操作之p/invoke- 数据封送之字符串(2)
2010-08-26 23:45 by Clingingboy, 767 阅读, 收藏, 编辑
摘要:
使用Unicode传递 一.定义托管函数第一个参数是传入的参数,第二个是输出的. 注意 1.String是不可变类型,const wchar_t* inString 2.wchar_t*为Unicod... 阅读全文
责任链模式(Chain of Responsibility Pattern)
2010-08-26 23:11 by Clingingboy, 503 阅读, 收藏, 编辑
摘要:
意图:为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。 阅读全文
访问者模式(Visitor Pattern)
2010-08-26 23:11 by Clingingboy, 574 阅读, 收藏, 编辑
摘要:
意图:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 阅读全文
命令模式(Command Pattern)
2010-08-26 23:10 by Clingingboy, 450 阅读, 收藏, 编辑
摘要:
using System; class CommandPattern { // Command Pattern Judith Bishop June 2007 // // Uses a single delegate for the single type of commands that the client invokes. delegate void Invoker (); static I... 阅读全文
状态模式(State Pattern)
2010-08-26 23:09 by Clingingboy, 854 阅读, 收藏, 编辑
摘要:
意图:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。 阅读全文
WCF Basic(2)-服务契约继承
2010-08-26 23:06 by Clingingboy, 452 阅读, 收藏, 编辑
摘要:
1 wcf允许接口契约继承,但每个接口必须明确以ServiceContract来声明,不能因为是继承,而忽略了父类的声明.如下声明2.实现 3.config配置 4.客户端生成 5.客户端可以指向父级... 阅读全文
WCF Basic(1)-操作重载
2010-08-26 23:05 by Clingingboy, 431 阅读, 收藏, 编辑
摘要:
现网上关于WCF所谓是很多,但好书很少.Programming WCF Services 应该算是一本非常好的书。结合书和代码总结一下. 一.服务器端操作重载 1.接口本身支持重载2.若将此接口作为服... 阅读全文
消息队列(Message Queuing)
2010-08-26 23:03 by Clingingboy, 13581 阅读, 收藏, 编辑
摘要:
消息队列属于Windows系统组件服务。.net对其进行了封装.其可以为我们提供非常好的分布式应用服务 可以通过Visual Studio打开Message Queues并查看消息 或者可以通过我的... 阅读全文
.NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
2010-08-26 23:00 by Clingingboy, 757 阅读, 收藏, 编辑
摘要:
除了控制台之外,现有.net 客户端分为asp.net,WinForm和WPF,Silverlight则无权限直接访问.不过本质流程是相同的. 一.控制台 一直以来都是以控制台来演示。为保持完整性,重... 阅读全文
.NET Remoting Basic(9)-上下文(CallContext)
2010-08-26 22:59 by Clingingboy, 802 阅读, 收藏, 编辑
摘要:
CallContext 是类似于方法调用的线程本地存储区的专用集合对象,并提供对每个逻辑执行线程都唯一的数据槽。 使用该功能,存储对象必须实现ILogicalThreadAffinative接口 1.... 阅读全文
.NET Remoting Basic(8)-事件
2010-08-26 22:58 by Clingingboy, 465 阅读, 收藏, 编辑
摘要:
远程事件也需要转化成消息,所以也需要加事件委托继承自MarshalByRefObject。实际操作如下 1.定义接口2.服务器端实现上面两步没多大悬念,关键在客户端3.客户端实现3.1定义一个继承自M... 阅读全文
.NET Remoting Basic(7)-信道
2010-08-26 22:56 by Clingingboy, 399 阅读, 收藏, 编辑
摘要:
信道(Channel)负责客户端和服务器之间的通讯,信道必须实现 IChannel 接口,Remoting 框架为我们提供了 IPC、TCP 以及 HTTP 的实现版本,根据通讯方向又分别提供了继承版... 阅读全文
.NET Remoting Basic(6)-配置文件
2010-08-26 22:53 by Clingingboy, 643 阅读, 收藏, 编辑
摘要:
除了以硬编码的形式来注册对象,也可以以配置文件的方式来注册,以便增加灵活性 1.服务器端配置文件 其中以system.runtime.remoting 为配置节点 配置了信道和注册对象,看起来非常的容... 阅读全文
.NET Remoting Basic(5)-多服务器访问和程序集共享
2010-08-26 22:50 by Clingingboy, 499 阅读, 收藏, 编辑
摘要:
一.访问多服务器 多服务器访问即多个服务器端,一个客户端进行访问,可以减缓服务器端的压力,此也是分布式应用的目的所在 1.Server1 开启1234端口,访问MyRemoteObject 对象2.S... 阅读全文
.NET Remoting Basic(4)-客户端调用方式
2010-08-26 22:47 by Clingingboy, 432 阅读, 收藏, 编辑
摘要:
分同步,异步和单向方法(即无返回值方法) 1.Servcie端测试代码2.同步访问 即一般的访问方法测试结果,共花了11秒的时间 3.异步访问采用委托的BeginInvoke方法和EndInvoke方... 阅读全文
.NET Remoting Basic(3)-生存期租约
2010-08-26 22:44 by Clingingboy, 596 阅读, 收藏, 编辑
摘要:
用于管理远程对象的生命周期 1.初始化租约 使用LifetimeServices对象初始化 2.自定义租约一旦设置,将无法更改重写 MarshalByRefObject.InitializeLifet... 阅读全文
.NET Remoting Basic(2)-激活方式
2010-08-26 22:39 by Clingingboy, 497 阅读, 收藏, 编辑
摘要:
一.服务器激活(Server-Activated Objects / SAO) 1.测试数据2.服务器端激活用RemotingConfiguration类的RegisterWellKnownServi... 阅读全文
.NET Remoting Basic(1)-概览
2010-08-26 22:27 by Clingingboy, 497 阅读, 收藏, 编辑
摘要:
.net Remoting是一个.net体系下的分布式架构. 以Advantages of .NET Remoting 为范本来学习下. 一.定义公用接口和对象 1.接口2.对象 注意此对象被标记为... 阅读全文
单件模式
2010-08-26 22:25 by Clingingboy, 875 阅读, 收藏, 编辑
摘要:
保证一个类仅有一个实例,并提供一个访问它的全局访问点。 1.示例1. 由于加了readonly关键字,所以只会在构造函数中初始化一次.2.延迟初始化 注意内部多定义了一个类这个模式平时用到的也最多,面... 阅读全文
抽象工厂
2010-08-26 22:24 by Clingingboy, 704 阅读, 收藏, 编辑
摘要:
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 对于不同类产品提供一类工厂 1.产品接口2.工厂这里采用了泛型,所以会更灵活些 3.IBrand不同类产品信息4.对不同类产品创建不... 阅读全文
创建者模式
2010-08-26 22:24 by Clingingboy, 2126 阅读, 收藏, 编辑
摘要:
意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 下面会发现模式实现方式与策略模式,桥接模式等都是相似的,唯有意图不同而已.此为创建者模式 创建者模式在平时生活中很常见,如... 阅读全文
工厂模式
2010-08-26 22:22 by Clingingboy, 597 阅读, 收藏, 编辑
摘要:
定义一个用户创建对象的接口,让子类决定实例化哪一个 1.产品2.工厂 每个产品都有一个工厂3.客户端调用与工厂模式比较,这里每个产品都有工厂,虽有扩展性,但每个产品都有工厂也造成了麻烦 阅读全文
简单工厂模式
2010-08-26 22:21 by Clingingboy, 374 阅读, 收藏, 编辑
摘要:
一个静态类工厂 先定义具体接口和类2.静态工厂 这个方式很简单,缺点就是无法扩展,需要if else判断或者swich等判断。视具体情况而定 阅读全文
策略模式
2010-08-26 22:20 by Clingingboy, 411 阅读, 收藏, 编辑
摘要:
此模式意图在于切换算法,其实现方式与模板模式,桥接模式等是大同小异,或者可以说是相同,只有意图不同而已.初学设计模式都被这相似的代码,不同的模式搞混乱了。其实仅仅就是抽象而已。 1.接口与实现2.上下... 阅读全文
模板模式
2010-08-26 22:19 by Clingingboy, 1077 阅读, 收藏, 编辑
摘要:
也是抽象与实现分离,其意图是定义一个模板,然后把具体实现交给子类完成. 1.接口2.实现3.调用 4.客户端调用 注意此模式与桥接模式很像,区别在于这里接口传值是是方法里实现的,这样就灵活一些.模板模... 阅读全文
原型模式
2010-08-26 22:18 by Clingingboy, 344 阅读, 收藏, 编辑
摘要:
分浅拷贝和深拷贝,值得注意的地方是浅拷贝无法复制引用类型 实现方法 浅拷贝:通过调用MemberwiseClone方法 深拷贝:通过序列化来实现 来看下面接口为了区分浅拷贝和深拷贝的区别,在对象中再定... 阅读全文
享元模式
2010-08-26 22:17 by Clingingboy, 439 阅读, 收藏, 编辑
摘要:
运用 单例+工厂来维护一组对象状态,并有效的减少对象实例化的数量 这个模式关键的实现在于这个工厂类 1.接口2.具体实现的类3.工厂 该类最好成为单例模式,否则这个模式就废掉了. 改进如下工厂可以有效... 阅读全文
组合模式
2010-08-26 22:16 by Clingingboy, 765 阅读, 收藏, 编辑
摘要:
将对象以部分-整体的形式组成,如画图,可以画圆,画线,然后组成一幅图片,与装饰部同的是,这里是组合,装饰是扩展,组合模式是一个行为了的整合。但其又统一了部分和整体操作接口的统一性. 接口整体对象Com... 阅读全文
桥接模式
2010-08-26 22:14 by Clingingboy, 303 阅读, 收藏, 编辑
摘要:
将抽象与实现分离在构造函数中传入接口,然后在Operation方法中调用接口方法 客户端调用 其实很简单,还是面向对象基础,不小心就成了一个模式 阅读全文
适配器模式
2010-08-26 22:12 by Clingingboy, 402 阅读, 收藏, 编辑
摘要:
适配器的意图是复用现有对象的功能. 这个模式用的还是比较多的.重新定义了一个Request方法,然后调用基类方法SpecificRequest (也可以不用继承,从内部实例化对象也可以,具体可灵活运用... 阅读全文
外观模式(Façade Pattern)
2010-08-26 22:10 by Clingingboy, 973 阅读, 收藏, 编辑
摘要:
这个模式非常的简单,可以说称不上模式 打个比方,我们大部分时候运行源代码程序需要做一下几件事情,其实就是做封装,简化操作 打开IDE 打开项目 编译 运行 来看下面例子我需要调用这三个类来完... 阅读全文
装饰模式
2010-08-26 22:06 by Clingingboy, 578 阅读, 收藏, 编辑
摘要:
此模式采用组合非继承的方式来扩展对象职责. .net的应用中,如asp.net ajax的behavior,wpf和silverlight的附加属性,都可以认为是装饰模式的变体.但稍微有些变化.都起到了装饰的作用. 上面的uml图给予一个参考,但非死规定,理解思想就好,如接口也可以是抽象类. 来看一个关于图片的示例 1.定义组件基类(Component,缺省无接口),呈现一幅图片 2.添加图片边框... 阅读全文
数据结构-图(带权图)(js)
2010-08-15 23:03 by Clingingboy, 2738 阅读, 收藏, 编辑
摘要:
一.最小生成树 永远遵循取最小权值的原则如一个顶点到多个顶点,取最小权值1.添加边结构2.添加优先级队列3.1 标记当前项3.2将符合条件的权值放入队列中如遇到起点相同的,则比较distance,放弃... 阅读全文
数据结构-图(非带权图)(js)
2010-08-15 13:57 by Clingingboy, 1469 阅读, 收藏, 编辑
摘要:
好久没js 1.顶点2.图3.添加顶点和边4.深度优先遍历规则:1.访问一个领接点未访问的顶点并标记为访问,然后放入栈中2.如果1无法执行且栈不为空,则弹出一个顶点然后继续执行13.无法1,2均无法执... 阅读全文
WPF的逻辑树与视觉树(3)Visual呈现
2010-08-07 01:33 by Clingingboy, 3521 阅读, 收藏, 编辑
摘要:
这篇就点到为止,挑重点讲 绘图方式有两种 1.继承UIElement,重写OnRender方法2.DrawingVisual 轻量级绘图,只提供显示和测试点击功能,DrawingVisual继承自Co... 阅读全文
WPF的逻辑树与视觉树(2)Visual容器
2010-08-06 15:55 by Clingingboy, 4130 阅读, 收藏, 编辑
摘要:
一.摘要 虽然我们平时几乎不会从该类派生,但要想了解视觉树就必须要了解Visual,Visual是一个基本抽象类,继承自DependencyObject.其是所有控件的基类.并提供了视觉树操作的基本方法. 二.提纲 视觉树是一棵树 遍历视觉树 内置Visual集合容器ContainerVisual 小结 视觉树是一棵树 这好像是一句废话,但也没有错.我们来看下Visual提供... 阅读全文
WPF的逻辑树与视觉树(1)基本概念
2010-08-06 12:47 by Clingingboy, 10712 阅读, 收藏, 编辑
摘要:
一.摘要 逻辑树与视觉树属于WPF的基本概念,学过WPF或者Silverlight的朋友一定会对其有所耳闻,这篇文章将来探讨逻辑树与视觉树的特质以及两者的区别 二.... 阅读全文
WPF依赖属性值源(BaseValueSource)
2010-08-03 13:26 by Clingingboy, 1756 阅读, 收藏, 编辑
摘要:
WPF依赖属性提供一个机制,可以获取依赖属性提供值的来源 其以BaseValueSource枚举表示 1.Default 2.DefaultStyle和DefaultStyleTri... 阅读全文
集合附加属性(HACK)
2010-08-02 16:17 by Clingingboy, 531 阅读, 收藏, 编辑
摘要:
传说中的HACK… 靠看文档是不知道的 http://wekempf.spaces.live.com/blog/cns!d18c3ec06ea971cf!468.entry?wa=wsignin1.0&sa=837408022 http://blogs.msdn.com/b/johngossman/archive/2008/07/28/how-to-initialize-... 阅读全文