代码改变世界

随笔分类 -  [01].NET技术

一起谈.NET技术,NET下RabbitMQ实践 [示例篇]

2011-09-01 23:46 by 狼人:-), 306 阅读, 收藏,
摘要: 在上一篇文章中,介绍了在window环境下安装erlang,rabbitmq-server,以免配置用户,权限,虚拟机等内容。今天将会介绍如果使用rabbitmq进行简单的消息入队,出队操作,因为本文演示的环境要用到上文中配置的环境,所以要运行本文sample,请先按上一篇中完成相应环境配置。 首先,我们下载官方的.net客户端软件,链接:http://www.rabbitmq.com/dotnet.html。下载并安装之后,将安装目录下的这两个DLL文件复制到我们示例项目中,并添加引用: Code highlighting produced by Actipro CodeHighl... 阅读全文

一起谈.NET技术,关于CLR内存管理一些深层次的讨论 [上篇]

2011-09-01 23:46 by 狼人:-), 184 阅读, 收藏,
摘要: 半年之前,PM让我在部门内部进行一次关于“内存泄露”的专题分享,我为此准备了一份PPT。今天无意中将其翻出来,觉得里面提到的关于CLR下关于内存管理部分的内存还有点意思。为此,今天按照PPT的内容写了一篇文章。本篇文章不会在讨论那些我们熟悉的话题,比如“值类型引用类型具有怎样的区别?”、“垃圾回收分为几个步骤?”、“Finalizer和Dispose有何不同”、等等,而是讨论一些不同的内容。整篇文章分上下两篇,上篇主要谈论的是“程序集(Assembly)和应用程序域(AppDomain)”。也许有的地方说的不是很正确,希望读者不吝赐教。 一、程序集与应用程序域 何谓程序集(Asse... 阅读全文

一起谈.NET技术,关于CLR内存管理一些深层次的讨论 [下篇]

2011-09-01 23:46 by 狼人:-), 196 阅读, 收藏,
摘要: 《上篇》中我们主要讨论的是程序集(Assembly)和应用程序域(AppDomain)的话题,着重介绍了两个不同的程序集加载方式——独占方式和共享方式(中立域方式);以及基于进程范围内的字符串驻留。这篇将关注点放在托管对象创建时内存的分配和对大对象(LO:Large Object)的回收上,不对之处,还望各位能够及时指出。 一、从类型(Type)与实例(Instance)谈起 在面向对象的世界中,类型和实例是两个核心的要素。不论是类型和实例,相关的信息比如加载到内存中,对应着某一块或者多块连续或者不连续的内存。那么对类型和实例的内存分配时如何进行的呢?对象是“状态”和“行为”的组合... 阅读全文

一起谈.NET技术,.NET中锁6大处理方法 悲观乐观自己掌握

2011-09-01 23:46 by 狼人:-), 365 阅读, 收藏,
摘要: 本文介绍了处理.NET中锁的6种方法,首先我们讨论一下并发性问题,然后讨论处理乐观锁的3种方法,乐观锁不能从根源上解决并发问题,因此后面我们介绍了悲观锁,最后介绍隔离级别如何帮助我们实现悲观锁,每个隔离级别都列举了示例进行说明,使得概念更加清晰。 我们为什么需要锁? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这就会产生冲突,这个就是著名的并发性问题。 图 1 并行性问题漫画 如何解决并发性问题? 借助正确的锁定策略可以解决并发性问题,资源被锁定后,其它进程想要访问它就会被阻止。 并发会造成什么样的冲突? 并发主要会导致四种常见的问题,详细情况... 阅读全文

一起谈.NET技术,详解ASP.NET4 GridView新增4大排序样式

