(1)C#基础——.NET 框架

这篇具有很好参考价值的文章主要介绍了(1)C#基础——.NET 框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一章 .NET框架

背景:为了解决不同的操作系统、开发平台、运行框架、开发技术的不兼容性。微软公司借助.NET框架将windows下各种应用程序开发有机地集成起来,未开发人员提供统一的开发接口和类库

1.1 .NET的产生和发展

1.1.1产生

软件发展过程中,不断有各种新的技术产生,也有落后技术淘汰,从而很多技术无法集中

问题有:

图形图像开发 GDI、DirectX、OpenGL等三种模式,互不兼容
数据库 ADO、DAO、RDO、ODBC等四种模式,互不兼容
网站开发技术 ASP、JSP等两种语言,互不兼容
Windows 服务器版,专业版,Home版等多种不完全兼容的版本

刚开始有人使用COM组件解决这些问题(利用面向对象思想),通过接口的方式来达到更多的模块重用和统一接口,但是存在版本管理、组件部署、组件继承的方面的缺陷,所以就没有采用

COM组件:

**(1)**COM component(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。

(2)在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。

由此带来的好处是多方面的:

  • 可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;
  • 可以在多个应用系统中重复利用同一个组件;
  • 可以方便的将应用系统扩展到网络环境下;
  • COM与语言,平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块。

**为了解决这问题:**微软推出了——Microsoft .NET Framework

1.1.2.NET框架

  1. **定义:**灵活稳定,能够运行web服务和Windows程序的Windows内置组件,是软件的运行环境,也是软件开发和存在的基础

  2. 特性:

  • 消除了Windows操作系统带来的不一致性(通过将Windows操作系统的底层的API,封装,并为不同的Windows提供了统一的应用层接口)
  • 具有COM组件的统一性,提供了用户认证信息管理、应用程序版本管理和应用程序部署等
  • 面向对象,围绕继承,力求代码组件重用,它所提供的的类库是相对独立的模块,可以广泛应用于软件开发的各领域
  • 支持多种开发语言(通过公共语言规范(CLS)将VB.NET、VC++.NET、C#、Visual J#等多种语言统一,只要是符合CLS的开发语言都可以被.NET支持
  • 网页的开发和改进采用将网页分成前台网页和后台代码的前后台开发方式。将页面开发和逻辑开发完全分离,提高网页的开发效率以及组件和代码的重用

3. 发展

.NET的全名叫:.NET Framework(.NET框架)

在2001年微软发布了.NET的第一个版本,十年后,被接受认可,经历了6个版本的迭代更新

。net框架,C#,.net,c#,microsoft
。net框架,C#,.net,c#,microsoft

注意:1.0和1.1是完全独立版本,它不能与后面的版本兼容,其他版本可以向后兼容

1.2、公共语言运行库

平台无关性:是.NET重要特性之一,公共语言运行库是实现这一目标的核心组件,提供应用程序最基本的运行环境

通过公共语言规范定义统一的.NET框架开发语言

1. 公共语言规范——CLS

**(1)定义:**规定了所有应用程序都需要的最小的语言功能集合,使得支持编写CLS的开发语言所编写的代码都可以在.NET框架运行

l 公共运行库通过定义公共语言规范(CLS)实现.NET的平台无关性、以及跨语言编程

l 所有代码都应该遵守通用类型系统(CTS)和公共语言规范(CLS)

(2)内容:

命名规则:

  • 所有类型,成员等在独自命名的空间下必须具有唯一的名称,而且名称不能只是大小写不同
  • 名称不能使用关键字

数据类型:支持基本的基元类型(char int 等);支持数组和枚举,类和接口;类成员可见性必须支持私有,继承,公开三种

类成员:

  • 必须支持构造函数、属性、方法、字段和事件;
  • 必须支持类成员的重载和覆盖;支持类的继承和向上转化;类对象必须是引用

**接口成员:**接口成员不能有访问性,可以包括字段、属性、方法和事件

异常处理:必须支持异常处理并且异常可以继承,从而实现自定义异常

**事件支持:**事件必须可以动态发布和订阅,事件必须具有唯一的名称

泛型支持:泛型名称必须包含泛型的具体类型参数(也必须满足CLS规定),可以支持对类型进行约束

注意:符合CLS规范的开发语言:C#和VB.NET

1.3、中间语言——MSIL

公共语言运行库 和 公共语言规范 是.NET实现语言和跨平台的基础

问题:如何让满足CLS的高级语言统一到一起,实现跨平台?——MSIL

MSIL:

(1) **定义:**微软中间语言(MSIL),这是一种符合CLS且风格像汇编的中级语言

问题:为什么叫中级语言?

因为它只是一些模拟的高效的低级指令组成,不像汇编语言,可以和硬件指令紧密结合

通过.NET开发的应用程序能成为在计算机上可以执行的程序的步骤:

。net框架,C#,.net,c#,microsoft

总结:任何执行于.NET框架上的高级语言都必须提供对应的编译器和链接器,以便将对应的源代码生成为MSIL代码;.NET应用程序实际保存的是MSIL中间代码,而不是直接运行于操作系统上的二进制机器代码

。net框架,C#,.net,c#,microsoft

1.4、公共语言规范和C#

.NET的目标之一:改变多种开发语言各自为政,相互类型上不完全兼容的问题——实现跨语言编程

多种语言想要进行相互交互,必须定义统一的语言规范

.NET框架通过公共语言规范(CLS)实现跨语言编程,公共语言规范定义了所有可以在.NET框架上运行的代码所必须满足的基本节接口。

  • CLS
  • CLS设计足够大,包括语言构造,同时也足够小,大多数语言都支持它
  • CLS定义了基本数据类型的数量和占用的空间,eg:Int32(4字节带符号整数),Int16(2字节带符号整数)
  • CLS定义了面向对象开发语言的基本元素——类
  • …………关于泛型的统一接口

(2)开发语言

C# 微软专门为**.NET打造的面向对象开发语言,简洁,安全,只有**90个关键字,使用C/C++或java大部分语法习惯,简化了C++复杂性
VB.NET Visual Basic .NET属Basic系语言 语法特点:是以极具亲和力的英文单词为基础标识,以及与自然语言极其相近的逻辑表达,有时候你会觉得写VB.NET代码就好像在写英文句子一样,从这个角度来说,VB.NET似乎是最高级的一门编程语言, 当然在Basic系语言中VB.NET也确实是迄今为止最强大的一门编程语言。
VC++ .NET -----

(2) C#与Visual Studio结合,提出了以下更新机制来加快软件的设计和编码

委托(Delegate) (1)封装好的函数指针,支持多个函数指针顺序调用 (2)是事件机制和函数回调的基础
属性(Property) 对一个或多个私有字段访问的封装,是进行数据隐藏和安全访问的基础
属性(Attribute) 提供关于运行时类型的声明性元数据 比如可以通过FlagsAttribute属性将一个枚举定义或是按位存储减少存储空间
内联XML文档注释 是一种XML格式的代码注释,结合Visual Studio 的类设计器和代码编辑环境,可以加快类设计,增强代码可读性
指针和不安全代码机制 用在直接内存访问必不可少的情况下,进行一些内存操作
没有头文件和源文件概念 对类、接口、委托、方法、字段、属性等定义的位置和顺序没有要求,数量上也没有任何限制

1.5 .NET类库

1.5.1 命名空间和程序集

程序集:为了解决模块版本不一致的问题

**定义:**程序集通常以一个动态链接库(DLL)的形式存在,包括公共语言运行执行的代码,形成安全边界、类型边界、引用范围边界和版本边界。

特点:可以被其他程序集引用,实现模块重用

用途:进行模块级别的划分,将相互关联的代码放在同一个程序集中,为他需要的使用的模块 或 应用程序提供及接口,便于重用

在同一个程序集中,命名空间用于细致的划分,同一接口的不同实现用不同的命名空间

命名空间:

每个.NET程序集包含一个或多个命名空间

定义:命名空间是一种用于准确定位数据类型的技术,通过命名空间层层定位,可以明确地找到具体要使用的数据类型。

特点:一个命名空间可以包含具体类型和子命名空间

eg:System.Threading.Timer 和System.Windows.Forms.Timer 都是类型Timer

但是前者是线程命名空间,后者是命名空间

.NET可以根据命名空间找到两个具有相同名字的类型,避免混淆

如果程序中的数据类型是文件,那么命名空间就是文件夹

1.5.2 垃圾回收器

一、 垃圾回收机制

**(1)定义:**自动内存管理,用来自动追踪内存对象,并在不需要的时候自动释放内存

开发人员不需要关心内存释放

(2)在.NET中所有的对象都是引用,每一个引用具有一个引用计数器:表示该对象现在被多少个引用所引用

第一次分配对象,引用计数器为1

  • 当对象再次被使用,引用计数器+1;
  • 对象推出作用域不再有效,引用计数器-1

(3)公共运行库本身控制着垃圾回收器的周期性执行,每次回收器执行都会扫描当前被应用程序分配的对象

如果引用计数器为0;则表示不再被引用,即可销毁,垃圾回收器自动释放对象所占用的内存

(3) 优点:

  • 可以防止内存泄漏
  • 更快地释放内存

.NET为开发人员提供了显式控制垃圾回收器的接口,可以明确通知垃圾回收器马上进行内存清除,以便马上释放内存(垃圾回收器自动释放有延迟)

1.5.3 .NET类库范围

类型 说明
基本数据类型 System空间提供了应用程序必备的数据类型
集合类 System.Collection提供最常用的集合类,包括列表、字典、哈希表等
IO操作数类库 System.IO提供IO操作相关类库,封装串口的访问、文件和目录的访问等
Windows 用户界面类库 System.Windows包含所有Windows窗体程序所需要的类:Windows窗体(Form)和Windows窗体控件(Contorls)、界面操作的类
ADO.NET类库 新型数据库访问模式,由System.Data提供支持(很重要)
LINQ类库 System.Linq提供操作
多线程相关类库 System.Threading提供,包括线程创建和使用、线程同步机制、定时器等
Internet开发相关类库 System.Net提供TCP/IP网络开发类库
ASP.NET Web控件类库 System.Web提供Web页面开发的类库,包括邮件服务、页面缓存、Web页面控件等

还有很多的类库,可以资讯查询文章来源地址https://www.toymoban.com/news/detail-781886.html

到了这里,关于(1)C#基础——.NET 框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#如何解决项目打开问题 error : 找不到指定的 SDK“Microsoft.NET.Sdk.WindowsDesktop”

    后来发现,直接安装rider还是不能解决解决(会自动配置关联(path等),甚至自动下载的,官方的 visual studio反而不会,之后再详细看怎么弄了) VS2022项目无法加载,找不到指定的SDK\\\"Microsoft.NET.Sdk\\\" 或者,VS2017项目无法加载,找不到指定的SDK\\\"Microsoft.NET.Desktop.Sdk\\\" github上下载的 开源

    2024年02月05日
    浏览(79)
  • 【C#】.Net Framework框架下的Authorize权限类

    2023年,第31周,第3篇文章。给自己一个目标,然后坚持总会有收货,不信你试试! 在C#的.NET Framework中,你可以使用 Authorize 类来处理权限认证。 Authorize 类位于 System.Web.Mvc 命名空间中,它提供了一种简单的方式来限制对控制器中的操作方法的访问。 要在控制器中使用权限认

    2024年02月13日
    浏览(52)
  • 【C#】.Net Framework框架下使用SQLike以及基本概念

    2023年,第32周,第2篇文章。给自己一个目标,然后坚持总会有收货,不信你试试! 在C#的.NET Framework框架下,有很多轻量级数据库选择,比如:SQLike就是其中一款,一起来了解SQLike的简单使用吧。 轻量级数据库是指具有较小的存储需求、资源消耗较低、易于部署和使用的数据

    2024年02月11日
    浏览(76)
  • C# .NET 7.0和Framework 4.8两个框架的区别

    .NET 7.0和Framework 4.8是微软开发的两个不同版本的框架,用于构建和运行应用程序。虽然它们都是用于C#编程语言的,但它们在功能和性能方面有一些区别。 首先,让我们来看一下.NET 7.0的一些新功能和改进。.NET 7.0是.NET的最新版本,它引入了许多新的功能和改进,以提高开发

    2024年02月13日
    浏览(38)
  • asp.net酒店管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

    一、源码特点         asp.net酒店管理系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言开发 asp.net 酒店管理系统1 二、功能介绍 后台主要功能: (1)用户管理:对用户信息进行添

    2024年02月07日
    浏览(52)
  • asp.net归宿管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

    一、源码特点         asp.net归宿管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言开发 asp.net归宿管理系统VS开发sqlserver数据库w 二、功能介绍 一、定时打卡(采用RFID卡)

    2024年02月09日
    浏览(62)
  • asp.net文档管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

    一、源码特点         asp.net文档管理系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言开发 asp.net文档管理系统 二、功能介绍 (1)用户管理:对用户信息进行添加、删除、修改和

    2024年02月08日
    浏览(44)
  • WPF C# .NET7 基础学习

    学习视频地址:https://www.bilibili.com/video/BV1hx4y1G7C6?p=3vd_source=986db470823ebc16fe0b3d235addf050 开发工具:Visual Studio 2022 Community 基础框架:.Net 6.0 下载创建过程略 .Net和.Framework 区别是Net是依赖项,Framework是引用 1.定义一个命名空间, 最常用 不只包括using namespace,还用开头使用的usin

    2024年02月10日
    浏览(45)
  • asp.net高校食谱管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

    一、源码特点         asp.net高校食谱管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net高校食谱管理系统VS开发sqlserver数据 二、功能介绍 (1)用户管理:对用户信

    2024年02月09日
    浏览(43)
  • asp.net审计项目管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

    一、源码特点         asp.net审计项目管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 二、功能介绍 (1)科室管理:对科室信息进行添加、删除、修改和查看 (2)权限管

    2024年02月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包