移动互联网(windows phone && windows 8 开发)

专著技术开发,成就美好未来
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

通过CLR与托管代码思软件开发学习

Posted on 2011-05-29 15:31  尊敬  阅读(1540)  评论(5编辑  收藏  举报

1、 .NET托管代码

现实生活中的托管,托管者只需要向被托管者发出托管请求,不需要知道被托管者怎么处理,只等待接收被托管者向托管者返回的结果。

.NET环境中托管也与此大同小异,.NET中的托管编码语言通过一个名为CLR(公共语言运行时)的“运行时”读写其他的内存或硬件资源,并利用CLR的功能(内存管理、程序集加载、安全性、异常和线程同步等),来完成编码的编译和执行。

2、 托管代码的好处

现实中托管的好处是,托管者不需要知道被托管者对此是怎么处理的,只需要等待结果。一件事情,专业的部分由专业的人去处理,这样既可以减少错误又可以大大节省时间和提高效率。

托管代码比非托管代码更容易控制,可以避免许多典型的导致不安全和不稳定程序的编程错误,例如访问内存引发的内存地址冲突,硬件资源冲突等。程序员可以花更多的精力关注程序的应用逻辑设计并可以减少代码的编写量。这样可以降低开发难度,提高软件质量。

3、 什么是CLR

CLR全称Common Language Runtime,中文翻译为“公共语言运行时”,是一个可由多种编译语言使用的“运行时”,并为面向其开发的语言提供内存管理、安全性、异常处理和线程同步等功能的服务。是实现.Net跨平台,跨语言,代码安全等核心特性的关键技术。

事实上,在运行时,CLR根本不关心开发人员使用的哪一种语言编写的源代码,只要语言编译器面向CLR。每个面向CLR的语言编译器生成的都是IL(中间语言),CLR管理它的执行。

CLR和面向其开发语言编译器的关系,就像旅行社和游客的关系,游客通过旅行社旅游,只要你符合旅行社的要求并交一定的费用,至于找车、找酒店、景点门票等都有旅行社负责,游客只需要带上自己的用品,跟着旅行社出发就可以享受旅游。

4、 学习CLR

由此看来,正是有了CLR,我们在开发软件、编写代码时,很多事情CLR都替我们做了,对于我们来说,只要关注应用逻辑和代码质量就可以啦!真的如此吗?和很多人交流他们大部分都认同这个观点,认为没有必要关注.NET底层架构,能实现满足客户需求就可以啦!哪有时间去关注这个,我不懂这个照样能开发软件。我认为这对一个想在软件开发道路上有所追求的人是不可取的,对于.NET override和overload、attribute和property、class和strut、is和as、ref和out的区别,IL代码的深入分析,垃圾回收的奥秘,string类型的解析,.NET Framework新特性的品味,关键字的深入思考,类型陷阱的剖析等等,这些看似最平常的问题心中是否一个清晰的概念,能否运用自如?如果基本概念都含含糊糊,又怎能开发出高质量的软件?

我建议那些想在软件开发的道路上走的更远的人,一定要注意基础的学习,扎实基础,运用发散。

上面是我自己对.NET托管代码、CLR技术的一些理解,以及对软件开发学习的一些感悟。欢迎批评指正,谢谢!