zoukankan      html  css  js  c++  java
  • .Net Framework简介

    1  平台简介

      .Net Framework采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多语言的开发。.Net 也为应用程序接口提供了新功能和开发工具,这个革新是的程序员可以同时进行windows应用软件和网络应用软件以及组件和服务(web 服务)的开发。

    2  .Net Framework的内容

      .Net Framework一般而言可以将其技术分为规范和实现两部分;其中实现部分包括被人所熟知的CLR(公共语言运行库)FCL(.Net 框架类库);而规范即CLI(公共语言架构)包括CTS(Common Type System--通用类型系统)CLS(Common Language Specification--公共语言规范)CIL(Common Intermediate Language--通用中间语言以前也称为的MSIL)。两者之间的关系如图2-1:

                                                                      图2-1                                                                                图2-2

    • CLR(公共语言运行库):和java虚拟机一样也是也是一个运行时环境,它负责资源管理(内存分配[类型的内存分配]和垃圾回收[GC],并保证应用和底层操作系统之间的必要分离。其核心功能包括:内存管理、程序集加载、安全性、异常处理和线程同步。
    • FCL(.Net类库):为.Net Framework两个核心组件之一。FCL集合了上千组可再利用的类、接口和值类型。BCL(Base Class Libraries)是FCL的一部分,提供了多数的基础功能,其中包括namespaces System,System.CodeDom,System.Collections,System.Diagnostics,System.Globalization,System IO,System.Resources,System.Text,和System.Text.RegularExpressions的类
    • CTS(通用类型系统):定义了如何在运行库中声明、使用和管理类型,同时也是在运行库下支持各语言之间进行交互操作。(PS:CTS定义了在MSIL中使用的预定义类型,.Net 语言将代码解释成中间语言,其原因.Net 编译器是遵循CLS[公共语言规范]实现的)。
    • CLS(公共语言规范):和通用类型系统一起确保语言的互操作型。
    • CIL(通用中间语言):是一种属于通用语言框架和.Net框架的低阶的人类可读的编程语言。

      CTS(通用类型系统)建立一个支持跨语言的集成,是不通语言编写的代码直接能够交互使用。CTS可以分为两大类:值类型和引用类型,同事两种类型之间可以进行强制转换,这种转换成为Boxing(装箱)和UnBoxing(拆箱)。从图2-2可以看出通用类型系统的基本结构,CTS的每一种类型都是对象,并继承一个基类System.Object。对于值类型和引用类型的内容将会在下篇进行解释。

    3  .Net Framework 编写应用程序的些许概念

    3.1  概念

    • JIT(Just-In-Time):将CIL编译为专用于操作系统和目标机器结构的本机代码,在需要时才会进行编译
    • 程序集:在编译期间,将CIL代码、元信息(即程序集中包含的数据的信息)、可选资源(CIL使用的其他数据,eg:图片)存储在程序集中,程序集包括可执行的应用程序(.exe)和其他应用程序的库(.dll)

    3.2 编译和运行处理

      利用.Net Framework编写的代码时,不是将代码直接创建为OS的本机代码,而是将源码编译成CIL,存储在程序集里面,在执行代码时必须使用JIT编译器将代码编译为本机代码,最后在托管的CLR环境下运行本机代码,以及其他应用程序,并且在CLR管理正在执行的用.NetFramework编写的代码,这个执行代码的阶段通常被称为运行时(Runtime)。编译过程如图3-1所示

    图3-1

    PS:

      第一次写博客,还真是挺累人的。若有什么错误请指正,倘若觉得不错请点击下推荐,谢谢。

      参考文献

      百度百科

      微软中国社区

      《C#入门经典》

      《你必须知道的.Net》

  • 相关阅读:
    POJ 1077 Eight(单向搜索)
    HDU 1943 Ball bearings(简单数学问题)
    POJ 2632 Crashing Robots(水模拟)
    HDU 1047 Integer Inquiry(高精度加法)
    POJ 1068 Parencodings(模拟)
    [转]修改 ibatis 分页机制(ORACLE物理分页)
    实现判断机器大小端的两种方法
    linux环境下库的制作和升级
    fork函数的理解1
    如何求一个文件的行数?
  • 原文地址:https://www.cnblogs.com/luge/p/CSharp_NetFramework_Brief.html
Copyright © 2011-2022 走看看