读《C#高级编程》第1章 .Net机构体系笔记
网红的话:爸爸说我将来会是一个牛逼的程序员,因为我有一个梦,虽然脑壳笨但是做事情很能坚持。
本章主要是了解.Net的结构,都是一些概念,,并没有可操作的代码。但是这些概念有联系,但深刻理解必须要有全局思维和实践基础。 目录: C#与.Net的关系 公共语言运行库(CLR) 中间语言 程序集 .NET Framework类 名称空间(命名空间):避免类名冲突的一种方式。 用C#创建.Net应用程序(介绍一堆产品概念) C#在.Net企业体系结构中的重用(介绍.Net的优势:组件冲突少、快速访问数据库、多功能的基类、易编写窗体界面)
1、什么是C#? C#(读作:C sharp)只是一种面向对象语言,用于生成面向.Net环境的代码,它本身不是.Net的一部分。.Net支持的一些特性,C#并不支持。而C#语言支持的另一种特性,.Net却不支持。 注意:要求紧急和高性能时,C或C++这些接近机械码的语言更适用。 2、什么是.Net? 网友说: dotNet=.net 他是一个框架,一个开发运行环境。 .net 包括 asp.net c#.net vb.net ado.net 等一系列桌面、web编程、数据库技术。 要学好.net 首先你要搞清楚.net体系各个运行环境\技术之间的关系。 然后你搞清楚你自己的学习方向和技术偏向。 .NET就是微软的用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷性的技术。对技术人员,想真正了解什么是.NET,必须先了解.NET技术出现的原因和它想解决的问题,必须先了解为什么他们需要XML,Web Services 和 SOA。技术人员一般将微软看成一个平台厂商。微软搭建技术平台,而技术人员在这个技术平台之上创建应用系统。 从这个角度,.NET也可以如下来定义:.NET是微软的新一代技术平台,为敏捷商务构建互联互通的应用系统,这些系统是基于标准的,联通的,适应变化的,稳定的和高性能的。从技术的角度,一个.NET应用是一个运行于.NET Framework之上的应用程序。(更精确的说,一个.NET应用是一个使用.NET Framework类库来编写,并运行于公共语言运行时 Common Language Runtime之上的应用程序。)如果一个应用程序跟.NET Framework无关,它就不能叫做.NET程序。比如,仅仅使用了XML并不就是.NET应用,仅仅使用SOAP SDK调用一个Web Service也不是.NET应用。
2公共语言运行库是啥? (CLR,Common Language Runtime)和Java虚拟机一样也是一个运行时环境,是一个可由多种编程语言使用的运行环境。CLR的核心功能包括:内存管理(如垃圾回收)、程序集加载、安全性、异常处理和线程同步,可由面向CLR的所有语言使用。并保证应用和底层操作系统之间必要的分离。CLR是.NET Framework的主要执行引擎。 优点:平台无关性(理论上)、提高性能、语言的互操作性。 通常将CLR控制下运行的代码叫做托管代码。 3、什么是中间语言? IL是.NET框架中中间语言(Intermediate Language)的缩写。使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言IL的代码。特性:平台无关性、高性能、语言的互操作性。 4.什么是程序集 程序集是.Net应用程序的部署单元。.Net应用程序包含一个或多个程序集。通常扩展名是exe或dll的.Net可执行程序称为程序集。程序集与本地dll或exe的区别:它们的扩展名虽然相同,但是.Net程序集包含元数据,这些元数据描述了程序集中定义的所有类型及其成员的信息,即方法、属性、事件、字段。 元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。
5什么是.NET Framework类 .Net基类似一个丰富的托管代码类集合,它可以完成以前用于WindowAPI来完成的绝大多数任务,它沿用中间语言的对象模型,基于单一继承性。可以使用任何使用的.Net基类实例化对象,也可以从他们派生出自己的类。
6 API是什么? 应用程序接口是一组数量上千、极其复杂的函数和副程序,可让程序员做很多任务作,譬如"读取文件"、"显示菜单"、"在视窗中显示网页"等等。操作系统的API可用来分配存储器或读取文件。许多系统应用程序借由API接口来实现,像是图形系统、数据库、网络Web服务,甚至是联机游戏。 API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口,故而是一种抽象。