代码改变世界

一线开发读CLR --- 第四章:类型基础

2013-03-23 13:18 by 秋日愚夫, 164 阅读, 0 推荐, 收藏, 编辑
摘要:>类型都是从System.Object派生 (大道至简)任何一个类型,都是Object类的N级子类。Object的“类型对象指针”是指向自身的,也就宣告了此处是构造器链的终点。每一次用New去调用构造器初始化对象时,Object构造器都会在构造器链顶端被第一个执行。最终才会调用发起New操作的类型的构造器。>类型转换 (简单的事,可以转换成复杂的。复杂的事也可以转成简单的。但复杂的不能转成复杂的。所以大道至简。)Object有个GetType公共方法。也就是说任何一个对象都是可以获得确切类型的。这就是所谓的“强类型”吧。在C#中用is 和as进行类型转换is构成的表达式会返回一个布 阅读全文

一线开发读CLR --- 第三章:共享程序集和强命名程序集

2013-03-03 13:58 by 秋日愚夫, 240 阅读, 0 推荐, 收藏, 编辑
摘要:本章内容,并非我现在的工作内容所频繁使用的。特别是共享程序集相关内容,目前和以后都可能用的不多。其中对“运行时”解析类型引用,知识点重点了解了一下。强命名程序集是为了对程序集进行共享为目的,而提出的。着眼于以后的分布式开发。作者想通过一个 “运行时”解析类型引用 的例子,说明CLR如果通过AssemblyRef这个记录项,获取强命名程序集信息,加载程序集的。例如: “mscorlib, Version=4.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561943s0d9”虽然暂时用不着 共享程序集 ,但对于 这个例子描述的方法执行流程,还是应该好好学 阅读全文

一线开发读CLR --- 第二章:生成打包程序集及中间语言IL的初步了解

