摘要:不管是使用yield或借助第三方类库来简化异步编程,或多或少总是感觉不那么正统,有点hack的感觉。这种感觉在实验阶段倒还可以,要是用在产品中总有点担心,即使这些类库来自权威的第三方,我不知道大家有没有跟我同样的感觉。那么这个时候我们就会想,如果在语言中直接能提供这种机制该多好呢。 F#的异步工作流 在Visual Studio 2010中,新包含了一种语言:F#。F#的一大特性就是异步计算。能让你用同步的方式编写异步的代码,不用使用AsyncCallback回调将一个方法分为两段,也不用注册异步完成事件。 F#是一个强类型的函数式编程语言,现在是2.0版本,在VS2010中... 阅读全文
C# 基础概念之延迟加载“.NET技术”
2011-10-13 19:27 by 狼人:-), 250 阅读, 0 推荐, 收藏,
摘要:延迟加载,亦称延迟实例化,延迟初始化等,主要表达的思想是,把对象的创建将会延迟到使用时创建,而不是在对象实例化时创建对象,即用时才加载。这种方式有助于提高于应用程序的性能,避免浪费计算,节省内存的使用等。针对于这种做法,似乎称之为即用即创建更为合适些。 先来看一下在Framework4.0中如何实现延迟加载。 Framework4.0提供了一个包装类Lazy<T>,可以轻松的实现延迟加载。 ///这行代码表明:要创建一个延迟加载的字符串对象s///原型为Lazy<T> 对象名=new Lazy<T>(Fun<T>)///采用泛型委托进行构造,实例 阅读全文
.NET简谈委“.NET技术”托链
2011-10-13 19:27 by 狼人:-), 174 阅读, 0 推荐, 收藏,
摘要:说起链表大家都很熟悉,说起委托相信大部分的.NET程序员都也很了解。在平时的开发过程中经常会用到这两种技术,只不过链表在.NET里面已经被封装了,让我们用起来更加的方便就是集合类型Collection。在某些时候我们有必要要了解这些方便而又快捷的背后是怎样封装的,委托是一种特殊的类型,在.NET里面是用来作为方法的一种封装。在一些非托管的代码中如C++就没有这么幸运了,我们要面对是一些复杂的地址变换、链表的指针维护、内存的取址等等。微软一向都是人性化模仿的对象,不管是他的操作系统还是开发平台IDE做的都很舒服。可能有的人会说把程序员这么崇高而又神秘的职业该大众化了,是人都会写程序。这种问题.. 阅读全文
Silverlight 应“.NET技术”用整合
2011-10-13 19:27 by 狼人:-), 169 阅读, 0 推荐, 收藏,
摘要:Silverlight与企业信息化 在企业应用系统中,企业客户不在满足于呆板的Portal、树形结构、数据堆积的表格和满屏的文字描述。企业客户越来越倡导用户体验,Silverlight迎合了这种需求,实现了炫目的体验和丰富交互的应用,更重要的是Silverlight更适合企业应用系统的开发,依靠.Net平台,使用C#高级语言代替JavaScript脚本语言,实现了强大的客户端计算能力、支持多线程,丰富的控件、特效与动画,更可控的浏览器适应性,更安全的沙箱模式,客户端嵌入式数据库等。 现在企业应用开发有两大阵营,一个是Java,另一个是.NET平台,难道Silverlight只能服务... 阅读全文
.NET中的委托“.NET技术”
2011-10-13 19:27 by 狼人:-), 195 阅读, 0 推荐, 收藏,
摘要:1.1.1定义 委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示: //Code in C# public delegate int PerformCalculation(int x, int y); 与委托的签名(由返回类型和参数组成)匹配的任何方法都可以分配给该委托。 简单理解Delegate委托(或代理)是一种数据类型:它的变量可以引用到某一个符合要求的方法上,通过委托可以间接地调用该方法。 其实.NET的委托类似于C语言的函数指针,区别在于.NET委托... 阅读全文
C#类类型“.NET技术”
2011-10-13 19:27 by 狼人:-), 189 阅读, 0 推荐, 收藏,
摘要:类类型是由字段数据(成员变量)和操作字段数据的成员(属性、方法、构造函数、事件等)所构成的自定义类型。其中字段数据表示类实例(对象)的状态。 在C#中,类使用class关键字定义,例如: public class Car{ //Car的字段(状态) private int _speed; private string _name; //Car操作字段的属性 public int Speed { set {this._speed=value;} get{return this._speed;} } public ... 阅读全文
WPF中使用amCharts绘制“.NET技术”股票K线图
2011-10-13 19:27 by 狼人:-), 439 阅读, 0 推荐, 收藏,
摘要:本想自己用GDI绘图, 通过数据直接绘制一张蜡柱图, 但觉得这样子的功能比较少, 所以到网上搜索一些能画出K线图的控件. 发现DynamicDataDisplay挺好的, 在它的开发截图里也发现可以绘制蜡柱图, 但文档好像做的不是很好, 不知道怎么用它来画, 在寻找它比较好的例子的时候发现有人推荐用amCharts绘制, 所以便去看了一下, 发现挺好用的, 效果如下: 准备工作 先要去这里下载amCharts Stock Chart for WPF并解压, 新建一个WPF Project, 在Toolbox里右击, 选择Choose Items, 然后点击Browse, 找到解压... 阅读全文
Silverlight 2.5D RPG游戏“.NET技术”技巧与特效处理:(十二)魔法系统
2011-10-13 19:27 by 狼人:-), 186 阅读, 0 推荐, 收藏,
摘要:世界首款Silverlight – MMORPG:<<窝窝世界>>震撼登场!伴着与XNA合体后的Silverlight 5 强势发布,一波Silverlight网游研发海啸即将席卷全球! 多磨的好事依旧让人激动,于是一不小心写下10款全新的魔法效果旨在祝贺。今天的教程不会让你失望,没错,又是一场超豪华魔法盛宴!接下来您将看到的是本教程ARPG Demo战斗实景,一切灵感与临摹均来源于近期即将内测的2.5D大作《倩女幽魂Online》(以下左边为倩女幽魂实景,右边为Demo对应实景)。野蛮冲撞之幻象刺杀!自适配地形之雷电风行!完美冰冻之暴风狂雪!环形突击之圆月斩!随机多段 阅读全文
D“.NET技术”otNet并行计算的使用误区
2011-10-13 19:27 by 狼人:-), 160 阅读, 0 推荐, 收藏,
摘要:并行计算无疑是.Net Framework平台的一大亮点,它自动的将一个任务分解,并以并发的形式执行,程序员不用操心各任务之间的协作和同步问题,这使得可以更加专注于业务的实现。 .NET 中的 TPL(Task Parallel Library),中文意思是任务并行库,它的设计是为了能更简单地编写可自动使用多处理器的托管代码。使用该库,用户可以非常方便地用现有序列代码表达潜在并行性,这样序列代码中公开的并行任务将会在所有可用的处理器上同时运行,通常这会大大提高速度。 但是,从网上很多已经发布的并行计算的例子来讲,有很多存在一定的误区甚至是误导,这导致了一线编程人员产生一些... 阅读全文
.Net D“.NET技术”iscovery系列-深入理解平台机制与性能影响(上)
2011-10-13 19:27 by 狼人:-), 185 阅读, 0 推荐, 收藏,
摘要:转眼间《.Net Discovery》系列文章已经推出1年了,本文为该系列的第10-13篇文章,在本文中将对以前所讲的.Net平台知识做一个小小的总结与机制分析,引出并重点介绍这些机制对程序性能的影响与改进建议。 本文将分为四部分,分别讲述了:垃圾回收机制、即时编译机制、异常处理机制、字符串驻驻留机制的原理与性能改进建议。 《.Net Discovery》系列的每篇文章撰写耗时都在2天以上,转载时麻烦著名作者Aicken(李鸣),并且未经作者同意,禁止一切商业用途! 一.关于垃圾回收机制● 机制分析垃圾收集器是.Net平台的一个特性,它自动回收托管堆上不再使用的对象,及时... 阅读全文
.Net Discovery系“.NET技术”列之-深入理解平台机制与性能影响 (中)
2011-10-13 19:27 by 狼人:-), 139 阅读, 0 推荐, 收藏,
摘要:上一篇文章中Aicken为大家介绍了.Net平台的垃圾回收机制与其对性能的影响,这一篇中将继续为大家介绍.Net平台的另一批黑马—JIT。有关JIT的机制分析 ● 机制分析以C#为例,在C#代码运行前,一般会经过两次编译,第一阶段是C#代码向MSIL的编译,第二阶段是IL向本地代码的编译。第一阶段的编译成果是生成托管模块,第二阶段的编译成果是生成本地代码以供运行,从这里各位同学可以看出,第一阶段生成的MSIL是不能直接运行的。必须指出的是JIT在第一次编译IL后,会修改对应方法相应的内存地址入口,下一次需要执行这个方法时,CLR会直接访问对应的内存地址,而不会经过JIT了。 以Lo... 阅读全文
.Net Discovery系列之-深入理解平台机制与性“.NET技术”能影响(下)
2011-10-13 19:27 by 狼人:-), 122 阅读, 0 推荐, 收藏,
摘要:三.关于异常捕获机制 虽然我们已经很辛苦了,但是仍然有很多原因使代码运行失败,如引用null引用、索引越界、内存溢出、类型转换失败等等。这就需要我们的代码有足够的容错能力,在代码运行失败时,及时、主动的处理这些异常。 ● 机制分析 .Net 中基本的异常捕获与处理机制是由try…catch…finally块来完成的,它们分别完成了异常的监测、捕获与处理工作。一个try块可以对应零个或多个catch块,可以对应零个或一个finally块。不过没有catch的try似乎没有什么意义,如果try对应了多个catch,那么监测到异常后,CLR会自上而下搜索catch块的代码,... 阅读全文
Entity Fr“.NET技术”amework 4.1 Code First 学习之路(二)
2011-10-13 19:27 by 狼人:-), 209 阅读, 0 推荐, 收藏,
摘要:写系列的上一篇已经是很久之前的事儿了= =在此期间,EF 4.1的RTW都已经出来了,NH 3.2的Alpha已经2了。。。其实不是我懒,工作中也在一直使用EF 4.1。主要是上次承诺过的一个Update功能搞不定= = 总之这一次的目标是: 实现一个完整的IRepository(添加增删改能力)
领域对象的继承
事物 首先来看IRepository 我的接口如下: public interface IRepository<TEntity> where TEntity : IEntity{ IEnumerable<TEntity> FindAll(); ... 阅读全文
C#权限管理和设计浅“.NET技术”谈
2011-10-13 19:27 by 狼人:-), 301 阅读, 0 推荐, 收藏,
摘要:权限管理是很多软件中相当重要的一个模块它的设计的好坏直接影响到软件的安全性、权限管理的可扩展性和易操作性 以及代码中权限判断的复杂程度和效率等方面。此文主要想和大家分享的是这段时间,对权限管理和设计的断断续续的思考学习,和个人的一些软件开发等方面的看法。 提到'权限管理和设计',大家可能会第一时间想到这园子里的吉日嘎拉,在这方面他可以算是'大牛'或专家 他的'通用权限管理系统',究竟做的怎样,看看他的博客就差不多可以知道了(貌似我在给他做推广,呵呵...,but in fact,is not),别的暂且不敢说,最起码可以看出他研究的比较深入和狂热 阅读全文
带你走进缓“.NET技术”存世界
2011-10-13 19:27 by 狼人:-), 201 阅读, 0 推荐, 收藏,
摘要:我们搞程序的多多少少都了解点算法。总体来讲,算法是什么?算法就是“时间”和“空间”的互换策略。我们常常考究一个算法的时间复杂度或空间复杂度,如果我们有绝对足够的时间或空间,那么算法就不需要了,可惜这种条件是不存在的,只是在某些情况下相对来说我们不用去考虑其中一个。今天我们讨论的“缓存”,自然就是“用空间换时间”的算法。 缓存就是把一些数据暂时存放于某些地方,可能是内存,也有可能硬盘。总之,目的就是为了避免某些耗时的操作。我们常见的耗时的操作,比如数据库的查询、一些数据的计算结果,或者是为了减轻服务器的压力。其实减轻压力也是因查询或计算,虽然短耗时,但操作很频繁,累加起来也很长,造成严重... 阅读全文
浙公网安备 33010602011771号