.NET简谈平台大局观
在很久以前,我刚开始接触.NET的时候,总是搞不清楚.NET与VisualStudio之间的关系,我开发的东西是怎么样层层流转最终形成可执行文件的;这样的疑惑一直困扰着我,我想也困扰着许许多多刚接触.NET的开人员;尽管在学校的学生学过编译原理、操作系统等等计算机原理方面的理论知识;但是就是无法将这股力量用到实实在在的理解上;下面本人就简谈一下.NET中的主要核心东西:高级语言(C#,VB.NET,J#等)、编译器、CLR引擎、VisualStudio系列工具等等之间是如何协调工作的,这样的理解有利于我们自己在开发软件项目的时候可以借鉴一下好的思想(如:文档对象模型、脚本引擎等等),好的实现方式,这里不存在具体的设计模式,这篇文章所讲的类容以具体的模块划分如何协调工作为主,针对初学者而言;
.NetFramwork是一个技术框架的统称,在这个框架里面是一系列为了实现软件开发而具有的所有支撑;
1:
这个图很简单没有给出复杂的部件,说明意思就行;在最上层就是我们直接使用的高级语言,有C#、VB等,但是这些语言各不相同,要想让CLR引擎去执行,必须遵守一致的预定,就是微软中间语言,微软中间语言已经成为ISO公开标准,以后会有越来越多的第三方的语言可以在.NET平台开发软件了;各个语言是有不同厂商开发的,所以必须提供语言的编译器,通过编译器将高级代码编译成标准的微软中间代码,CLR只认识中间代码(更确切的说应该是JIT认识);CLR加载中间代码并且调用及时编译器将其编译成本地代码,这样才能做到跨平台的作用;每个电脑的配置上不同的,CPU结构、内存结构等等都不一样,所以用IL语言传递,最终运行的时候再编译成本地代码;在具体的东西已经超出本章的范围;
整个的实现过程大致是这样的,我们来介绍VisualStudio工具是干嘛的,在没有开发工具之前程序员都是在黑屏上编码的,工具是一些前辈门用心血编写出来的软件,让我们能在这个工具上开发;那工具在整个过程中扮演着什么角色呢?
2:
工具本身的作用就是减轻我们程序员的编码工作,大大提高了开发效率;以可视化的方式展现复杂的处理过程,这就是IDE集成开发环境;初学者在刚开始学习.NET的时候,可能会被工具迷惑,以为VisualStudio工具就是装了.NET框架,希望通过本文章能帮助你理清头绪;