第一章:.Net体系架构

基础理论:



1、首先要了解,C#语言并不能独立使用,必须结合.NetFrameWork一起考虑。

2、C#就其本身来看只是一种开发语言,尽管它是用来生成.Net环境的代码,但它本身并不是.Net的一部分,.Net支持的一些特性,C#并不支持。相反,C#语言支持的一些特性,.Net也不支持(如运算符的重载)。

3、NetFrameWork核心是运行库的执行环境,称为公共语言运行库(CLR)或叫.Net运行库,将在CLR控制下运行的代码称之为托管代码。

4、在CLR运行编写好的源码之前需要先进行代码编译,编译分为两个阶段:

(1):将源代码(C#,VB,f#)编译为Microsoft中间语言IL

(2):CLR将IL编译为平台专用代码



IL中间语言和Java字节码共享一种理念:都是低级语言,使用数字代码,而不是文本代码,并且可以快速的转换为本地机器码。对代码而言,这种通用语法提供了很重要的优点:

1、平台无关性

这意味着包含字节码指令的同一文件可以放在任意平台中。(.Net的平台无关性目前只是停留在理论范畴,并没有完整实现。不过现在已经有.Net部分跨平台实现,例如Mono项目、通过Xamarin也可以在Android和Ios中使用C#)

2、性能提升

这里暂且用Java字节码和IL做比较,IL总是即时编译,而Java字节码常常是解释性的,在运行应用程序时,把Java字节码转换为内部可执行代码的过程会导致性能的损失。

3、编译运行速度快

IL是即时编译,又叫JIT编译(只编译调用部份的代码,编译一次过后,得到的本地可执行程序就存储起来,下次运行时就不用再次编译),这个过程要比一开始就编译整个应用程序的代码效率高。还有一点是因为编译过程的最后一部分是在运行时进行的,JIT编译器会准确的知道程序运行在什么处理器上,可以利用处理器提供的一些特性或者一些机器指令来优化最后的可执行代码。传统的编译器是在发布之前编译为本地机器可执行代码,所以无法针对特定处理器做代码优化,这也解释了为什么托管IL代码和本地机器代码的执行速度一样快。



未完待续...

时间: 2024-08-08 22:07:11

第一章:.Net体系架构的相关文章

高性能mysql第一章——架构

第一章 架构 1.1 mysql逻辑架构 mysql服务器逻辑架构图如上图所示. 第一层为连接/线程处理层.每个客户端连接mysql服务器,都会拥有一个线程.服务器会缓存线程,因此无需为每一个连接新建或释放线程.mysql5.5以上的版本还提供了线程池,可以用少量线程服务大量连接.当客户端连接到服务器时,服务器需要对其认证,根据用户名主机名密码等信息,确定客户端是否有查询/更新某个数据库内某张表的权限. 第二层为mysql的核心服务功能层.包括查询解析.分析.优化.缓存以及所有内置函数(日期.时

第一章 MYSQL的架构和历史

在读第一章的过程中,整理出来了一些重要的概念. 锁粒度  表锁(服务器实现,忽略存储引擎). 行锁(存储引擎实现,服务器没有实现). 事务的ACID概念 原子性(要么全部成功,要么全部回滚). 一致性(从一个一致性状态转换到另外一个一致性状态). 隔离性(一个事务所做的修改在提交前,对其他事务是不可见的). 持久性(一旦事务提交,所有修改都会永久保存到数据库中). 四种隔离级别 READ UNCOMMITTED(未提交读): 事务即使没有提交,所做的修改对其他事务是可见的.  也称脏读. REA

第一章 Android体系与系统架构

1. Dalvik 和 ART(Android Runtime) 在Dalvik中应用好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用.在ART中应用好比是一辆组装好了的自行车,装好就可以骑了. 2. Android源码目录结构:(一个可以查看Android源代码网站:http://androidxref.com/) Makefile (描述Android各个组件间的联系并指导它们进行自动化编译) bionic (bionic C库) bootable (启动引导相关代码)

Biztalk学习第一章(整体架构)

Biztalk运行时的结构 BizTalk Server 本质上就是消息处理引擎.个人认为在了解Biztalk之前必须要知道的一部分便是BizTalk Server 的整体架构,只有对架构烂熟于心这样才能为往下深入学习做好基础. 首先来看一下Biztalk的整体架构图 如上图所示,完整的绘制了Biztalk在接受端口接收到文件后整个处理文件的过程. 接下来分开叙述:(参照微软官方文档) 接收端口和接收位置 "接收端口"是一个或多个接收位置的集合,是BizTalk Server 的特定入

《Go语言网络编程》第一章:体系

原书地址:http://tumregels.github.io/Network-Programming-with-Go 如果不知道想要构建什么,是不可能创建一个系统的.而且如果不知道它工作的环境,也同样无法构建. GUI程序不同于批处理程序:游戏程序不同于商业程序:分布式程序不同于单机程序. 他们都有自己的方法.一般模式和问题,都有各自的常见问题和常见解决方案. 本章讨论分布式系统高层架构层面的一些内容.有多种方式看待这样的系统,而且其中的许多问题已经被解决. 协议层 分布式系统很难!其中涉及到

第一章 微服务架构实践

等写完所有的代码后,会在这里给出整个项目的一个总览图. 技术介绍: 服务注册和服务发现:consul 配置管理:consul 集群容错:hystrix 计数监控:metrics 服务路由: 负载均衡: 服务通信:retrofit.okhttp ......

《淘宝技术这十年》读书笔记——第一章 第二章

引言 ? ? 这本书的作者是子柳先生,子柳本名赵超,2004年加入淘宝网.历任开发工程师.项目经理.产品经理.测试经理,2009年随着淘宝系统的大规模重构和人才的迅速扩张,创办了"淘宝技术大学",因培养内外部工程师众多,人称"校长". ? ? 之所以读这本书,主要想了解淘宝的技术/业务发展过程中遇到过哪些问题,以及他们怎么解决的.在阅读的过程中有很多不懂的地方,主要是知识面确实涵盖的太广,就当拓展视野吧. ? ? 第一章 ? ? 淘宝架构初版 ? ? 淘宝的第一版源

读《大型网站技术架构:核心原理与案例分析》第一章:大型网站架构演化

写在前面 从开始写代码到现在,已经做了好几个项目了,BS和CS的都有,一直都以一个码农自居.但,作为一个进步的程序员,都有一个成为架构师的理想.于是,在平时的工作中,也积极的去看各种书籍,看园子里面的精品文章.希望,在这条追逐梦想的道路上,能够留下点点滴滴,也算是对知识的一种巩固,一些分享. 读书感受   快下班的时候,看了该书的第一章.算是对网站的架构演化有了一些认识. (1)初始网站的架构:一台服务器,应用程序,数据库,文件都在一台服务器上面.LMAP足矣. (2) 二级网站的架构:应用服务

框架体系对小软件作坊的 重要性 第一章

从软件行业兴起,到如今年代虽然不长,但是随着语言的发展,从需求-->编写-->成型,已经不在是难事. 甚至一台电脑,一套编程软件,就可以玩转整个软件流程. 入行许久,对于软件企业来说,人员更新换代是司空见惯的事.没有什么能从根本上解决这个问题.只能通过尽可能的满足员工的需求,来减少人员的流失. 对于软件作坊,甚至是小型的企业,由于各种配套管理措施的不健全,人员流失的问题显现的尤为明显,名副其实的重灾区.人才的流通趋势呈倒金字塔. 长久以来,对于求职者来说,找工作看的就是福利待遇.有了一定的能力

ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity Framework的背景信息,然后再详细学习如何搭建开发环境. 1.1 MVC和ASP.NET MVC 这本书涵盖Microsoft版本的MVC,即ASP.NET MVC.在写本书的时候,ASP.NET MVC的生产版本为MVC5,因此,本书的示例代码都使用ASP.NET MVC 5编写.在本书中