C#-1 .Net框架

本文详细介绍了.NET框架的三个主要组成部分:公共语言运行时CLR,框架类库FCL以及编程工具。CLR负责代码安全、执行和资源管理;FCL提供了丰富的类库供开发使用;编程工具包括IDE、编译器和调试器。程序编译成CIL,运行时通过JIT编译为本机代码。此外,文章还提到了托管代码、非托管代码和CLI(公共语言基础设施)的概念。
摘要由CSDN通过智能技术生成

C#教程icon-default.png?t=M4ADhttps://www.xin3721.com/eschool/CSharpxin3721/

一 .Net框架组成分为三部分:公共语言运行时CLR、框架类库FCL和编程工具

1.CLR:公共语言运行时(Common Language Runtime):

是一个运行时环境负责代码安全验证、代码执行、资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。它在操作系统的顶层,是.Net的核心组件。

2.FCL:框架类库(Framework Class Library):

提供大量应用类库,如文件操作类、集合类、线程和同步类等等,可供开发使用,BCL是FCL的子集。

3.编程工具:

编程工具涵盖了编码和调试需要的一切,包括IDE、编译器和调试器。


二 程序的编译和运行:

编译成CIL

.Net语言的编译器接受源代码文件,并生成名为程序集的输出文件。
程序集要么是可执行的,要么是DLL;
程序集里的代码不是本机代码,而是CIL(Common Intermediate Language)公共中间语言;
程序集包含的信息包括:程序的CIL,程序中使用类型的元数据,对其他程序集引用的元数据。

编译成本机代码并执行

程序的CIL直到它被调用运行时才会被编译成本机代码。在运行时,CLR执行下面的步骤:
检查程序集的安全特性;
在内存中分配空间;
把程序集中的可执行代码发送给(Just-In-Time,JIT)实时编译器,把其中的一部分编译成本机代码。


程序集中的可执行代码只在需要时有JIT编译,然后被缓存以备后来的程序使用。不被调用的代码不会被编译,被调用的代码只被编译一次。
一旦CIL被编译成本机代码,CLR就在运行时管理它,执行如释放无主内存、检查数组边界、检查参数类型和管理异常之类的任务,
由此产生几个重要术语:
1.托管代码:为.net框架编写的代码,需要CLR;
2.非托管代码:不在CLR管理下运行的代码,如Win32 C/C++ DLL;
3.托管资源:由CLR管理分配和释放的资源,即从CLR里new出来的对象;
4.非托管资源:不受CLR管理的对象,如windows内核对象,或者文件、网络连接、数据库连接、套接字、COM对象等。

不同语言编写的程序的完整编译时和运行时过程概览:


三 关于CLI:

CLI(Common Language Infrastructure,公共语言基础结构)是一组标准,它把所有.net框架的组件连接成一个内聚的、一致的系统。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# WinForm简单框架源码共享。 本框架采用层架构实现,大家可直接在上面扩展,进行自己系统的二次开发等。 框架中数据库字符串的配置在根目录的DBCfg.xml文件中,该文件中部分内容已经加密, 文件中有两个数据库的字符串,实际过程中只用一个即可(案例中是我自己的项目的需求) 系统框架简介: 采用广为人知的简单层DAL(DBUtility),BLL,UI层实现,习惯开发web的朋友一看就明白了 框架默认提供很多方法,如需添加新的操作表,只需要新建一个类,拷贝下基本的代码即可 同时提供数据库字符串修改窗体,方便您的修改。 运行本框架需要创建一张表 sql如下: CREATE TABLE [dbo].[Infos]( [Iid] [int] IDENTITY(1,1) NOT NULL, [title] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL, [details] [text] COLLATE Chinese_PRC_CI_AS NULL, [imgs] [varchar](5000) COLLATE Chinese_PRC_CI_AS NULL, [classify] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, [publiship] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL, [publishman] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [publishtime] [datetime] NULL, [isshow] [varchar](4) COLLATE Chinese_PRC_CI_AS NULL, [istop] [varchar](4) COLLATE Chinese_PRC_CI_AS NULL, [hits] [int] NULL, [notes] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_Infos] PRIMARY KEY CLUSTERED ( [Iid] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值