第一章 .NET之道

      本章为本书其余部分建立一个概念性的框架,由.net之前的各种技术的局限性和复杂性开始,然后综述了.net和c#是如何简化这一状况的. .NET从根本上来说就是一个运行库执行引擎(mscoree.dll)和基类库(mscorilib.dll等).

    1.1 .NET之前的世界

      1.1.1  c/Win32程序员的生活:使用原始的API构造应用程序是一项非常复杂的工作,c作为一个简练的语言,不得不面对手动内存管理,指针运算等等。而且c不具备对象开发的优点。难以想象....这些前辈们真是太强了,我们真是太幸福了,一切都是对象,呵呵。

    1.1.2  c++/MFC程序员的生活:c++虽然相对c加入了面向对象的特性,但是仍然需要手动管理内存,指针运算等等,头也很大啊。虽然MFC包装了很多底层的操作,不过用C++搞开发仍然很复杂。

    1.1.3  Visual Basic 6.0程序员的生活:相对上面两类兄弟,VB6的兄弟日子好过多了,因为VB6通过提供一些集成代码向导,内置数据类型,类和VB专用函数把原始Win32 API的复杂性隐藏了起来。不过VB6并不是完全的面向对象语言,他只是支持对象而已,和我喜欢的javascript一样啊.

       1.1.4  Java/J2EE程序员的生活:Java是一门非常强大的语言,不只是他的平台无关性,而且现在搞java的兄弟找工作也很容易啊,haha。但是java也有一个很大的不足,就是他不支持与其他语言的交互性,因为这有悖java的宗旨:用唯一语言搞定一切。不得不说:发明java这哥们也太自大了点.....

       1.1.5  COM开发人员的生活:COM是微软的前一个应用程序开发框架,克服了语言无关性等前些框架的缺点.但是他的语言无关性是有限制的,不支持继承...。他还有一个优点就是位置透明性.  COM是很成功的,但还是太复杂了.

   1.2  .NET解决方案

       -> 对已有代码具有完全的互操作性.

   -> 完全的语言集成.

       -> 所有支持.net的语言共享的公共运行时引擎.

       -> 全面的基类库.

       -> 不关注COM底层操作.

       -> 真正简化的部署模型.

   1.3 .NET平台构造块

      .Net有三个关键实体:CLR,CTS,CLS。从程序员的角度看,.NET可以理解为一个运行库环境和一全面的基类库。

   1.3.1 基类库的作用:封装了各种基本类型,还支持在实际应用中的一些服务。

     1.3.2 C#的优点:

    -> 不需要指针.

           -> 垃圾收集器自动管理内存.

           -> 类 接口  枚举  结构  委托都有正式的语法结构.

           -> 可以重载运算符为自定义类型.

           -> 支持特性的编程.

           -> 支持泛型.

           -> 支持匿名方法.

       -> 简化委托/事件模型,包括协变  逆变以及方法组的转换.

    -> 支持partial关键字创建类型.

    -> 支持强类型的查询.

    -> 支持匿名类型.

    -> 支持匿名方法.

    -> 支持扩展方法.

    -> 包含了Lambda运算符(=>).

           -> 新的对象初始化语法.

  1.4  .NET程序集概览

         这里提醒大家,不管你选用何种选编程,他们最后都会编译成CIL。.Net程序集不同于COM(虽然他们的扩展名一样),但是.Net程序集里面包含CIL和元数据.

    .Net程序集可以是单文件程序集,也可以是多文件程序集,在多文件程序集里面有很多的模块.

       1.4.1  CIL的作用:CIL是一种和平台无关的语言.

           ->CIL可以实现语言集成性,因为任何.Net的编译器最后都生成CIL.

       ->CIL可以用JIT编译成平台相关性的代码,而且实现了平台优化.

   1.4.2  .NET元数据的作用:.Net程序集除了包括CIL外还包含了元数据.元数据描述了一个二进制文件里面的定义的类型及其成员,让大家兴奋的是元数据的生产是编译器的工作,大家只需要用就可以了...罗嗦一句,元数据太重要了,开发工具里面的智能感知和各种对象浏览器,调试工具以及C#编译器都在使用元数据.他是.Net许多技术的支柱,包括WCF,XML Web服务/远程处理层,反射,晚期绑定和对象序列化.

     1.4.3 程序集清单的作用:他其实就是描述程序集自身的元数据.

    1.5 CTS

    在.Net里面,类型是一个一般性的术语,他指的是集合{类,接口,结构,枚举,委托}里的任意一个成员.CTS是一个正式的规范,他规定了类型必须如何才能CLR承载.

           CTS类型成员:类型成员是集合{构造函数,终结器,静态构造函数,嵌套类型,运算符,方法,属性,索引器,字段,只读字段,常量,事件}中的元素之一.

转载于:https://www.cnblogs.com/weibowen/archive/2010/07/24/1784255.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值