热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【C#学习】--基石.netfreamwork

记得在很久之前装SQL2014的时候就发现过一个问题,安装失败,提示要装上,netframework,那个时候不知道他到底是个什么东东,上网查了查,记得当时给出的解释是这样的,.n

        记得在很久之前装SQL 2014的时候就发现过一个问题,安装失败,提示要装上,net framework,那个时候不知道他到底是个什么东东,上网查了查,记得当时给出的解释是这样的,.net framwork 微软的程序框架,Sql sever 是微软的软件,只有安装微软的框架,软件才能运行,也就是说有了软件环境才能运行软件。总结一下就是:微软开发的软件,安装的时候就会检测.NET框架,只有安装了这个微软的框架才能运行微软的软件。

       当时理解了.ner freamwork是程序运行的一个框架,一个基石,没有这个运行环境软件就不能工作。学习C#的时候又一次遇到了,觉得应该深入理解一下.ner freamwork 。

 一、概念:

  .net framework也就是.NET框架。它是一个集成在Windows中的组件, 它支持生成和运行下一代应用程序 XML.Web Services。
1.特点:
①多平台:该系统可以在广泛的计算机上运行
②行业标准:该系统使用行业标准的通信协议,
③安全性:该系统能提供更加安全的执行环境,即使有来源可疑的代码存在。

     
二、目标:
①提供一个一致的面向对象的编程环境,无论对象代码是在本地存储和执行,或者在本地执行但在Internet上分布,或者在远程上执行,都在这个编程环境中。
②提供一个将软件部署和版本控制冲突最小化的代码执行环境。
③提供一个可以提高代码执行安全性的执行环境。
      总结一下他的目标就是为了创建高效的应用程序在部署,管理安全,提高性能等方面提供最大的底层平台支持。

三、组件:
.Net framework有两个重要的组件公共语言运行时和基类库,另外还有一个编程工具。
1. 公共语言运行时(CLR,Common language Runtime)是.net framework运行的基础,它是一个执行环境,在运行期管理程序的执行。内容包括:内存管理/代码安全验证/代码执行/垃圾收集。

2.基类库(BCL, Base Class Library)是.net 框架使用的一个大的类库,它是一个综合性的面向对象的可重用类型集合,可以用来开发多种应用程序。主要包括:
①通用基础类:这些类提供了一组极为强大的工具,可以应用到广泛的编程任务中,比如字符串操作,安全和加密。
②集合类:实现了列表、字典,散列表以及位数组。
③线程和同步类:用于创建多线程程序。
④XML类:用于创建、读取、以及操作XML文档

3.编程工具----涵盖了编码和调试需要的一切,包括:

①VS集成开发环境

②.net兼容的编译器(比如:C#,JS,VB等)

③调试器

④服务器端改进,比如ASP.NET。


四、.NET语言的编译与执行

(1)编译过程:

      不管是什么编程语言都要通过 .NET语言的实时编译器(JIT,Just in time)将源代码生成名为程序集的输出文件。程序集可以是可执行文件或者DLL。程序集包含了一下项目:

①程序的公共中间语言(CIL,Common Intermediate Language

②程序中使用的类型的元数据

③对其他程序集引用的元数据

(2)执行过程:

      程序的CIL知道他被调用时才会被编译成本机代码,然后服务于操作系统。

要注意的是CLR被编译器编译完成时并没有直接生成本机代码,他只是被缓存下来以备在后来的程序中执行。所以呢,不被调用的代码不会被编译成本机代码,而且被调用的代码只能被编译一次。

      当CIL被编译成本机代码后,在它运行时就要接受CLR的管理。执行一些任务:例如,释放无主内存,检查数组边界,检查参数类型,管理异常等。这里产生两个术语,以后会经常听到:

①托管代码---为.NET框架编写的代码成为托管代码,需要CLR。

②非托管代码---不在CLR控制之下运行的代码,成为非托管代码。

    下图是三种语言进行编译和执行的综述,用一张图来表示,相信大家可以很清晰的了解他的编译和执行过程:




四、相关补充;

  .NET Framework可由非托管组件承载,这些组件将公共语言运行时加载到他们的进程中并启动托管代码的知识,从而创建一个可以同时利用托管和非托管功能的软件环境。所以, .NET Framework不但提供若干运行时宿主,而且还支持第三方运行时宿主的开发。

 下面是 .NET Framework的环境示意图:




推荐阅读
  • Java EE 平台集成了多种服务、API 和协议,旨在支持基于 Web 的多层应用程序开发。本文将详细介绍 Java EE 中的 13 种关键技术规范,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 面试题总结_2019年全网最热门的123个Java并发面试题总结
    面试题总结_2019年全网最热门的123个Java并发面试题总结 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • 本文介绍了如何使用Postman构建和发送HTTP请求,包括四个主要部分:方法(Method)、URL、头部(Headers)和主体(Body)。特别强调了Body部分的重要性,并详细说明了不同类型的请求体。 ... [详细]
  • 本文通过基准测试(Benchmark)对.NET Core环境下Thrift和HTTP客户端的微服务通信性能进行对比分析。基准测试是一种评估系统或组件性能的方法,通过运行一系列标准化的测试来衡量其表现。 ... [详细]
  • Python多线程详解与示例
    本文介绍了Python中的多线程编程,包括僵尸进程和孤儿进程的概念,并提供了具体的代码示例。同时,详细解释了0号进程和1号进程在系统中的作用。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 解决SQL Server数据库sa登录名无法连接的问题
    在安装SQL Server数据库后,使用Windows身份验证成功,但使用SQL Server身份验证时遇到问题。本文将介绍如何通过设置sa登录名的密码、启用登录名状态以及开启TCP协议来解决这一问题。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
author-avatar
骚扰list_238
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有