自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (3)
  • 收藏
  • 关注

翻译 .NET Reflection optimization 反射优化

原文地址:http://www.codeproject.com/Articles/503527/Reflection-optimization-techniques 简介 反射是 Microsoft .NET framework 中非常强大的特性,它在 System.Reflection 命名空间中提供了一整套在运行时动态载入/处理程序集的 API。 反射 (Reflection) 如此强大

2013-05-30 16:01:45 1765

翻译 .NET 调用 Win32 API

原文地址:http://www.codeproject.com/Articles/9714/Win32-API-C-to-NET .NET 调用 API 声明格式 VB.NET Declare Function Lib () As ' Example: Declare Function FormatMessage Lib "kernel32" Alias "FormatMessag

2013-05-29 10:34:21 1057

翻译 CLR via C# 读书笔记目录

一口气写了CLR via C# 两章的笔记,有些内容自己也似懂非懂,有些则觉得很好很强大,所以趁此机会作个目录同时为每篇文章打个评分:  纯理论,无聊 有参考价值,可看 有实用价值,必看 CLR via C# 读书笔记1-1: 托管模块 (Managed Modules)定义 CLR via C# 读书笔记1-2:程序集(Assemblies)定义 CLR via C# 读书笔记1-3

2013-05-24 10:33:18 828

翻译 CLR via C# 读书笔记2-7

简单的管理控制 (配置) 用户能够使用一个配置文件来控制程序的运行, CLR 会读取其中的内容来调整定位/载入程序集的策略。 这些配置文件以 XML 格式书写,并与某个程序/机器进行关联。使用一个独立的配置文件(而不是注册表)使得这些设定能够更容易的分发。这里先举个实际应用的例子: 计划配布的产品目录: AppDir directory (产品根目录) |- Program.exe |-

2013-05-24 09:43:02 730

翻译 CLR via C# 读书笔记2-6

Culture 程序集包含有 culture 信息,并作为其标示的一部分,程序集能被限定为某一特定的 culture (German, US English 等等),Culture 使用一个字符串(RFC 1766)来标示。 通常一个仅包含源代码的程序集,并不包含特定的 culture 信息,所以也就不需要特别指定,这样的程序集是中性 culture (culture neutral)的。

2013-05-23 11:46:55 649

翻译 CLR via C# 读书笔记2-5

程序集的版本资源信息 使用 AL.exe 或 CSC.exe 生成的程序集都会包含一个标准 Win32 版本资源,通过查看这个文件的属性可以查看该信息,也可以在程序代码中调用System.Diagnostics.FileVersionInfo 的静态方法 GetVersionInfo 来查看。图 2-4 显示了之前生成的 MultiFileLibrary.dll 属性对话框: 可以通过设定

2013-05-23 10:15:21 759

翻译 CLR via C# 读书笔记2-4 追记

使用程序集连接器 (Assembly Linker) 除了使用 C# 编译器,你也可以使用 Assembly Linker 工具(AL.exe)来作成包含多个模块(这些模块可以是不同开发语言编译器编译的产物)的程序集。通过这种方法能够生成纯资源程序集 (术名: satellite assemblies),专门用来对应本地化。再次拿前文生成MultiFileLibrary.dll的例子来说明,这次

2013-05-22 14:29:26 713

翻译 CLR via C# 读书笔记2-4

从模块到程序集 前文的 Program.exe 不仅是一个包含元数据的 PE 文件,也是一个程序集。所谓的程序集是一个或多个包含类型定义或资源的文件的集合。程序集中的一个文件被用来存放 manifest,这个 manifest 是另一个元数据表的集合,其中包含了程序集中所有文件的名称,以及程序集的版本,culture,发布者,公有类型等信息。CLR 处理程序及时,总是首先打开这个程序集中的 ma

2013-05-22 11:15:40 930

翻译 CLR via C# 读书笔记2-3

初识元数据(Metadata) 前文已经介绍过,编译后生成的托管文件包含4 部分内容:PE32(+) 头,CLR 头,元数据以及 IL 代码。 metadata 是一块包含若干个表的二进制数据,这些标分为3 种类别: 定义表(definition tables), 参照表(reference tables) 以及 manifest 表。表 2-1 列出了一些常见的定义表: 表2-1 常见

2013-05-20 14:56:20 818

翻译 CLR via C# 读书笔记2-2

把类型编译成一个模块 先假设有这么一个简单的程序: public sealed class Program { public static void Main() { System.Console.WriteLine("Hi"); } } 该程序定义一个名为 Program 的类型,它拥有一个公有静态 (public, static) 方法 Main,该方法参照 System.

2013-05-20 13:35:00 661

翻译 CLR via C# 读书笔记2-1

.NET Framework 开发的目标 原先的Windows程序有以下3个不足: 采用的 dynamic-link libraries (DLLs) 方式在升级后经常对已有程序造成影响,被戏称为 “DLL hell”。 安装一个程序的时候总是会影响到整个系统(比如:目录,注册表,快捷方式等等),这使得一个程序并不是一个单独的个体,从而无法简便的备份该程序也无法简单地从一台电脑迁移到另一台

