当前位置: 首页 > news >正文

.NET 相关概念

在这里插入图片描述

.NET 和 .NET SDK

.NET 介绍

.NET 是一个由 Microsoft 开发和维护的广泛用于构建各种类型应用程序的开发框架。它是一个跨平台、跨语言的开发平台,提供了丰富的类库、API和开发工具,支持开发者使用多种编程语言(如C#、VB.NET、F#等)来构建应用程序。.NET 应用程序可以运行在多种操作系统上,包括Windows、macOS和Linux,并且支持从桌面应用到Web应用、移动应用、云服务、游戏和物联网(IoT)应用等多种应用类型。

.NET 的核心组件包括公共语言运行时(CLR)、基础类库(BCL)和.NET Framework 或 .NET Core(现在统称为 .NET 5+)。CLR 是.NET应用程序的执行引擎,负责编译、加载和运行.NET代码,并提供了垃圾回收、类型安全性、异常处理和多线程支持等功能。BCL 是一组丰富的类库,为开发者提供了构建应用程序所需的各种功能,如文件操作、数据访问、网络通信、用户界面设计等。

.NET SDK 介绍

.NET SDK(Software Development Kit,软件开发工具包)是用于开发和构建.NET应用程序的一组工具和库的集合。它包含了开发.NET应用程序所需的一切,包括编译器、运行时、库和命令行工具等。使用.NET SDK,开发者可以方便地创建、编译、测试、运行和部署.NET应用程序。

.NET SDK 的主要功能包括:

  • 提供命令行工具(CLI),允许开发者通过命令行界面执行各种开发任务。
  • 管理.NET 应用程序的依赖项,通过NuGet包管理器下载和安装所需的库和框架。
  • 支持版本管理,确保在不同环境中的一致性和稳定性。
  • 跨平台支持,允许开发者在Windows、macOS和Linux等操作系统上开发和部署.NET应用程序。

.NET 和 .NET SDK 的区别

  1. 作用范围:.NET 是一个广泛的开发框架,提供了构建应用程序所需的一切基础设施和类库。而.NET SDK 则是用于开发和构建.NET应用程序的具体工具集,它包含了构建应用程序所需的所有工具和库。
  2. 组成:.NET 框架主要由CLR、BCL和.NET Framework 或 .NET Core(现在统称为 .NET 5+)组成。而.NET SDK 则包含了编译器、运行时、库、命令行工具等多个组件。
  3. 使用目的:.NET 是为了提供开发应用程序的基础环境和功能。而.NET SDK 则是为了简化开发过程,提供从创建项目到部署应用程序的一系列便捷工具。

简而言之,.NET 是一个开发框架,而.NET SDK 是一组用于开发和构建.NET应用程序的工具和库的集合。开发者需要安装.NET SDK 来使用.NET 框架开发应用程序。

.NET Framework 和 .NET Core

.NET Framework 的详细介绍

.NET Framework 是由 Microsoft 开发的一个用于 Windows 操作系统的托管代码编程模型。它提供了一个全面的、一致的编程环境,使得开发者能够使用多种编程语言(如 C#、VB.NET、F# 等)来构建具有视觉上引人注目的用户体验的应用程序,实现跨技术边界的无缝通信,并支持各种业务流程。

.NET Framework 的核心组件包括公共语言运行时(CLR)和.NET Framework 类库。CLR 是.NET应用程序的执行引擎,负责代码的执行、内存管理、线程管理、远程处理等核心服务,并提供类型安全、安全性、版本控制和部署支持等。类库则是一个综合性的面向对象的可重用类型集合,提供了开发各种应用程序所需的基本功能。

.NET Core 的详细介绍

.NET Core 是 Microsoft 开发的一个免费、开源、跨平台的计算机软件框架,它是.NET Framework的新一代版本。与.NET Framework不同,.NET Core 旨在跨平台运行,支持 Windows、Linux 和 macOS 等多个操作系统。它不仅继承了.NET Framework的部分类库,还通过包化(Packages)管理方式实现了更灵活的组件获取,使得开发者可以只获取项目所需的组件,从而优化了开发过程。

.NET Core 的核心功能包括高性能的 JIT(即时编译)技术、优化的运行时、多线程处理和异步编程支持等。它还提供了丰富的开发工具和库,以及强大的社区支持和生态系统。开发者可以使用 C#、VB.NET、F# 等多种编程语言来构建各种类型的应用程序,包括 Web 应用程序、移动应用程序、桌面应用程序、云服务、微服务、API、游戏以及物联网应用程序等。

.NET Framework 和 .NET Core 的区别

  1. 跨平台性:.NET Core 是跨平台的,支持 Windows、Linux 和 macOS 等多个操作系统。而.NET Framework 主要针对 Windows 操作系统。
  2. 开源与闭源:.NET Core 是开源的,任何人都可以访问其源代码并贡献代码。而.NET Framework 是闭源的,由 Microsoft 进行开发和维护。
  3. 更新方式:.NET Core 通过 NuGet 包管理器来更新新版本,使得开发者可以更灵活地管理项目依赖。而.NET Framework 通常通过 Windows 操作系统的更新来发布新版本。
  4. 性能与体积:.NET Core 通常比.NET Framework 具有更好的性能和更小的安装包大小,因为它是为跨平台设计而优化的。
  5. 现代化与兼容性:.NET Core 的 API 设计比.NET Framework 更加现代化和规范化。因此,在.NET Core上编写的应用程序更容易在未来的.NET版本中使用,而.NET Framework开发的应用程序则可能需要进行修改。

总的来说,.NET Core 是一个更加现代化、轻量级和跨平台的开发框架,适合构建跨平台的应用程序;而.NET Framework 则更适用于 Windows 平台上的传统桌面应用程序和 ASP.NET Web 应用程序。随着 Microsoft 将.NET Core 与.NET Framework 合并为.NET 5,未来将以.NET 5+ 为主要的开发平台。

.NET版本进化

.NET 的版本变化是一个持续演进的过程,从最初的.NET Framework开始,经历了多个重要的里程碑,最终发展到现在的.NET 5+版本。以下是.NET 版本变化的一个简要概述:

1. .NET Framework

  • .NET Framework 1.0(2002年):这是.NET平台的第一个版本,主要支持Windows 98、Me、2000和XP操作系统。它包含了公共语言运行时(CLR)和基础类库(BCL)。
  • 后续版本:.NET Framework随后发布了多个版本,包括1.1、2.0、3.0、3.5、4.0、4.5、4.6、4.7和4.8等。每个版本都带来了新特性和改进,例如对ASP.NET、Windows Forms、WPF(Windows Presentation Foundation)、WCF(Windows Communication Foundation)等技术的支持,以及对新操作系统的兼容性更新。

2. .NET Core

  • .NET Core 1.0(2016年6月):这是.NET平台的一个重要转折点,标志着.NET开始支持跨平台开发。.NET Core是一个开源、跨平台的.NET实现,它可以在Windows、Linux和macOS上运行。
  • 后续版本:.NET Core随后发布了多个版本,包括1.1、2.0、2.1、2.2、3.0和3.1等。其中,3.1是一个长期支持版本,提供了广泛的兼容性和稳定性。每个版本都引入了新的特性和改进,例如对性能的提升、对云原生开发的支持、对Docker容器化部署的支持等。

3. .NET 5+

  • .NET 5(2020年11月):这是.NET平台的一个重大更新,它将.NET Core和.NET Framework进行了整合,统一了开发平台。.NET 5提供了跨平台支持,并引入了许多新功能和性能改进。它不再使用“Core”或“Framework”的命名约定,而是采用统一的“.NET”命名。
  • 后续版本:在.NET 5之后,Microsoft继续发布了.NET 6、.NET 7和.NET 8等版本。这些版本都延续了.NET 5的跨平台特性和性能改进,并引入了更多新功能和优化。例如,.NET 6引入了热重载和最小Web API等新特性;.NET 7引入了.NET MAUI(Multi-platform App UI)等新框架;.NET 8则带来了数千项性能改进和新的WinUI 3支持。

.NET的版本变化体现了Microsoft对开发平台的持续投入和创新。从最初的.NET Framework到跨平台的.NET Core,再到统一的.NET 5+,每个版本都带来了重要的特性和改进,为开发者提供了更加强大、灵活和高效的开发环境。随着技术的不断发展,可以期待.NET在未来继续引领开发平台的创新和发展。

总结

  • 不要再使用 “ .NET Core”或“.NET Framework”的称谓了,使用 .NET 5, .NET6 , .NET7, … 这样的称呼, 目前的长期支持版本是.NET 8, 最新的版本是 .NET 9。

相关文章:

.NET 相关概念

.NET 和 .NET SDK .NET 介绍 .NET 是一个由 Microsoft 开发和维护的广泛用于构建各种类型应用程序的开发框架。它是一个跨平台、跨语言的开发平台,提供了丰富的类库、API和开发工具,支持开发者使用多种编程语言(如C#、VB.NET、F#等&#xf…...

Kubernetes 从集群中移除一个节点(Node)

目录 1. 移除工作节点(Worker Node)1.1 确定工作节点名称1.2 驱逐工作节点上的Pod1.3 删除工作节点1.4 重置该工作节点 2. 移除控制平面节点(Control Plane Node)2.1 确定控制平面节点名称2.2 驱逐控制平面节点上的Pod2.3 更新 etcd 集群2.4 从集群中删除控制平面节点2.5 重置移…...

高德地图离线版 使用高德地图api的方法

高德离线包我已经存至Gitee(自行下载即可):高德地图离线解决方案: 高德地图离线解决方案 然因为高德地图的瓦片地图太大,所以要让后端部署下 前端直接调用 如果本地 直接找到瓦片图路径就可以 initMap () {const base_url "…...

springboot 集成私有化Ollama大模型开源框架,搭建AI智能平台

Ollama是一个用于大数据和机器学习的平台&#xff0c;它可以帮助企业进行数据处理、分析和决策制定。 &#xff11;、在Spring Boot项目pom.xml中添加Ollama客户端库依赖 <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-a…...

6.key的层级结构

redis的key允许多个单词形成层级结构&#xff0c;多个单词之间用:隔开&#xff0c;格式如下&#xff1a; 项目名:业务名:类型:id 这个格式并非固定的&#xff0c;可以根据自己的需求来删除或添加词条。 例如&#xff1a; taobao:user:1 taobao:product:1 如果value是一个java对…...

LogonTracer图形化事件分析工具

LogonTracer这款工具是基于Python编写的&#xff0c;并使用Neo4j作为其数据库&#xff08;Neo4j多用于图形数据库&#xff09;&#xff0c;是一款用于分析Windows安全事件登录日志的可视化工具。它会将登录相关事件中的主机名&#xff08;或IP地址&#xff09;和帐户名称关联起…...

【云原生】Prometheus监控Docker指标并接入Grafana

目录 一、前言 二、docker监控概述 2.1 docker常用监控指标 2.2 docker常用监控工具 三、CAdvisor概述 3.1 CAdvisor是什么 3.2 CAdvisor功能特点 3.3 CAdvisor使用场景 四、CAdvisor对接Prometheus与Grafana 4.1 环境准备 4.2 docker部署CAdvisor 4.2.2 docker部署…...

搭建日志系统ELK(二)

搭建日志系统ELK(二) 架构设计 在搭建以ELK为核心的日志系统时&#xff0c;Logstash作为日志采集的核心组件&#xff0c;负责将各个服务的日志数据采集、清洗、过滤。然而缺点也很明显&#xff1a; 占用较多的服务器资源。配置复杂&#xff0c;学习曲线陡峭。处理大数据量时…...

常用排序算法的实现与介绍

常用排序算法的实现与介绍 在计算机科学中&#xff0c;排序算法是非常基础且重要的一类算法。本文将通过C语言代码实现&#xff0c;介绍几种常见的排序算法&#xff0c;包括冒泡排序、选择排序、插入排序和快速排序。以下是这些排序算法的具体实现和简要介绍。 1. 冒泡排序&am…...

仓颉语言 -- 宏

使用新版本 &#xff08;2024-07-19 16:10发布的&#xff09; 1、宏的简介 宏可以理解为一种特殊的函数。一般的函数在输入的值上进行计算&#xff0c;然后输出一个新的值&#xff0c;而宏的输入和输出都是程序本身。在输入一段程序&#xff08;或程序片段&#xff0c;例如表达…...

Nginx代理minIO图片路径实现公网图片访问

1、网络部署情况 VUE前端项目Nginx部署在公司内网&#xff0c;端口7790 后台接口项目部署在公司内网&#xff0c;端口7022 minIO服务部署在公司内网&#xff0c;端口9000 公网IP设备将80端口映射到7790端口&#xff08;具体映射方式不详&#xff09;&#xff0c;实现通过互…...

从零开始掌握tcpdump:参数详解

Linux tcpdump命令详解 1. 语法 tcpdump [-adeflnnNOpqStvxX] [-c <数据包数目>] [-dd] [-ddd] [-F <表达文件>] [-i <网络界面>] [-r <数据包文件>] [-s <数据包大小>] [-tt] [-T <数据包类型>] [-vv] [-w <数据包文件>] [输出数…...

漏洞挖掘 | edusrc记一次某中学小程序渗透测试

一、搜集渗透目标 现在的EDU挖web端的上分效率远不如小程序&#xff0c;因此这篇文章浅浅记录一次小程序的挖掘吧。如果各位大牛想要快速出洞&#xff0c;不妨跳过大学&#xff0c;学院等小程序&#xff0c;而重点关注小学、中学、幼儿园等&#xff0c;这些小程序的出洞率还是…...

vulhub:nginx解析漏洞CVE-2013-4547

此漏洞为文件名逻辑漏洞&#xff0c;该漏洞在上传图片时&#xff0c;修改其16进制编码可使其绕过策略&#xff0c;导致解析为 php。当Nginx 得到一个用户请求时&#xff0c;首先对 url 进行解析&#xff0c;进行正则匹配&#xff0c;如果匹配到以.php后缀结尾的文件名&#xff…...

备战秋招:2024游戏开发入行与跳槽面试详解

注意&#xff1a;以下为本次分享概要&#xff0c;视频版内容更全面深入&#xff0c;详见文末 1.游戏开发领域秋招准备与面试技巧 本次分享由优梦创客机构的创始人雷蒙德主讲&#xff0c;专注于2024年秋招期间游戏开发领域的入行与跳槽面试准备。本次分享重点在于提供面试技巧…...

红外热成像手持终端:从建筑检测到野外搜救的全方位应用

红外热成像手持终端&#xff0c;凭借其独特的红外探测与夜视功能&#xff0c;广泛应用于多个关键领域。无论是军事侦察、消防救援中的夜间作业&#xff0c;还是电力巡检、野生动物观察等多样场景&#xff0c;其精准的红外热成像技术均能提供至关重要的实时数据&#xff0c;助力…...

day07 项目启动以及git

spring框架 spring 负责整合各种框架&#xff0c;把new对象的部分交给spring去做&#xff0c;对象new不出来&#xff0c;项目就启动不起来&#xff0c;这样可以有效保证所需要的对象都在容器中存在&#xff0c;后续的部分都可以顺利执行控制反转&#xff1a;业务对象创建依赖资…...

学会网络安全:开启广阔职业与责任之旅

在数字化时代&#xff0c;网络安全已成为社会经济发展的重要基石。随着互联网的普及和技术的飞速发展&#xff0c;网络安全威胁日益复杂多变&#xff0c;对国家安全、社会稳定以及个人隐私构成了严峻挑战。因此&#xff0c;掌握网络安全技能不仅意味着拥有了一项高价值的职业技…...

UE5 镜头

只狼镜头 Spring Arm 中 开启 Use Pawn Control Rotation&#xff1a;让镜头跟着鼠标移动BP_Character(Self) 中关闭 Use Controller Rotation Yaw&#xff1a;不要让人物和鼠标移动Character Movement 的 Rotation Setting 中 关闭 Use Controller Desired Rotation&#xff…...

SpringBoot如何实现简单的跨域配置

在SpringBoot中实现简单的跨域配置&#xff0c;主要通过全局CORS配置来完成。这通常涉及到实现WebMvcConfigurer接口并覆盖addCorsMappings方法。以下是一个简单的示例&#xff0c;展示了如何在SpringBoot应用中配置CORS策略以允许跨域请求。 首先&#xff0c;需要创建一个配置…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...