2013-03-03 12:31 by 秋日愚夫, 287 阅读, 0 推荐, 收藏, 编辑
摘要:本章印象最深的两个知识点:一,程序集的构成图径;二,程序集元数据包含的信息;还有一点关于此知识点应用的联想。程序集的构成:我们先看一下,程序集是如何由一个个文件构成的。如下图:第一步,由CSC.exe(C#编译器)将若干个 CS文件 编译成模块文件。编译成的模块文件可直接用.netModule扩展名文件表示。也可以用只含有一个模块的程序集文件(扩展名 dll)表示.第二步,将获得的模块文件 与 若干个 资源文件 一同打包成 程序集文件。对元数据的初步了解:元数据包含于程序集及模块文件中。元数据由几个表构成。分为三个类别:定义表,引用表,清单表定义表:可以查看程序集中类及方法,字段,属性的定义信 阅读全文

一线开发理解领域驱动设计(DDD)

2013-02-28 13:44 by 秋日愚夫, 1617 阅读, 0 推荐, 收藏, 编辑
摘要:前言:DDD与以前所有的开发思想都不一样。它通过从顶向下,不断迭代,不断分解领域模型,使得开发过程更人性化,通过全程与客户沟通形成满足实际需求的,健壮的软件。我们学习使用DDD最大的阻碍就是与自己的旧的习惯(三层架构)的斗争。要使用这种方式,还要掌握与此配套的技术。例如:Code First,CQRS总体上的架构:1、 领域驱动设计是什么?是将软件开发过程中的分析与设计步骤统一处理的一种开发思想。群友曾讨论过“能否用C做领域驱动?”。我想这并不是能不能的问题,而是合不合适的问题。就像好,夏天穿棉袄一样,穿是可以,但你非常不爽的。强类型的面向对象开发方式,更适合描述领域模型。2、 领域驱动设计的 阅读全文

一线开发读CLR --- 第一章:CLR的执行模型

2013-02-25 10:31 by 秋日愚夫, 214 阅读, 0 推荐, 收藏, 编辑
摘要:CLR的执行单位是程序集(Assembly)。其是由一个或多个托管模块(编译后扩展为 .netModule 文件)组成。一个托管模块由PE头,CLR头,元数据,IL组成。 元数据的存在使期有了自描述的特性,使得在开发过程中可以使用智能感知,也使得程序的运行尽可能的摆脱了注册表。加载CLR1,windows 检查 程序集 的PE头,决定用哪个版本的.NET,在进程里加载MSCoreEE.dll ,并执行某个方法运行CLR。2,将程序集加载,执行其入口方法Main。执行程序集的过程:1,完成方法的前置操作。如果是第一次执行,则将当前方法内部需要用到的方法等进行即时编译成本机CPU指令。2 、执行方 阅读全文

一线开发读CLR --- 写在最前面

2013-02-25 10:29 by 秋日愚夫, 167 阅读, 0 推荐, 收藏, 编辑
摘要:CLR via C#(第3版)这本书是很有量的。第一章前20页的内容,让我读了半天,思考了三天左右。面对这样一本.NET 开发人员必读的很有深度的书。如果每一个知识点都去死抠,老韩我玩不起。所以读此书的方法,遇到当前最契合的知识点重点读,迭代的读。同样本系列Blogs也是采用迭代的方式编写。第一遍读,先读最常用,最契合当前工作需求的内容。在迭代读的过程中,后一次迭代会补充或修改前一次读的认识。 阅读全文

弱类型语言的优势:C#的委托概念在Javascript中的实现

2012-11-01 10:37 by 秋日愚夫, 382 阅读, 0 推荐, 收藏, 编辑
摘要:先看委托的定义:用于声明一个引用类型,该引用类型可用于封装命名方法或匿名方法。委托类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。通过下面的方式进行定义 一个参数为string 型,无返回值的 委托publicdelegatevoid OnAction(string para);//使用public class TestClass{ static void Main(string [] args) { OnAction mydelegate = new OnAction(TestFunctionOne ); mydelegate("Hello delegate" 阅读全文

Javascript用闭包实现领域建模

2012-10-17 09:43 by 秋日愚夫, 282 阅读, 0 推荐, 收藏, 编辑
摘要:开篇,因工作试用期中需要做个javascript树的练习,在此过程中发现自己此方面知识较少。于是做了点功课。了解了javascript是弱类型语言。无块级作用域。原型继承。闭包。危险的全局变量。等知识。。也渐渐喜欢上了其原型继承的方式。昨天在看一本html5+css3书的时候,看到一段关于绘制图形的javascript代码其中,有几句很有意思。var context=getContextById('dd');context.Width(100);context.Hight(200);context.MoveTo(200,200);从此可以看得出 context通过一系列方法,操 阅读全文

由第一印象引发的联想

2012-09-03 09:53 by 秋日愚夫, 165 阅读, 0 推荐, 收藏, 编辑
摘要:起因: 早上去车库推车的路上,在一个转弯处,我用余光看到一个类似汽车的交通工具,好像要冲过来。下意识的在路口停了一秒,仔细看了看,却是一辆电动车,银灰色的。。。但一秒钟之后,我仍然没有动。而是呆在路上直到电动车冲过去之后,我才敢继续走下去。因为在我第一印象中,那就是个汽车。。。是个危险的东西。分析: 为何我在确定是电动车后,仍然不敢动呢?一方面我自己胆确实小,另一方面下意识中,我把行驶速度很快的电动车也归为,汽车之类的危险物之类了。。。联想: 汽车属于危险物,急行的电动车也属于危险物,危险物是基类。 基于对事物的基类判断,做出对事物的上下文处理环境的设置。 阅读全文

不知所措的老板

2012-08-20 12:55 by 秋日愚夫, 161 阅读, 0 推荐, 收藏, 编辑
摘要:他有很多项目他有很多创意他很有个性他喜欢骂人他没啥资金最终,项目经理们都被骂走了,没有中间层的管理层,直接导致业务层(技术人员)暴露给了表示层(老板),那郁闷不是一点半点。一会让干这个,一会让干那个?麻烦您能不能别把您的浮躁传染给我们?为了更好的实现自己的职业规划(互联网产品研发经理),我也决定闪了。。。最难以舍弃的是,一起奋斗过来的兄弟们。。。哎。。 阅读全文