好久没写博客了,最近心情比较low,不知道为什么。很流行的一个问题叫做:如果你明天就挂了,那么你最后悔的事情将会是什么。我想了两个月,答案是不知道,无所谓。这样不好,那这个问题先放一边吧,我们开始这一篇随笔。

  在学习计划中也说过,C#用四本书学习——C#编程入门,高级编程,CLR via C#,Pro C# 5.0 and the .NET 4.5 Framework。目前看的是第一本,事实上以前看过这一本,但是在有了一定的编程经验后回头重看,观感就完全不一样了。下面是第一章的学习笔记。

  1..NET Framework是Microsoft为开发应用程序创建的平台。

  2.可以运行在各个操作系统:Windows、Linux、Mac OS等。

  3.可以使用它创建多种应用程序:Windows应用、Web应用、Web服务等。

  4.可以使用它创建多平台应用。

  5.可以用于多种语言:C#、VB、C++、JScript等。

  6..NET平台主要包含一个代码库,库按照模块划分,通过OOP的方式使用。

  7.类型是数据的一种表达方式,基础类型保证了跨语言交互。

  8.通用类型系统-Common Type System-CTS,指的就是6中的代码库。

  9..NET平台同时包含公共语言运行库,Common Language Runtime CLR,管理开发的所有应用程序的执行。

  10.使用.NET编写代码就是使用它的大码裤编写代码。

  11.执行C#代码,必须把他们转换为目标操作系统理解的语言-本机代码-native code。

  12.11中的转换成为编译代码,由编译器执行。.NET Framework下包括两个阶段。

  13.编译使用.NET Framework库的代码,包括两个阶段:第一,由IDE编译为通用中间语言-Common Itermediate Language-CIL代码;第二,JIT(Just-In-Time)编译器将CIL编译为专用于OS和目标机器结构的本机代码,CIL代码尽在需要时才被JIT编译器编译为本机代码。

  14.CIL代码独立于计算机、操作系统和CPU-平台无关;JIT是跟操作系统和CPU有关的。

  15.Microsoft Intermediate Language-MSIL或IL等效视为CIL。

  16.所创建的CIL代码存储在一个程序集中,程序集包括可执行的应用程序*.exe文件和应用程序使用的库*.dll;同时包括元信息和可选资源。

  17.元信息允许程序集完全自描述,也就是说不需要其他信息就可以使用程序集(系统注册表什么的)。

  18.全局程序集缓存-Global Assembly Cache-GAC,可重用代码存放的地方,供所有应用程序访问。

  19.代码编译为CIL,再被JIT编译为native code后,CLR会管理正在执行的用.NET Framework编写的代码。

  20.执行代码的阶段称为运行时,runtime。

  21.CLR管理应用程序的方式是:管理内存,处理安全性,跨语言调试等等。

  22.C#只能编写在托管环境下运行的代码,C++可以编写非托管类型的应用程序。

  23.CLR的托管功能可以使.NET自己与操作系统进行交互。

  24.垃圾回收Garbage Collection是托管代码最重要的功能,自动释放应用程序中不再使用的内存,回收内存的时间不定。

  25.总流程大致为,.NET兼容的语言进行编程,编译为CIL存储在程序集,执行是JIT编译器编译为本机代码,Runtime阶段在托管的CLR环境运行本机代码。

  26.一个应用程序的代码位于多个源代码文件中,编译到一个程序集,这个过程称为链接Linking,这是25中第一步到第二步里可以发生的事。

  27.C#是一种类型安全的语言:类型之间的转换有严格的规则。

  28.ASP.NET-Active Server Pages.NET-.NET下能动态生成Web内容的系统。

  29.Active Data Objects.NET-ADO.NET数据库访问模块。

  30.C#的LINQ-Language Integrated Query。

  总的来说,上面记录的东西都是我理解的内容,目前里面类型安全这个地方可能要在看看书。那么.NET 包括CTS和CLR,创建.NET应用程序包括四个步骤,见第25条,其余再说。

