.NET简谈组件程序设计之(上下文与同步域)
我们继续学习.NET多线程技术,这篇文章的内容可能有点复杂。在打破常理之后,换一种新的思考模型最为头疼。这篇文章里面会涉及到一些不太常见的概念,比如:上下文、同步域等等。我也是最近才接触这些关于组件编程方面的高深技术,大家一起学习,再大的困难也是有时间限制的,只要我们坚持。
在本人的上一篇文章“.NET简谈
http://www.cyqdata.cn/cnblogs/article-detail-52765
.NET简谈组件程序设计之(多线程与并发管理一)
由于多线程的内容比较多我会用几篇文章来讲解。
多线程在我们日常开发过程中用的很多,上一篇“.NET简谈组件程序设计之(异步委托)”详细的讲解了基于委托的多线程使用,委托是基于后台线程池的原理,这篇文章将主要介绍直接使用Thread对象来实现多线程。
当然使用Thread没有使用Delegate那
http://www.cyqdata.cn/cnblogs/article-detail-52721
.NET简谈组件程序设计之(异步委托)
说到委托我想大家基本上都用过的,今天这篇文章就来讲解关于委托的异步奥秘。
在我们正常使用的时候很少会去用异步委托技术来提高代码效率。委托的好处就是能对方法进行面向对象的封装,随意传递。在任何组件客户代码中都能对其进行调用,而不是传递方法对象的引用,这样能大大的降低代码的耦合。事件就是运用委托的优势进行对象
http://www.cyqdata.cn/cnblogs/article-detail-52573
.NET简谈设计模式之(适配器模式)
我们继续学习设计模式系列文章。
今天我们要学习的是设计模式中的适配器模式,适配器模式其实也比较好理解,光从它的名字我们都能理解个所以然了。
适配器模式定义:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
上面的这段话可能对初学者来说有点抽象,短短的一段话
http://www.cyqdata.cn/cnblogs/article-detail-42397
.NET简谈设计模式之(命令模式)
我们继续学习设计模式系列文章。
本篇要讲的是命令模式,其实命令模式也比较好理解,没有用到多高深的技术,也不需要多复杂的抽象。只需要我们脑海里能有一个大概的原型,等我们遇见类似问题的时候我们能通过巧妙的方式来解决。我们做应用层开发的大部分接触的都是一些模式、框架、思想等等,不像搞低层开发的,他们研究的可能多数是一些技术实
http://www.cyqdata.cn/cnblogs/article-detail-42244
.NET简谈设计模式之(单件模式)
我们继续学习设计模式系列文章。
今天要讲的是单件模式,其实单件模式是比较简单的设计模式,在我们日常开发过程中也是经常用到的。
单件模式:单件模式是一种用于确保整个应用程序中只有一个类实例且这个实例所占资源在整个应用程序中是共享时的程序设计方法。
我想如果初学者对一些基本概念能熟练掌握时,其实单件模式是很简单的,就是因为
http://www.cyqdata.cn/cnblogs/article-detail-42234
.NET简谈设计模式之(抽象工厂模式)
我们继续学习设计模式系列文章。
今天要讲的是设计模式中经常被用到的“工厂模式”,所谓工厂模式就是将对象的创建交给一个叫做工厂的对象来统一进行处理。主要是将对象的依赖关系进行解耦,消除对象之间的直接耦合。那么工厂的使用有几种方式呢?那就要看我们对工厂的理解了,工厂是创建对象的一个逻辑名称,工厂可以是一个方法、一个静态类等等。只要起到对象的创建就能给它赋予上一个工厂的名称。
那
http://www.cyqdata.cn/cnblogs/article-detail-42157
.NET简谈设计模式之(装饰者模式性能问题?)
我假设看这篇文章的朋友对装饰者模式都能有各自的、深入的理解。因为这篇文章是讨论装饰者模式的性能问题。
在本人的“.NET简谈设计模式之(装饰者模式)”一文中比较详细的讲解了装饰者模式的一般应用,但是我总是感觉装饰者模式隐隐约约之中有点不完美。经过我昨天一整天的思考、推敲终于找到了它隐隐约约中的那点不完美是什么,为了行为去继承带来的无辜的性能开销。所以本人想把它写出来,跟大家
http://www.cyqdata.cn/cnblogs/article-detail-42021
.NET简谈设计模式之(装饰者模式)
装饰者模式其实有点难以理解,特别是对初学者来说可能有点晕,因为它的概念互相冲突,哪里互相冲突我们下面会讲解到。
本人保持一贯的写作风格,重在入门。在本人的这篇文章中会用一个比较恰当的比喻来让我们对问题迎刃而解,例子虽然简单但是重点突出。
在写这篇文章之前我在网上大概搜了一下关于“装饰者模式”的一些文章,但是讲解的效果都不太理想。要么就是找书搬过来的,要么就是对着书的例子从新
http://www.cyqdata.cn/cnblogs/article-detail-42007
.NET简谈策略模式
策略模式在我们日常开发中经常被用到,这篇文章不是策略模式的深入讨论和学术研究,只是让初学者能有个基本的了解。
什么叫策略:1. 可以实现目标的方案集合;2. 根据形势发展而制定的行动方针和斗争方法;3. 有斗争艺术,能注意方式方法。
什么叫模式:模式(Pattern)其实就是解决某一类问题的方法论。把解决某类问题的方法总结归纳到理论高度,那就是模式。模式是一种指导,在一个良好的指导下,有助于你完成
http://www.cyqdata.cn/cnblogs/article-detail-41866
.NET简谈路由事件
本篇文章讲解关于路由事件的相关原理。
什么叫路由事件,字面理解就是事件是可以传递,路由的意思也好理解。路由事件其实就是,事件是会随着某种变化,来回传递。路由事件其实在.NET2.0时期就已经存在了,只不过在一般开发过程中用不到。
从C#3.0开始,就已经封装了关于路由事件的机制。其实这种实现应该可以换个名字来解释。我们可以给路由事件起个便于理解的名字,“事件的路由设计模式”
http://www.cyqdata.cn/cnblogs/article-detail-41802
.NET简谈——跨进高级编程门槛的必经之路
我们继续C#基础知识的学习,这篇文章对前面基础知识学习的朋友有着举足轻重的作用;为了延续基础知识学习的热情,我编写了这篇特殊的文章。
本篇文章的中心是想借“.NET简谈反射(动态调用)”一文继续发挥下去,让朋友能一气呵成,到底反射能用在什么地方,究竟能起到多么高级的作用。
下面我就拿具体的例子讲解,不废话了请随我来;
1:必须具备的基础知识
C#接口:要想用反射进行高深的使
http://www.cyqdata.cn/cnblogs/article-detail-41396
.NET简谈反射(动态调用)
我们继续C#基础知识的学习,这篇文章主要要讲的是我们C#程序员迈向高级C#程序员的关键性的一步。
有的朋友会说事实不是这样的,我不用反射就不能开发吗?当然可以,但是用与不用肯定是不一样的,任何复杂抽象的分层架构或者说是复杂的设计模式均是建立在这些基础之上的,比如我们要进行模块化、组件化开发,要严格的消除模块之间的耦合,要进行动态接口调用。这样的强大而灵活的系统开发,必须要用反射才行;任何技术都有它
http://www.cyqdata.cn/cnblogs/article-detail-41392
.NET简谈特性(代码属性)
由于很久没有写关于基础知识的东西了,今天来总结一下关于.NET平台中的代码属性的概念;只是基础介绍,文章的本意是带领初学者学会使用特性,而不是讨论高深的底层技术;[王清培版权所有,转载请给出署名]
1.什么叫特性Attribute
特性对一般.NET编程人员来说并不陌生,自从我们开始接触C#语言的时候,我们多多少少已经接触了关于特性的使用;但是对于初学者来说真的不明白特性的意义,特性到底是属于类还
http://www.cyqdata.cn/cnblogs/article-detail-41353
.NET简谈互操作(七:数据封送之介绍)
互操作系列文章:
.NET简谈互操作(一:开篇介绍)
.NET简谈互操作(二:先睹为快)
.NET简谈互操作(三:基础知识之DllImport特性)
.NET简谈互操作(四:基础知识之Dispose非托管内存)
.NET简谈互操作(五:基础知识之Dynamic平台调用)
.NET简谈互操作(六:基础知识之提升平台调用性能)
.NET简谈互操作(七:数据封送之介
http://www.cyqdata.cn/cnblogs/article-detail-41275
.NET简谈互操作(五:基础知识之提升平台调用性能)
互操作系列文章:
.NET简谈互操作(一:开篇介绍)
.NET简谈互操作(二:先睹为快)
.NET简谈互操作(三:基础知识之DllImport特性)
.NET简谈互操作(四:基础知识之Dispose非托管内存)
.NET简谈互操作(五:基础知识之Dynamic平台调用)
.NET简谈互操作(六:基础知识之提升平台调用性能)
我们继续.NET互操作学习。本篇文
http://www.cyqdata.cn/cnblogs/article-detail-41146
.NET简谈互操作(五:基础知识之Dynamic平台调用)
互操作系列文章:
.NET简谈互操作(一:开篇介绍)
.NET简谈互操作(二:先睹为快)
.NET简谈互操作(三:基础知识之DllImport特性)
.NET简谈互操作(四:基础知识之Dispose非托管内存)
.NET简谈互操作(五:基础知识之Dynamic平台调用)
我们继续.NET互操作学习。在上篇文章中我们学习了关于托管与非托管内存Dispose(释放)问
http://www.cyqdata.cn/cnblogs/article-detail-40986
.NET简谈互操作(四:基础知识之Dispose非托管内存)
互操作系列文章:
.NET简谈互操作(一:开篇介绍)
.NET简谈互操作(二:先睹为快)
.NET简谈互操作(三:基础知识之DllImport特性)
.NET简谈互操作(四:基础知识之Dispose非托管内存)
.NET简谈互操作(五:基础知识之Dynamic平台调用)
我们继续.NET互操作学习。前一篇文章中我们学习了基础知识中的DllImport关键特性;我们继
http://www.cyqdata.cn/cnblogs/article-detail-40981
.NET简谈互操作(三:基础知识之DllImport特性)
我们继续.NET互操作学习,上一篇文章中我们介绍了托管代码怎么与非托管代码C++之间的互操作;要想在托管代码中成功的进行非托管调用,要注意的细节还是很多的,下面我们就来介绍一下,在互操作方面托管代码要注意的必不可少的代码申明,为我们下面的互操作打下基础;
在.NET平台里面开发我们还是很幸运的,微软为我们做了很多很方便的东西,我们只需要了解一下就能快速上手;在互操作里面我们只需要借助DllImpo
http://www.cyqdata.cn/cnblogs/article-detail-40874
.NET简谈互操作(二:先睹为快)
我们继续.NET互操作学习,为了揭开互操作的神秘面纱,今天这篇文章我们就来先睹为快,让我们先来做个例子,基础的东西,我们陆续进行讲解;由于互操作牵扯到的东西非常多,比较复杂,我们要循环渐进的学习,为了给大家有一定的吸引力,让我们一边看一边能动手做起来;本篇文章用VisualStudio2010进行演示,将非托管代码暴露在我们眼前,它对我们来说不在有神秘感,我们通过.NETP/invoke(平台调用
http://www.cyqdata.cn/cnblogs/article-detail-40692