自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 [Memcached系列]专题二:Memcached For .NET

1. Memcached在.NET中的客户端对于Memcached的在.NET中的客户端有很多,比较常用的有:a)       EmyimMemcached 可在nuget上下载获取b)       NETmemcached client library下载地址:https://sourceforge.net/projects/memcacheddotnet/在

2016-10-05 16:36:29 611

原创 [Memcached系列]专题一:快速入门

1. Memcached简介Memcached是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库负载,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个key-value对的hashmap。其进程是用C写的,但是客户端可以用任务语言来编写。Memcached主要用途就是分布式缓存,示意图(摘自网上),如下,其

2016-10-05 12:27:52 1399

原创 [Redis系列]专题一:快速入门

1. Redis简介redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redi

2016-10-03 12:46:21 1655

原创 IOC之Autofac

最近在研究,发现其内部IOC框架使用了autofac,简单的了解了一下,记录一下简单的一些用法。初浅了解下来,有一个很直观的感受,就是对代码几乎没什么侵入性,其他性能之类没有测试,但据说性能极佳。1. 构造函数注入,如下示例(后面所有说明都是在以下的示例基础上进行的)public interface IRepository { void Update()

2016-09-30 00:06:42 4662

原创 Json序列化及反序列化(备忘)

1.      DataContractJsonSerializerDataContractJsonSerializer在System.Runtime.Serialization.Json命名空间下,.NETFramework 3.5包含在System.ServiceModel.Web.dll中,需要添加对其的引用;.NETFramework 4在System.Runtime.Serializ

2016-09-17 16:52:07 5445 2

原创 Linq to Object 深入理解(一):了解Linq之前的基础知识

在我们去深入了解linq之前,有几个重要的基础需要先了解复习一下。一、隐式类型varvar是C#3.0时新增的特性,现在这个var会大量的出现在我的代码中,首先,我先从实际的感受表达一下,这个关键字给我带来的实实在在的好处:对于我这个懒惰的人来讲,这个关键字解救了我,假设你遇到这一行代码:ClassOuter.ClassInner1.ClassInner2.Clas

2015-06-03 22:06:26 2486 2

原创 简单的实现一个自定义的Linq to Sql Provider

这两天空闲时间研究了一下Linq 的提供器,简单的实现了一下,代码写的很乱,也没有注释,也没怎么对代码进行设计,因此有很多的临时变量和有些不必要的操作,但注重的是实现原理吧,微软的Linq to SQL实现水很深,这个例子只是简单的实现select和where,其他的没有实现,并且对于where查询,只支持有限的==、>、。先把代码记录下来吧,以后有时间再优化下代码和添加些注释。I

2014-01-09 15:33:28 2633

原创 CLR学习笔记--Attribute应用的一个小示例

在之前的一节“”中,我们介绍了Attribute的用法,这一节,来写个具体Attribute应用场景,这个示例主要实现DataTable转换相应的实体,一般情况下,我们进行数据库查询,选用一个DataTable填充数据,但我们往往需要将DataTable进行一个相应的实体转换,例如经典的三层架构中,就存在这种情况,但三层的实现方式是,一个Entity对应一个转换方法,即我们已知一个Entity中的

2013-11-22 14:54:23 968

原创 CLR学习笔记--Attribute

一、       引言利用定制的Attribute,我样可以声明性地为自己的代码添加注解,从而实现一些特殊的功能。定制的Attribute允许将定义的信息应用于几乎每一个元数据表记录项(AttributeTargets枚举了可应用的所有项)当我们将一个定制的Attribute应用于某个元数据,例如应用于某个类时,则在编译后,会在该类的元数据中的CustomerAttribute“注册表”中

2013-11-21 17:13:35 1355

原创 [多线程之旅] 五、浅析Thread.VolatileRead/VolatileWrite

一、volatile的局限上一节,我们简要的分析了volatile对易失性的支持,对于某些字段可能被多线程共享时,我们往往要考虑这些字段的可见性,以及考虑CPU和编译器对代码顺序进行优化(尽管编译器和CPU在实际中很少这样做)带来的不可预知的影响,因此C#提供了volatile关键字,它告诉编译器确保对易失字段的所有访问都是以易失读取或者易失写入的方式执行,并且告诉C#和JIT编译器不将字

2013-11-18 13:01:03 3520

原创 聊聊可空类型

一、前言在C#2.0之前,对于值类型来讲,我们是没法把一个null值赋给一个值变量的,那时,null只专属于引用类型,猜想Null当时的设计就是针对引用类型的,把null赋给引用类型变量时,表明变量不引用任何堆上的对象。即指针为空指针。由于这种设计,在C#2.0之前,程序员往往面对一个很尴尬的问题,在实际中,我们需要值类型能够为null的情况,最常见的问题体现在数据库设计中,例如一个物料表

2013-11-18 12:52:39 1195

原创 [多线程之旅]四、浅谈volatile

一、       内存操作顺序导致多线程编程的具有复杂性的众多原因之一是:编译器和硬件可能会在背后悄然改变程序的操作顺序,这种顺序的的改变不会影响单线程的行为,但在多线程编程中,由于编译器和硬件的这种行为,可能会导致一些我们异想不到的结果,我们先看下Jeffrey的《CLR VIA C#》中的一段代码示例:internal class ThreadsSharingData{

2013-11-03 22:20:40 922

原创 [多线程之旅] 三、线程同步基础

一、       引言多线程编程给我们带来了很好的用户体验,同时也充分了利用了CPU,但带好的好处的同时,我们又要是付出代价的,代价就是我们要考虑很多的问题,例如当多个线程同时竞争共享资源时,则很有可能对共享资源的状态进行破坏,因此我们需要采取一些策略—线程同步来解决这一问题。关于线程同步是一个很深很长的话题,我只是在初探其皮毛时,写一下学习笔记,巩固记忆,关于同步话题打算用多往篇来说明,在此

2013-11-03 22:02:57 1080

原创 [多线程之旅] 一、初识多线程

一、   线程的概念默认情况下,C# 程序具有一个线程。此线程执行程序中以Main方法开始和结束的代码。Main直接或间接执行的每一个命令都由默认线程(或主线程)执行,当Main返回时此线程也将终止。不过,可以创建辅助线程,以便与主线程一起并行执行代码。这些线程通常称为“辅助线程”。辅助线程可以用于执行耗时较多的任务或时间要求紧迫的任务,而不必占用主线程。例如,辅助线程经常用在服务

2013-10-26 12:22:44 954

原创 由int i和int i=new int()想到的

Int i和int i=newint()的区别作为引用类型中的字段:Int i和int i=newint() 如果做为类中的字段时,因为类在实例时会自动完成字段的初始化工作,因此在使用上是没有区别的,注意,仅仅是在使用上是没有区别,为什么这么说,请看下面示例: public class A { public int i; publi

2013-09-25 14:19:11 2247

原创 CLR学习笔记--对象比较方法梳理

一、引言对于对象的比较,C#提供了很多种比较方法,以及==和!=等运算来进行对象的同一性和相等性的比较,但我们在实际的编写代码中,可能会混淆各个方法的用法,在此废话不多说,我们一起来看些这几种方法的具体用法及含义。二、Object. Equals (object obj) 这个方法是Object提供的虚方法,对于该方法,我们先区别引用类型和值类型的用法对于引用类型,如果没有重写Eq

2013-09-13 23:19:18 867

原创 CLR学习笔记--属性

一、为什么需要属性属性:属性是这样的一个成员,它提供灵活的机制来读取、编写或计算某个私有字段的值。可以像使用公共数据成员一样使用属性,但实际上它们称任“访问器”的特殊方法。这使得可以轻松的访问数据,此外还有助于提高方法的安全性和灵活性。--摘自MSDN为什么需要属性:1、  面向对象设计和编程重要的原则之一就是数据封装,它意味着类中所有字段都不应该被类外部直接访问,因为这样很容易写不不

2013-09-12 16:12:20 1086

原创 CLR学习笔记--深入理解多态机制

一、引言所谓万事开头难,哪怕是写一个学习笔记,以前看惯别人写的博客文章,当时看了就看了,只有一种感觉就是解决了心中的好久疑团,现在自己去写才了解,也许你看了只有短短几分钟,可别人却下了功夫,用了很多心,在此对那些分享文章的朋友表示敬意,想把自己理解的东西写出来十分不易,何况自己可能对写的东西也不自信,害怕自己的错误理解影响了别人,这是十分罪过的,费话不多说,在此表示,在此写的只是自己在学习的过

2013-09-05 17:14:31 2127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除