代码改变世界

理解.NET程序集的执行过程

2011-10-13 19:11 by 狼人:-), 155 阅读, 0 推荐, 收藏, 编辑
摘要:对于一个已编译好的.NET程序集,Windows操作系统是如何启动执行的呢?日常使用中我们发现对于托管的和非托管的程序集编译器都会吧程序集编译成以.exe或.dll等为扩展名的文件,可见Windows加载器并没有区分是托管还是非托管的程序集,而且我们也知道对非托管的程序集是在编译器直接编译成了机器码,自然可以由CPU直接执行,而托管的.NET 程序集是包含复杂结构的MSIL代码,执行时会使用JIT即时编译器将IL代码编译成机器码,再由CPU执行,当然这期间还需要执行其它许多的工作,如加载CLR、执行初始化等工作,那么这些是怎么自动实现的呢? 理解这些问题是我们深入.NET的关键,由于... 阅读全文

C#中字符串的内存分配与驻留池

2011-10-13 19:11 by 狼人:-), 188 阅读, 0 推荐, 收藏, 编辑
摘要:刚开始学习C#的时候,就听说CLR对于String类有一种特别的内存管理机制:有时候,明明声明了两个String类的对象,但是他们偏偏却指向同一个实例。如下: String s1 = "Hello";String s2 = "Hello"; //s2和s1的实际值都是Hellobool same = (object) s1 == (object) s2;//这里比较s1、s2是否引用了同一个对象实例//所以不能写作bool same = s1 == s2; //因为String类重载了==操作符来比较String对象包含的实际值 这里的s... 阅读全文

JAVA与.NET的相互调用——TCP/IP相互调用基本架构

2011-10-13 19:11 by 狼人:-), 171 阅读, 0 推荐, 收藏, 编辑
摘要:TCP/IP套接字的概念 TCP/IP(传输控制协议/网际协议)是网络互连的通信协议,通过它可以实现各种异构网络或异种机之间的互联通信。TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。TCP/IP是一个四层的分层体系结构。高层为传输控制协... 阅读全文

.NET简谈观察者模式

2011-10-13 19:11 by 狼人:-), 132 阅读, 0 推荐, 收藏, 编辑
摘要:观察者模式想必搞程序开发的都听说过,今天我也来简单的总结一下本人在程序开发过程中是怎么使用观察者模式的;希望给大家带来点新的想法,如果哪位高手看到了也不要嘲笑啊;呵呵,追求技术的人,始终都是为了技术而学技术,目的只有一个,一起追求技术的最高境界。 观察者模式是设计模式里经常被用到的一种,什么叫观察者模式,字面理解就是一个或多个对象观察某个对象,这种观察是有目的的,当被观察者发生某种事件时,能准确的反馈到外界,通知大家你发生了什么;尤其是在今天面向对象编程的不断成熟,什么都讲究抽象,将重复劳动省到最少,方法成员都以类为容器封装;这是一种好的编程规则,就好比我们所生存的大自然坏境一样,汽车... 阅读全文

C# 中奇妙的函数--联接序列的五种简单方法

2011-10-13 19:11 by 狼人:-), 274 阅读, 0 推荐, 收藏, 编辑
摘要:今天我们来看看5种使用Linq函数联接序列的方法,这5种方法可以归入下列两类: 同类的联接 Concat() Union() 不同类的联接 Zip() Join() GroupJoin() Concat() – 串联序列 最简单的序列合并,concat仅仅是将第二个序列接在第一个序列后面, 注意:返回的序列并没有改变原来元素的顺序: 1. var healthFoods = new List<string> { "fruits", "vegetables", "grains", "proteins" } 阅读全文

用C#实现HTTP协议下的多线程文件传输

2011-10-13 19:11 by 狼人:-), 179 阅读, 1 推荐, 收藏, 编辑
摘要:很多人都有过使用网络蚂蚁或网络快车软件下载互联网文件的经历,这些软件的使用可以大大加速互联网上文件的传输速度,减少文件传输的时间。这些软件为什么有如此大的魔力呢?其主要原因是这些软件都采用了多线程下载和断点续传技术。如果我们自己来编写一个类似这样的程序,也能够快速的在互联网上下载文件,那一定是非常愉快的事情。下面我就讲一讲如何利用C#语言编写一个支持多线程下载文件的程序,你会看到利用C#语言编写网络应程序是多么的容易,从中也能体会到C#语言中强大的网络功能。 首先介绍一下HTTP协议,HTTP亦即Hpyer Text Transfer Protocal的缩写,它是现代互联网上最重要的一... 阅读全文

.NET :静态类的理解

2011-10-13 19:11 by 狼人:-), 159 阅读, 0 推荐, 收藏, 编辑
摘要:静态类是一种声明为 static 类型的,且仅包含静态成员的类。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。 静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。 静态类的主要特点如下: 它们仅包含静态成员。 它们不能被实例化。 它们是密封的。 它们不能包含实例构造函数。 因此创建静态类与创建仅包含静态成... 阅读全文

回顾.NET Remoting分布式开发