2011-09-01 23:46 by 狼人:-), 317 阅读, 收藏,
摘要: 与ASP.NET 的其他Web控件一能够,Gridview控件拥有很多不同的CSS样式属性设置,包括象CssClass,Font字体,ForeColor,BackColor,BackColor, Width, Height等等。Gridview还包括了一些应用在表格的行上的样式属性,比如RowStyle, AlternatingRowStyle, HeaderStyle,和PagerStyle,它们都提供了象CssClass和Font这些基本的属性设置。 在ASP.NET 4.0中的Gridview控件中,新增加了四个样式属性:SortedAscendingHeaderStlye,S... 阅读全文

一起谈.NET技术,从数据到代码—通过代码生成机制实现强类型编程[下篇]

2011-09-01 23:46 by 狼人:-), 206 阅读, 收藏,
摘要: 在《上篇》中,我们实现了将保存有消息条目的XML向CodeDOM的转换,即是将XML文件生成一个CodeCompileUnit对象,而该CodeCompileUnit对象反映出来的DOM层次和我们将会生成的代码文件向匹配。在下篇中,我们将实现整个代码生成系统的第二个步骤——通过VS的Custom Tool实现数据(保存消息条目的XML)向代码文件的自动转换。 一、让MessageCodeGenerator继承BaseCodeGeneratorWithSite 在《上篇》我们创建了MessageCodeGenerator类,定义了如下一个BuildCodeObject方法实现将一个X... 阅读全文

一起谈.NET技术,NET下RabbitMQ实践 [WCF发布篇]

2011-09-01 23:46 by 狼人:-), 232 阅读, 收藏,
摘要: 在之前的两篇文章中,主要介绍了RabbitMQ环境配置,简单示例的编写。今天将会介绍如何使用WCF将RabbitMQ列队以服务的方式进行发布。 注:因为RabbitMQ的官方.net客户端中包括了WCF的SAMPLE代码演示,很适合初学者,所以我就偷了个懒,直接对照它的SAMPLE来说明了,算是借花献佛吧,呵呵。首先我们下载相应源码(基于.NET 3.0),本文主要对该源码包中的代码进行讲解,链接如下: Binary, compiled for .NET 3.0 and newer (zip) - includes example code, the WCF binding and ... 阅读全文

一起谈.NET技术,从数据到代码—通过代码生成机制实现强类型编程[上篇]

2011-09-01 23:46 by 狼人:-), 157 阅读, 收藏,
摘要: 我不知道大家对CodeDOM的代码生成机制是否熟悉,但是有一点可以确定:如果你使用过Visual Studio,你就应该体验过它带给我们在编程上的便利。随便列举三种典型的代码生成的场景:在创建强类型DataSet的时候,VS会自动根据Schema生成相应的C#或者VB.NET代码;当我们编辑Resource文件的时候,相应的的后台代码也会自动生成;当我们通过添加Web Reference调用Web Service或者WCF Service的时候,VS会自动生成服务代理的代码和相应的配置。总的来说,通过和VS集成的动态代码生成工具使我们可以“强类型”的方式进行编程,进而提供我们的效率并减低错.. 阅读全文

一起谈.NET技术,从数据到代码—基于T4的代码生成方式

2011-09-01 23:46 by 狼人:-), 315 阅读, 收藏,
摘要: 在之前写一篇文章《从数据到代码》(上篇、下篇)中,我通过基于CodeDOM+Custom Tool的代码生成方式实现了将一个XML表示的消息列表转换成了相应的C#代码,从而达到了强类型编程的目的。实际上,我们最常用的代码生成当时不是CodeDOM,而是T4,这是一个更为强大,并且适用范围更广的代码生成技术。今天,我将相同的例子通过T4的方式再实现一次,希望为那些对T4不了解的读者带来一些启示。同时这篇文章将作为后续文章的引子,在此之后,我将通过两篇文章通过具体实例的形式讲述如果在项目将T4为我所用,以达到提高开发效率和保证质量的目的。[这里有T4相关的资料][文中的例子可以从这里下载]。 .. 阅读全文

一起谈.NET技术,自动更新组件分享

