摘要: 本节主要说明使用异步进行程序设计的优缺点及如何通过异步编程,使用传统方法BeginInvoke / EndInvoke来实现异步,使用async/await 创建异步方法和事件。通过异步编程创建具有快速响应和可伸缩性的应用程序。 阅读全文
posted @ 2015-07-30 09:15 yubinfeng 阅读(2128) 评论(9) 推荐(12) 编辑
摘要: 上节介绍了线程同步中使用线程锁和线程通知的方式来处理资源共享问题,这些是多线程的基本原理。.NET 4.0以后对多线程的实现变得更简单了。本节主要讨论.NET4.0多线程的新特性——使用Task类创建多线程。 阅读全文
posted @ 2015-07-28 17:33 yubinfeng 阅读(1703) 评论(2) 推荐(8) 编辑
摘要: 上节介绍了多线程的基本使用方法和基本应用示例,本节深入介绍.NET多线程中的高级应用。 主要有在线程资源共享中的线程安全和线程冲突的解决方案;多线程同步,使用线程锁和线程通知实现线程同步。 阅读全文
posted @ 2015-07-24 08:41 yubinfeng 阅读(2133) 评论(3) 推荐(13) 编辑
摘要: 随着硬件和网络的高速发展,为多线程(Multithreading)处理并行任务,提供了有利条件。其实我们每时每刻都在享受多线程带来的便利,多核处理器多线程工作、Windows操作系统、Web服务器都在使用多线程工作。使用多线程直接提高了程序的执行效率,因此学习多线程对提高程序运行能力非常必要,本节主要介绍多线程原理及.NET中多线程在.NET面向对象程序设计中的应用。 阅读全文
posted @ 2015-07-22 09:33 yubinfeng 阅读(2997) 评论(4) 推荐(21) 编辑
摘要: 缓存是一种以空间换取时间的技术,.NET中特别重要的缓布技术Cache.如何利用Cache提升程序性能是我们本节主要内容,通过示例介绍了Cache的创建和移除等的方法,介绍了缓存在工厂反射模式中的应用,最后整理一个缓存的通用类。 阅读全文
posted @ 2015-07-16 08:28 yubinfeng 阅读(3297) 评论(8) 推荐(19) 编辑
摘要: 缓存(Cache)是一种用空间换时间的技术,在.NET程序设计中合理利用,可以极大的提高程序的运行效率。 本节将介绍如何利用缓存写出高效率的代码。 阅读全文
posted @ 2015-07-15 00:36 yubinfeng 阅读(3013) 评论(4) 推荐(9) 编辑
摘要: 关于JSON序列化,不能不了解Json.net(Newtonsoft.Json)这款世界级的开源类库,除了拥有良好的性能之外,功能也是非常强大的。其可以对非公有字段或属性进行序列化,可以自定义序列化的日期格式,可以进行属性改名序列化等等很多强大而好用的功能。本节一一详细的用示例介绍。此外,对于不喜欢使用第三方类库的同学,会整理一个基于微软类库的通用Json类。 阅读全文
posted @ 2015-07-11 18:35 yubinfeng 阅读(2891) 评论(4) 推荐(10) 编辑
摘要: JSON:一种轻量级、跨平台的数据传输格式。详细介绍JSON的结构,在JS中的使用。重点说明JSON如何在.NET中通过两种方法快速实现序列化和反序列化。最后介绍在使用.NET序列化JSON过程中的注意事项。 阅读全文
posted @ 2015-07-10 20:21 yubinfeng 阅读(2474) 评论(3) 推荐(8) 编辑
摘要: 本节主要介绍通过序列化接口IXmlSerializable实现XML序列化和反序列化,整理了XML基础操作及序列化的通用类(包括XML及节点的基础读写操作,XML到DataSet\DataTable互转换操作,XML序列化及反序列化通用方法等)。 阅读全文
posted @ 2015-07-10 03:07 yubinfeng 阅读(3826) 评论(1) 推荐(7) 编辑
摘要: 本篇主要介绍XML序列化和反序列化。XML作为W3C标准数据传输格式,将XML对象化处理,认识和使用XML序列化类XmlSerializer,是.NET面向对象程序设计必须要掌握的知识。本节通过对博客园文章列表=>XML,XML=>博客园文章实体对象之间进行序列化和反序列化的示例一步一步介绍。 阅读全文
posted @ 2015-07-09 09:38 yubinfeng 阅读(2125) 评论(4) 推荐(7) 编辑
摘要: 在.NET编程中,经常面向对象处理完以后要转换成另一种格式传输或存储,这种将对象转向其他数据格式的过程,即序列化(Serialization)。 与之相反的过程就是反序列化(Deserialization)。掌握和利用好序列化和反序列化的方法,对提高面向编程技术很有益处。 阅读全文
posted @ 2015-07-08 21:22 yubinfeng 阅读(3648) 评论(0) 推荐(11) 编辑
摘要: 本节导读:虽然在.NET编程过程中,绝大多数内存垃圾回收由CLR(公共语言运行时)自动回收,但也有很多需要我们编码回收。掌握托管与非托管的基本知识,可以有效避免某些情况下导致的程序异常。1.什么是托管与非托管?托管资源:一般是指被CLR(公共语言运行时)控制的内存资源,这些资源由CLR来管理。可以认... 阅读全文
posted @ 2015-07-07 01:30 yubinfeng 阅读(2193) 评论(0) 推荐(13) 编辑
摘要: 本节主要讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构。是时候来引用他解决问题。本节通过动态创建表达式树、执行表达式树及表达式树的调试的学习,最后通过一个动态查询博客园文章结束,使小伙伴们能熟练认识表达式树在动态查询上带来的便利。 阅读全文
posted @ 2015-07-06 13:10 yubinfeng 阅读(4403) 评论(11) 推荐(19) 编辑
摘要: [.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门 本节导读: 认识表达式树(Expression Tree),学习使用Lambda创建表达式树,解析表达式树。 学习表达式在程序设计中的优点:比如构造动态查询、动态构造表达式树完成未知对象属性访问,比反射的性能高出很 阅读全文
posted @ 2015-07-04 23:06 yubinfeng 阅读(2444) 评论(2) 推荐(16) 编辑
摘要: 本节主要说明 Lambda表达式在创建委托中的应用;Lambda表达式在Linq查询中的应用;Lambda 语句在异步事件中的应用;Lambda 的两个特性:类型推理和外部变量引用。 阅读全文
posted @ 2015-07-03 19:07 yubinfeng 阅读(3546) 评论(1) 推荐(22) 编辑
摘要: [.net 面向对象程序设计进阶] (2) 正则表达式(三) 表达式助手 上面两节对正则表达式的使用及.NET下使用正则表达式作了详细说明,本节主要搜集整理了常用的正则表达式提供参考。 此外为了使用方便,编写了一个《正则表达式助手》方便测试正则表达式。 1.正则表达式助手 1.1 软件概述 软件名称 阅读全文
posted @ 2015-07-01 10:52 yubinfeng 阅读(5184) 评论(9) 推荐(30) 编辑
摘要: [.net 面向对象程序设计进阶] (2) 正则表达式 (二) 高级应用 上一节我们说到了C#使用正则表达式的几种方法(Replace,Match,Matches,IsMatch,Split等),还有正则表达式的几种元字符及其应用实例,这些都是学习正则表达式的基础。本节,我们继续深入学习表达式的几种 阅读全文
posted @ 2015-06-30 02:08 yubinfeng 阅读(2187) 评论(5) 推荐(13) 编辑
摘要: [.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门 1. 什么是正则表达式? 1.1 正则表达式概念 正则表达式,又称正则表示法,英文名:Regular Expression(简写为regex、regexp或RE),是计算机科学的一个重要概念。他是用一种数学算法来解决计算机程序 阅读全文
posted @ 2015-06-29 02:21 yubinfeng 阅读(3345) 评论(6) 推荐(22) 编辑
摘要: 作为上一系列文章《.net 面向对象编程基础》的后续,在上一系列文章写完之后,博客园的小伙伴们热烈盼望我能坚持写一点更深入的东西,于是有了这一篇进阶系列。虽说是进阶,其实也是基础只是范围有些大,每一篇都可以单独作为一个课题来写。只所以写在一起,是让读者对.NET的各个方面都有所了解。可以根据实际工作需求,有选择性的阅读。 阅读全文
posted @ 2015-06-28 14:02 yubinfeng 阅读(11508) 评论(13) 推荐(65) 编辑
摘要: 本系列文章结束了,可我们的学习没有终点! 最后我发一下我的博客签名“No pains,No gains.”没有付出就没有收获,祝小伙伴们都成为大牛! 阅读全文
posted @ 2015-06-22 16:45 yubinfeng 阅读(2199) 评论(10) 推荐(15) 编辑
摘要: [.net面向对象编程基础](22)事件 事件(Event)是学习.net面向对象编程很重要的一部分,在学习事件之前,我们实际上已经在很多地方使用了事件,比如控件的click事件等,这些都是.net设计控件的时候已经定义好的事件。除此之外,我们同样可以自己定义事件。 事件实际上是一种消息机制,当然点... 阅读全文
posted @ 2015-06-21 20:43 yubinfeng 阅读(3358) 评论(0) 推荐(13) 编辑
摘要: [.net面向对象编程基础](20)委托上节在讲到LINQ的匿名方法中说到了委托,不过比较简单,没了解清楚没关系,这节中会详细说明委托。1. 什么是委托?学习委托,我想说,学会了就感觉简单的不能再简单了,没学过或者不愿了解的人,看着就不知所措了,其实很简单。委托在.net面向对象编程和学习设计模式中... 阅读全文
posted @ 2015-06-16 02:45 yubinfeng 阅读(3855) 评论(2) 推荐(20) 编辑
摘要: [.net面向对象编程基础](20)LINQ使用通过上节LINQ的基础知识的学习,我们可以开始使用LINQ来进行内存数据的查询了,我们上节说了LINQ的定义为:LanguageIntegratedQuery(语言集成查询)的简称,它是集成在.NET编程语言中的一种特性.1.LINQ的构架从这幅图中,... 阅读全文
posted @ 2015-06-13 03:54 yubinfeng 阅读(3117) 评论(13) 推荐(26) 编辑
摘要: [.net面向对象编程基础](19)LINQ基础 上两节我们介绍了.net的数组、集合和泛型。我们说到,数组是从以前编程语言延伸过来的一种引用类型,采用事先定义长度分配存储区域的方式。而集合是.Net版本初期的用于解决数据集检索方便而设计的,它比数组的优势除了检索方便之外,还可以在使用过程中自动分配... 阅读全文
posted @ 2015-06-12 02:11 yubinfeng 阅读(3257) 评论(0) 推荐(24) 编辑
摘要: [.net面向对象编程基础](18)泛型 上一节我们说到了两种数据类型数组和集合,数组是指包含同一类型的多个元素,集合是指.net中提供数据存储和检索的专用类。 数组使用前需要先指定大小,并且检索不方便。集合检索和声明方便,但是存在类型安全问题,本来使一个类型安全的C#变得不安全了。 集合为了... 阅读全文
posted @ 2015-06-10 19:03 yubinfeng 阅读(4355) 评论(5) 推荐(23) 编辑
摘要: [.net面向对象编程基础](17)数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉。具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总是举的是具体的实例以加深理解。 本节内容相当具体,学起来也相当轻松。1.数组1.1什么是数组?数组是一种... 阅读全文
posted @ 2015-06-09 01:48 yubinfeng 阅读(2962) 评论(2) 推荐(9) 编辑
摘要: [.net 面向对象编程基础] (16) 接口 关于“接口”一词,跟我们平常看到的电脑的硬件“接口”意义上是差不多的。拿一台电脑来说,我们从外面,可以看到他的USB接口,COM接口等,那么这些接口的目的一就是让第三方厂商生产的外设都有相同的标准,也是提供一个对外通信或操作的入口。 只是C#的接口除了 阅读全文
posted @ 2015-06-08 20:08 yubinfeng 阅读(3091) 评论(5) 推荐(12) 编辑
摘要: [.net 面向对象编程基础] (15) 抽象类 前面我们已经使用到了虚方法(使用 Virtual修饰符)和抽象类及抽象方法(使用abstract修饰符)我们在多态一节中说到要实现类成员的重写必须定义为一个虚方法或抽象方法。这节单独把抽象类提出来,是因为抽象是.net实现面向对象编程重要的重要思想,... 阅读全文
posted @ 2015-06-07 20:40 yubinfeng 阅读(3899) 评论(0) 推荐(19) 编辑
摘要: [.net面向对象编程基础](14)重构 通过面向对象三大特性:封装、继承、多态的学习,可以说我们已经掌握了面向对象的核心。接下来的学习就是如何让我们的代码更优雅、更高效、更易读、更易维护。当然了,这也是从一个普通程序员到一个高级程序员的必由之路。就看病一样,普通医生只能治标,高级医生不但看好病... 阅读全文
posted @ 2015-06-07 01:52 yubinfeng 阅读(3284) 评论(1) 推荐(11) 编辑
摘要: [.net面向对象编程基础](13)面向对象三大特性——多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态。比起前面的封装和继承,多态这个概念不是那么好理解。我们还是从一个事例开始: 公司最近为了陶冶情操,养了几种动物(Animal),有猫(Cat)、狗(Do... 阅读全文
posted @ 2015-06-06 19:37 yubinfeng 阅读(4890) 评论(0) 推荐(18) 编辑