2011-10-13 19:11 by 狼人:-), 130 阅读, 0 推荐, 收藏, 编辑
摘要:记得在下第一次接触.NET Remoting分布式开发是在2003年,那时候是Framework1.0初次亮相之时,Remoting分布式开发是Framework1.0其中一个亮点。经过多年的发展,在2005年,WCF随着Framework2.0首先亮相。WCF是结合Remoting,Web服务,TCP/IP套接字,MSMQ信息,P2P,WSE等多方通讯的混合体。 随着WCF的出现是否意昧着Remoting即将没落,答案是否定的。因为Remoting有其独到之处,在通讯效率,信息交换,安全性等多方面都有其特点,所以在企业内部系统的信息化交换层的开发当中,很多时候会使用Remoting进... 阅读全文

页面片段缓存(一)

2011-10-13 19:11 by 狼人:-), 162 阅读, 0 推荐, 收藏, 编辑
摘要:一般,页面上会分为很多部分,而不同的部分更新的频率是不一样的。如果对整个页面采用统一的缓存策略则不太合适, 而且很多系统的页面左上角都有一个该死的“Welcome XXX”。这种特定于用户的信息我们是不能缓存的。对于这些情况我们就需要使用片段缓存了。对页面不同的部分(片段)施加不同的缓存策略,而要使用片段缓存,首先就得对页面进行切分。土一点的办法可以用iframe,用iframe将页面划分为一块块的,不过我总觉得iframe是个邪恶的东西。好点的办法可以用Ajax单独的请求这个片段的内容然后再填充,看起来挺美好的。不过使用Ajax也有一些限制: 1、如果页面上有许多片段,使用太多的... 阅读全文

.NET简谈面向接口编程

2011-10-13 19:11 by 狼人:-), 207 阅读, 0 推荐, 收藏, 编辑
摘要:过程式的开发方式已逐渐退出大众的眼线,随之而来的是各种各样的高抽象的开发模式;我们不得不承认在没有设计模式的时候,我们很难总结出有价值的开发模型,便于以后重复使用和推广;面向对象的流行,让我们开发人员重新站在一个高的起点来看待软件模型,抽象固然是好事,但是也给初学者带来了迷惑,将软件中的东西都想成很简单的封装,我们只需要调用就行,这样越来越多的开发人员开始慢慢的往上浮,有一定编程经验和感触的人,能够明白我所说的浮,也算是给初学者提个醒吧。 1: 2:  我们将计算机系统抽象层三个层次,我们做应用层开发的基本上处于最上层;我为什么要给出这张图,其实当我们的软件系统不断的抽象后... 阅读全文

改善代码设计 —— 处理概括关系(Dealing with Generalization)

2011-10-13 19:11 by 狼人:-), 174 阅读, 0 推荐, 收藏, 编辑
摘要:系列博客 1. 改善代码设计 —— 优化函数的构成(Composing Methods) 2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects) 3. 改善代码设计 —— 组织好你的数据(Composing Data) 4. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions) 5. 改善代码设计 —— 简化函数调用(Making Method Calls Simpler) 6. 改善代码设计 —— 处理概括关系(Dealing with Generalization... 阅读全文

改善代码设计 —— 简化函数调用(Making Method Calls Simpler)

2011-10-13 19:11 by 狼人:-), 172 阅读, 0 推荐, 收藏, 编辑
摘要:系列博客 1. 改善代码设计 —— 优化函数的构成(Composing Methods) 2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects) 3. 改善代码设计 —— 组织好你的数据(Composing Data) 4. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions) 5. 改善代码设计 —— 简化函数调用(Making Method Calls Simpler) 6. 改善代码设计 —— 处理概括关系(Dealing with Generalization... 阅读全文

改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects)

2011-10-13 19:11 by 狼人:-), 107 阅读, 0 推荐, 收藏, 编辑
摘要:系列博客 1. 改善代码设计 —— 优化函数的构成(Composing Methods) 2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects) 3. 改善代码设计 —— 组织好你的数据(Composing Data) 4. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions) 5. 改善代码设计 —— 简化函数调用(Making Method Calls Simpler) 6. 改善代码设计 —— 处理概括关系(Dealing with Generalization... 阅读全文

Log4Net 全方位跟踪程序运行

2011-10-13 19:11 by 狼人:-), 148 阅读, 0 推荐, 收藏, 编辑
摘要:前端日子自己写了一个简单的日志跟踪程序,现在目前正在做的一个项目中使用以便于跟踪程序异常和运行状况,但是被否认了!可能是没有权威性,于是自己总结了一下Log4net日志跟踪系统,这里分享大家学习一下。当然写这个文章的人太多了,这里不是做任何攀比,只是简单的分享供有需要的人。 一. Log4Net 简介 Log4net是 Apache 下一个开放源码的项目,它是Log4j 的一个克隆版。我们可以控制日志信息的输出目的地。Log4net中定义了多种日志信息输出模式。 在做项目的时候令我最头疼的是在程序发布到正式环境之后出现了问题,我们不能调试而且问题很难重新,于是我们需要大量... 阅读全文

改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions)

2011-10-13 19:11 by 狼人:-), 256 阅读, 0 推荐, 收藏, 编辑
摘要:系列博客 1. 改善代码设计 —— 优化函数的构成(Composing Methods) 2. 改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects) 3. 改善代码设计 —— 组织好你的数据(Composing Data) 4. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions) 5. 改善代码设计 —— 简化函数调用(Making Method Calls Simpler) 6. 改善代码设计 —— 处理概括关系(Dealing with Generalization... 阅读全文
上一页 1 ··· 61 62 63 64 65 66 67 68 69 ··· 311 下一页