2011-09-01 23:46 by 狼人:-), 256 阅读, 收藏,
摘要: 一. 摘要 前两天在博客上发布了一篇英文的自动更新组件文章Release a AutoUpdater tool,那么在这篇文章中,我们也对其功能进行一些简单说明,这个组件非常简单,所以大家可以下载进行一些改进。众所周知,对于一般的软件开发,在开始的时候都会有一个技术选型的阶段,最大的选型就是首先要确定是选择Client/Server模式还是Browser/Server模式。综合而论:两者各有优劣,在很多方面都不能被对方互相取代,如在适用Internet、维护工作量等方面,B/S比C/S要强很多;但在运行速度、数据安全、人机交互等方面,B/S就远不如C/S那么强大。所以综上所述,凡是C/... 阅读全文

一起谈.NET技术,.Net4.0 Parallel编程(二)Data Parallelism 中

2011-09-01 23:46 by 狼人:-), 152 阅读, 收藏,
摘要: 在上篇文章中看过了使用Parrallel.For、Parael.Foreach在效率上给我们带来的提高。本文就来如何终止循环、线程局部变量 进行说明。 Thread-Local Variables 首先我们来看下线程局部变量,是的我们也许一直在想我们如何去定义一个线程局部变量呢。先看段顺序执行的代码: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->[TestMethod()]public void NormalSequenceTes... 阅读全文

一起谈.NET技术,.Net4.0 Parallel编程(三)Data Parallelism 下

2011-09-01 23:46 by 狼人:-), 195 阅读, 收藏,
摘要: 在上篇文章中介绍了如何Break、Stop循环,以及如何定义线程局部变量。在本文中介绍如何在外部去取消循环、以及异常的处理。 Cancel 在并行的循环中支持通过传递ParallelOptions参数中的CancellationToken进行取消循环的控制,我们可以CancellationTokenSource实例化之后传递给ParallelOptions对象Cancellation值。下面来看个示例: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighte... 阅读全文

一起谈.NET技术,ASP.NET MVC 3 Beta初体验之超酷的Chart

2011-09-01 23:46 by 狼人:-), 264 阅读, 收藏,
摘要: 前面一篇文章:ASP.NET MVC 3 Beta初体验之WebGrid介绍了WebGrid控件的使用,ASP.NET MVC 3 Beta中才内置Chart的。这篇文章中将介绍Chart的使用。包括Chart数据源的配置、Chart的显示、Chart保存三个方面。Chart是很多系统中使用,所以在ASP.NET MVC 3 Beta初体验之中介绍它是很有必要的。 1、配置Chart的数据源 给Chart配置数据源大概有三种方式。 第一种:使用数组 示例: Controller代码: Code highlighting produced by Actip... 阅读全文

一起谈.NET技术,Asp.net mvc 3 beta 新特性介绍

2011-09-01 23:46 by 狼人:-), 162 阅读, 收藏,
摘要: 国庆放假归来,刚好赶上asp.net mvc 3 beta发布,和大家分享点我的体验。 首先是创建项目时的选择界面的改变: 1.View Engine的变化。 asp.net mvc 3中添加了Razor这个View engine。 如果你在创建的项目中同时有Index.aspx和Index.cshtml, 默认的MVC会选择aspx 的view来显示。但是你可以通过在Global.asax文件中的Application_Start方法中添加如下代码来让MVC先去执行Razor Engine的Index.cshtml页面。 代码如下: Code highlighting... 阅读全文

一起谈.NET技术,.Net4.0 Parallel编程(四)Task 上