2013-05-13 16:18:56 599

翻译 CLR via C# 读书笔记1-9

与非托管代码的互操作 CLR 提供3种与非托管代码的交互方案: ■ 托管代码通过使用 P/Invoke 机制 来调用DLL文件中的非托管函数 许多 FCL 中定义的类型内部都有调用到 Kernel32.dll, User32.dll 等等文件中的函数。同时许多程序语言会提供托管代码调用非托管代码的简便途径,比如 C# 程序能够直接调用 从Kernel32.dll 导出的 CreateSema

2013-05-13 11:47:13 640

翻译 CLR via C# 读书笔记1-8

通用语言规范 Common Language Specification CLR 继承了多种语言,并允许不同语言之间的对象能互操作,这是因为 CLR 建立了一套类型,metadata (自描述), 以及通用运行环境的标准。 但是不同的语言之间差异还是相当大,比如有的区分大小写,有的却不;有的支持有的 unsigned 整形值, 运算符重载, 可变的参数数目等等,有的却不。 Microsoft

2013-05-10 17:06:15 800

翻译 CLR via C# 读书笔记1-7

通用类型系统 Common Type System (CTS) CLR 中的各种类型扮演了最终要的角色,它们决定了一种程序语言与另一种程序语言交互的机制。基于此点 Microsoft 建立一个规范—通用类型系统 Common Type System (CTS)—它描述了类型怎样定义及行为。 PS: Microsoft 已经向 ECMA 提交了 CTS (连同 .NET Framework 中的

2013-05-10 15:04:18 725

翻译 CLR via C# 读书笔记1-6

.NET Framework 类库 .NET Framework 类库 (FCL),以及Microsoft 提供的其他类库(Windows Azure SDK, DirectX SDK 等)都包含了许许多多的类型,帮助开发者更便捷地建立各种类型的程序集: ■ Web services ■ Web Forms/基于MVC HTML 的应用程序 (网站) ■ Windows GUI 程序

2013-05-10 14:14:30 678

翻译 CLR via C# 读书笔记1-5

本地代码生成器: NGen.exe NGen.exe 能把 IL 代码变异为本地代码,这使得在运行时 CLR 的 JIT 编译器不需要在运行时编译 IL 代码从而提高运行效率。NGen.exe 适用以下两个场景: ■ 提高程序的启动速度 ■ 降低程序的 working set (当你的程序集会被多个进程适用的时候)  NGen.exe 有这个作用的原因是它把编译后的本地代码存放在一个独立文

2013-05-10 13:36:34 705

翻译 CLR via C# 读书笔记1-4 追记

IL 的验证 IL 提升了程序的强壮性和安全性,当IL 转换成本地 CPU 指令时, CLR 会进行一个验证的处理。这个验证处理保证了 IL 代码所干的事情是安全的。比如:每个被调用方法的参数是匹配的,返回值被正确使用,函数结尾有 return 语句等等。 在 Windows 中每个进程都有其自己的虚拟地址空间,这样设计的初衷是防止一个进程错误的读写到另一个进程的内存空间而引起的安全性问题。

2013-05-10 11:25:00 746

翻译 CLR via C# 读书笔记1-4

运行程序集代码 托管程序集由 metadata 和 IL 组成,IL 是一种不依赖 CPU 的机器语言,相对大多数的 CPU 机器语言来说,它属于高级语言。它可以建立/初始化对象,调用虚拟方法,直接操作数组,甚至进行错误捕获等,你可以把它看作一种面向对象的机器语言。 IL 与其他机器语言一样可以被写成程序集语言 (assembly language),Microsoft 提供了两个工具 ILA

2013-05-07 15:10:15 665

翻译 CLR via C# 读书笔记1-3

载入 Common Language Runtime CLR 负责托管代码的执行,所以在运行的机器上必须安装有.NET Framework。可以通过在 %SystemRoot%\System32 目录中是否存在 MSCorEE.dll 文件来判断.NET Framework 是否已经安装。特殊情况同一台机器上可能安装了多个版本的.NET Framework,你可以瞧一下这两个目录: %Syst

2013-05-06 13:58:28 691

翻译 CLR via C# 读书笔记1-2

托管模块集成在程序集(Assemblies)中 CLR 实际上并不处理模块,它处理程序集。程序集是一个或多个模块/资源文件的集合,也是最小的可复用,安全性,版本化的最小单位。根据你选择的编译器,你可以生成一个或多个程序集。在 CLR 的概念中,这称之为组件(component)。 插图 1-2 将帮助你理解程序集到底是什么。托管模块和资源文件经过一个工具的处理集成为程序集,这个工具生成一个 P

2013-05-02 10:40:50 556

Windows Runtime via C#

Windows Runtime via C#

2015-05-15

Introduction to the Insides of PDF

Introduction to the Insides of PDF PDF 文件格式说明简介,附带例子

2015-01-27

When To Use Parallel-ForEach Or PLINQ.pdf

怎样选择并行处理:选择Parallel.ForEach 还是 PLINQ ?

2014-06-17

空空如也

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

TA关注的人

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