CLR via C#

学习C#可以看三本书: 1. C#入门经典 2. C#高级编程 3. CLR via C#, 内容由浅入深
CLR via C#, 是讲.NET framework的common language runtime  (CLR) 的书籍,讲.net framework的CTS的书籍,搞.net开发的,应该看一看,使用CLR,可以实现不同语言之间的源程序之间相互调用。

1.  通过编译器/CLR选项,就可以将c#,C/C++,VB的代码翻译为CLR的manage module中间代码,当安装程序时,就可以将中间代码翻译为native code,就可以运行了。

2. CLS- common language specification
    Fortan, C#,VB都实现了CLR
3. 第二章介绍一些关于assembly, Metadata, Combing Modules to Form an Assembly等东西
   这章就是介绍how to build modules and how to combine those modules into an assembly.
4. CLR是什么呢?上次讲到运行在.NET Framework中的代码叫做managed code,反之叫做unmanaged code。相比unmanaged code,managed code 有很多好处,比如可以用多种编程语言编写、提高安全性、易于版本控制和程序发布等等。

这些都是由CLR提供的。但也有一些不利点,最容易想到的就是代码运行速度问题了。

要为managed code提供以上功能,CLR是什么呢?必须知道代码中的数据类型、类和与她有关连的assembly的定义。这些信息叫做metadata,而metadata就包含在代码中的某个部分(编译后)。CLR利用这个metadata加载代码段、管理内存、执行方法调用等操作。

.NET出来以前,在不同编程语言之间共享原代码,简直是不可能的事情。因为每个编程语言定义的数据类型不同,而且语法也不同。微软大师们想到了把数据类型统一的好办法。这个技术叫CTS(common type system)。现在做项目开发就比较简单了(用不同语言),比如一个项目组里有会用VB的,会用C++的。

可能以前的方法是把两个人之间互相调用的功能写成DLL或COM。但现在不用这么麻烦了,你直接就可以使用其他语言编写的代码了。具体一点,用VB.NET可以继承C++.NET写的类,反过来也是可以的。

我们安装软件的时候常碰到这样的提示 - 系统中的组件比要安装的组件的新,你要替换还是保留?是不是很讨厌?!现在开始你就用.NET吧,她不会因为这个“小”问题而打扰你了。

因为每个代码都包含与她相关的metadata,CLR会根据这个信息来管理代码的不同版本。而且因为不用把代码的信息注册到注册表,所以可以用X-COPY的方式安装代码(就是简单的拷贝粘贴了)。

是用VB做好呢?还是用C++做好呢?这些问题是我们做项目的时候常要考虑的问题。但在.NET用什么编程语言已经变得不重要了(但还是有一定的差别,在特定项目中),因为CLR提供CTS(还有base class library),而且都运行在CLR上面。

在.NET中VB,C++等语言都有了相当多的提高,而且有了新的语言C#。C#已经申请了标准而且通过,可想而知她的POWE了。大家知道borland也发布了相关的开发工具C# builder。

关于CLR是什么做个小结

1、.NET代码都包含与自己相关的信息叫做metadata。

2、 CLR提供CTS(CLS也有功劳),所以可以在不同编程语言之间共享原代码。

3、 用metadata管理代码信息(不是利用注册表),所以代码易于安装。

4、 使用统一的数据类型和类库,所以编程语言的选择变得不重要了,而且易于团队开发。

2013.1.16
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值