2011-09-01 23:46 by 狼人:-), 207 阅读, 收藏,
摘要: 在之前的文章中,已经介绍过了Parallel Loop(上、中、下)的相关内容。本篇文章中会就Task基础部分进行些介绍。 初识Task 首先我们来构建一个简单的Task的Demo: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->static void Main(string[] args){ Task.Factory.StartNew(() => { Console.WriteLine("Hello wo... 阅读全文

一起谈.NET技术,ASP.NET MVC的全球化方案

2011-09-01 23:46 by 狼人:-), 347 阅读, 收藏,
摘要: 由于项目需要最近在学习ASP.NET MVC。在实践中,网站要支持多语言,需要全球化。在MVC下我实现了一个全球化框架,在这里与各位分享一下,不足之处也请各位看官指教。 让URL支持全球化 经常上微软网站的朋友可能很熟悉类似包含..\zh-cn\..、..\en-us\..的url形式,这就是本文要使用的全球化方案。当然还有使用QueryString传递参数的方案,基本思路我想是类似的。 由于MVC天生的URL路由原理,使得这个方案很容易被接受。 基本思路 这个方案的基本思路是: 1.当用户访问的url含有合法的culture参数时,能够直接路由到对应的contro... 阅读全文

一起谈.NET技术,.Net4.0 Parallel编程(一)Data Parallelism 上

2011-09-01 23:46 by 狼人:-), 183 阅读, 收藏,
摘要: Parallel.For 首先先写一个普通的循环: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->private void NormalFor(){ for (var i = 0; i < 10000; i++) { for (var j = 0; j < 1000; j++) { for (var k = 0; k < 100; k++) { ... 阅读全文

一起谈.NET技术,ASP.NET MVC 3让你疯狂的五大理由

2011-09-01 23:46 by 狼人:-), 212 阅读, 收藏,
摘要: 我总结了ASP.NET MVC 3让我兴奋的五个理由,不知你看了后会有何感想。 1、Razor视图引擎 我不得不说,Razor视图引擎太酷了,我喜欢它那清爽的代码风格,它使用@符号表示代码块,下面的代码在Razor都是合法的: @foreach(variteminModel){<b > @item.FullName</b >} 2、新的助手 助手一直是ASP.NET MVC和其它MVC框架相比不足的地方,ASP.NET MVC 3提供了新的助手,将会缩小这一领域和竞争对手的差距。 Chart:帮助创建图表,非常好用。 WebGrid:以网格形式呈现对象集合,包... 阅读全文

一起谈.NET技术,领域驱动设计案例:Tiny Library:简介

2011-09-01 23:46 by 狼人:-), 303 阅读, 收藏,
摘要: 应广大网友的要求,我最近抽空基于ASP.NET MVC + WCF + Entity Framework做了一个案例,该案例以图书馆图书管理、读者借书、还书为业务背景,以领域驱动设计为思想指导,全程采用Microsoft技术进行实践,希望能够给Microsoft技术的狂热者以及领域驱动设计的学者提供实践参考。 本案例选用的业务逻辑非常简单,所以项目取名上我选用了“Tiny Library”,在后面一章我将详细介绍这个案例的业务逻辑、模型设计与系统架构。 下载案例 本来打算将项目发布到codeplex上,便于大家交流,也便于代码更新与维护,但由于某些原因,我无法在自己的网络环境中连接... 阅读全文

一起谈.NET技术,ASP.NET MVC3 让依赖注入来的更简单(新补充了Ninject示例)

2011-09-01 23:46 by 狼人:-), 209 阅读, 收藏,
摘要: 昨天,我写了一篇文章(参见:ASP.NET MVC 依赖注入),这种实现方式我个人一直感觉不太顺,在写出来与大家一起分享的同时, 也是想让大家提提自己的建议, 今天下载了微软发布的最新的 ASP.NET MVC3 Beta 版,同时也仔细阅读了它的 Release Notes, 让我感觉到惊喜的是,MVC3增加了对依赖注入的支持,增加了一 个IDependencyResolver 接口定义,真的是很不错,比起我原来的实现要顺畅很多, 还是老方法,上微软牛人们的博客逛一圈看看有没有已经写好的代码,有就拿来用之,没有就只能自己写了,结果让我很失望,也可能是我太笨, 我没有找到... 阅读全文
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 56 下一页