1.对于.NET的初步理解和介绍的更多相关文章

  1. 8.对于.NET的初步理解和介绍

    好久没写博客了,最近心情比较low,不知道为什么.很流行的一个问题叫做:如果你明天就挂了,那么你最后悔的事情将会是什么.我想了两个月,答案是不知道,无所谓.这样不好,那这个问题先放一边吧,我们开始这一 ...

  2. Spring学习笔记--环境搭建和初步理解IOC

    Spring框架是一个轻量级的框架,不依赖容器就能够运行,像重量级的框架EJB框架就必须运行在JBoss等支持EJB的容器中,核心思想是IOC,AOP,Spring能够协同Struts,hiberna ...

  3. 初步理解require.js模块化编程

    初步理解require.js模块化编程 一.Javascript模块化编程 目前,通行的Javascript模块规范共有两种:CommonJS和AMD. 1.commonjs 2009年,美国程序员R ...

  4. javascript 原型及原型链的初步理解

    最近折腾了好久,终于是把js里面的原型和原型链做了个初步的理解: 在这里,我打个比喻: 我(child),我妈constructor(构造函数)生了我:别人问我老妈跟谁生的我,于是此时我妈会指向我爸爸 ...

  5. Graph Cuts初步理解

    一些知识点的初步理解_8(Graph Cuts,ing...) Graph cuts是一种十分有用和流行的能量优化算法,在计算机视觉领域普遍应用于前背景分割(Image segmentation).立 ...

  6. 非常易于理解‘类'与'对象’ 间 属性 引用关系,暨《Python 中的引用和类属性的初步理解》读后感

    关键字:名称,名称空间,引用,指针,指针类型的指针(即指向指针的指针) 我读完后的理解总结: 1. 我们知道,python中的变量的赋值操作,变量其实就是一个名称name,赋值就是将name引用到一个 ...

  7. springBoot(1)---springboot初步理解

    springboot初步理解 在没有用SpringBoot之前,我们用spring和springMVC框架,但是你要做很多比如: (1)配置web.xml,加载spring和spring mvc 2) ...

  8. Mysql加锁过程详解(7)-初步理解MySQL的gap锁

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

  9. 关于THINKPHP5模型关联的初步理解

    初步理解的意思是,使用最常用的关联模型,然后可以正常运行 还是打个比方 文章表  和文章分类表 一个文章分类可以有多个文章  所以  文章分类模型和文章建立 hasMany的关联 而文章和文章分类表则 ...

随机推荐

  1. eclipse中调出android sdk manager和android virtual device manager图标

    有时候在安装ADT插件后,eclipse菜单栏上不会显示android sdk manager和android virtual device manager两个图标, 这个时候,如果安装ADT插件的步 ...

  2. 论山寨手机与Android联姻的技术基础 【序】

    山寨手机的兴起,离不开 MTK(联发科).MTK为手机制造提供了一揽子解决方案,其中既包括硬件,也包括软件.软件方面最重要的,是操作系统.MTK方案的软件的稳定性非常高,一方面是因为其硬件系统变化不大 ...

  3. 有趣的keil MDK细节

    1.MDK中的char类型的取值范围是? 在MDK中,默认情况下,char 类型的数据项是无符号的,所以它的取值范围是0-255.它们可以显式地声明为signed char 或 unsigned.因此 ...

  4. 有关UNICODE、ANSI字符集和相关字符串操作

    Q UNICODE字符串如何显示 A 如果程序定义了_UNICODE宏直接用 WCHAR *str=L"unicodestring"; TextOut(0,0,str); 否则就需 ...

  5. JVM(Java虚拟机)优化大全和案例实战

    堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space. Permanent 即 持久代(Permanent Generation),主要存放的是Java类定 ...

  6. C# DataTable转实体 通用方法【转】

    public static T GetEntity<T>(DataTable table) where T : new()    {        T entity = new T();  ...

  7. SQLServer与Oracle的对照

        近期去铁科院面试,项目组长问了我这样一下问题:SQLServer与Oracle的差别是什么?从进入软件行业.从開始CS的编码到BS的编码过程中使用的都是SQLServer.在半年前開始敲DRP ...

  8. 图片裁剪:CropZoom插件

    上传个人头像的功能:用户在上传自己的照片后,由于照片尺寸不符合网站的要求,要求用户对照片进行裁剪,最终根据用户裁剪的尺寸生成头像. 用户可以对上传的图片进行自由缩放.裁剪,使之符合彩信图片的大小. C ...

  9. SSH框架整合 日志处理Spring结合 log4j、slf4j

    1. 加入log4j和slf4j的jar包 2. web.xml: <context-param> <!--log4j配置地址 --> <param-name>lo ...

  10. QF——OC字符串

    OC中的字符串: C中没有字符串类型,用字符数组和指针代替. OC中引入了字符串类型,它包括NSString 和 NSMutableString两种 NSString是不可变的,已经初始化便不能更改: ...