好久没写博客了,最近心情比较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. 窗体的扩展样式GWL_EXSTYLE用于SetWindowLong

    SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT or WS_EX_ ...

  2. poj1316

    Self Numbers Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20864   Accepted: 11709 De ...

  3. jsxtransformer.js 和browser.js有什么关系?

    这个确实是百度就能解决的问题 补充下楼上的回答在react 0.14前,浏览器端实现对jsx的编译依赖jsxtransformer.js 在react 0.14后,这个依赖的库改为browser.js ...

  4. Twitter 新一代流处理利器——Heron 论文笔记之Heron架构

    Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...

  5. C#复制数据库,将数据库数据转到还有一个数据库

    本文章以一个表为例,要转多个表则可将DataSet关联多个表.以下给出完整代码.包含引用以及main函数与复制函数. 要说明的是,必须先用Sql语句复制表结构,才干顺利的使用下面代码复制数据. usi ...

  6. mybatisnet轻量级ORM框架

    https://code.google.com/p/mybatisnet/source/checkout http://blog.csdn.net/arvinstudy/article/details ...

  7. Visual Studio使用技巧

    编程部分: 1.TODO:书签 打开之后返回上次工作的位置.让我们不再用脑子去记忆,去回顾刚刚工作到的部分. 操作非常easy.例如以下代码所看到的: public DataTable SelectB ...

  8. CSS或者JS实现鼠标悬停显示另一元素

    想达到鼠标悬停到元素a上,显示另一个元素b,可以通过css实现也可以通过js实现.js:写两个函数:mouseenter,mouseleave,例如:其中 $("#a").mous ...

  9. asp.net textbox控件基础

    asp.net有两种控件,一种是html控件,一种是asp控件,在说textbox控件之前,先看看按钮的两个命令oncommand和onclick.每次点击按钮后,都会提交命令,但是程序会首先执行Pa ...

  10. ASP.NET动态引用WebService接口

    尊重原著作:本文转载自http://www.mhzg.net/a/20124/20124912180589.html 有经验的朋友都知道,通常我们在引用webservice的时候,是在项目中就添加了引 ...