大家好,我是张飞洪,专注.NET开发十来年。感谢您的阅读,我会不定期分享我的学习心得和职场经验,希望我的文章能成为你成长路上的助力。让我们一起精进,共同进步。

本文是《C# 13 与 .NET 9 跨平台开发实战》的第一章,内容很基础,也很细,适合初入.NET职场的新人。

本章目标

  • 配置开发环境(Visual Studio 2022 / VS Code / JetBrains Rider)
  • 理解现代.NET生态(.NET 9/.NET Core)与传统技术(.NET Framework/Mono/Xamarin/.NET Standard)的异同
  • 使用C# 13与.NET 9创建基础应用
  • 掌握求助资源

本书将使用到的简称:

  • Visual Studio → VS
  • Visual Studio Code → VS Code
  • JetBrains Rider → Rider

本章主题

  1. 本专栏内容导览
  2. 开发环境配置
  3. .NET技术体系解析
  4. 使用VS构建控制台应用
  5. 使用VS Code构建控制台应用
  6. 代码仓库使用指南
  7. 技术支持资源

1.本专栏内容导览

后续所有源码、练习统一放在我的知识星球当中:


术语规范

术语 所指技术
现代.NET .NET 9及前代版本(如.NET 6等基于.NET Core的技术栈)
传统.NET .NET Framework / Mono / Xamarin / .NET Standard

现代.NET是对传统技术栈的整合与演进


本专栏结构

  1. 语言基础:C#语法体系
  2. 类库应用:.NET功能开发
  3. Web开发:跨平台网站/服务/浏览器应用开发

专栏理念

  • 强调实践而非理论:通过代码模仿与重复掌握核心概念
  • 渐进式学习:细节认知将随项目经验自然积累
  • 技术演进认知:C#/.NET是快速发展的技术体系

"本专栏难免存在一些错误谬误,如果在实践过程遇到错误,欢迎您和我交流"。


读者反馈

如有批评建议,请优先通过以下渠道联系作者:

  1. 我的微信:

  2. 知识星球:

  3. 邮箱:41696823@qq.com

核心内容架构

本专栏系统讲解以下三大技术领域:

  1. 语言基础

    • C#核心语法:从变量声明到函数编写
    • 面向对象编程范式
  2. 类库基础
    • .NET基础类库核心功能
    • 数据库访问等常见任务的扩展包
  3. 现代Web开发
    • ASP.NET Core服务端/客户端开发
    • 重点涵盖:Blazor、Minimal APIs
    • 不包含:基于控制器的MVC/Web API等传统模式

建议按章节顺序阅读,知识体系呈递进关系


2.开发环境配置

编辑器选择

Microsoft官方工具

  • Visual Studio (Windows专属)
  • VS Code (跨平台: Win/macOS/Linux)
  • VS Code Web版 (含GitHub Codespaces)

第三方工具

  • JetBrains Rider (2024年10月起非商业用途免费)

注意

  1. Rider/ReSharper可能误报Razor/Blazor组件中的Cannot resolve symbol错误(实际可正常编译运行)
  2. Unity Support插件可能在非Unity项目中误报装箱操作警告

工具认知

  1. 警惕工具依赖

    Visual Studio等IDE虽然功能强大,但开发者应理解其底层操作实质(如项目文件编辑/代码编译等)

  2. 底层原理

    所有编辑器本质都是文本处理工具,最终依赖dotnetCLI完成编译流程(如图所示)

  1. 手动操作可行性

    理论上可使用纯文本编辑器完成所有开发工作,但IDE显著提升效率

工具选型原则

  1. 透明性原则

    优先选择能清晰展示底层操作的工具(避免IDE过度封装实现细节)
  2. 延续性原则

    可沿用现有熟悉工具或团队日常开发环境
  3. 多工具支持

    本书所有代码任务均兼容:

    • VS Code
    • Visual Studio
    • Rider

本章将详细演示Visual Studio和VS Code的项目创建流程

学习项目类型

章节 推荐项目类型 学习优势
第1-11章 控制台应用程序 聚焦语言核心特性,避免UI复杂度干扰
第12-15章 ASP.NET Core网站/服务 实践Blazor/Minimal APIs等现代技术栈

开发工具深度解析

VS Code跨平台方案

核心优势

  • 全平台支持(Windows/macOS/Linux/ARM架构)
  • 轻量级启动(适合快速修复)
  • 扩展和生态丰富(C# Dev Kit将普通编辑器转化为专业.NET开发环境)

技术前沿

C# Dev Kit扩展(2023年6月预览版)彻底改变VS Code的.NET开发体验:

官方公告

使用场景

  • Web开发支持度 ★★★★★
  • 移动/桌面开发支持度 ★★☆☆☆

市场地位

Stack Overflow 2024调查显示73%专业开发者选用VS Code:

调查报告

GitHub Codespaces云开发

  • 基于VS Code的云端开发环境
  • 完整支持Git仓库/扩展/CLI
  • 需付费订阅获得完整功能

官方文档

Visual Studio全能开发

支持范围

  • 控制台应用/网站/Web服务/桌面应用
  • 移动应用开发需配合macOS/Xcode

系统要求

  • Windows 10 v1909+/11 v21H2+
  • 不支持32位系统/Windows S模式

警示

Visual Studio for Mac已停止支持.NET 8+,并于2024年8月终止维护:

退役公告


开发环境参考

硬件平台 软件配置
Surface Laptop 7 (Win11) Visual Studio + VS Code + Rider
Mac mini M1 VS Code + Rider

建议开发者尝试多平台环境以深入理解跨平台挑战


跨平台部署支持

.NET 9支持部署至:

  • Windows:Win10 v1607+/Server 2012 R2 SP1+
  • macOS:Catalina 10.15+ (支持Rosetta 2 x64模拟)
  • Linux:Alpine 3.19+/CentOS Stream 9/Debian 12等
  • 移动端
    • Android API 21+
    • iOS/iPadOS 15+
    • Mac Catalyst 12+

终止支持

Windows 7/8.1支持已于2023年1月终止

详情

最新支持列表

https://github.com/dotnet/core/blob/main/release-notes/9.0/supported-os.md


Visual Studio安装流程

  1. 下载Community Edition(免费授权):

    https://visualstudio.microsoft.com/downloads/
  2. 选择工作负载:
    • ASP.NET和Web开发
    • .NET桌面开发(含控制台应用)
    • C++桌面开发(优化发布包性能)
  3. 首次启动配置:
    • 开发设置选择"Visual C#"
    • 自定义配色方案/快捷键

版本前瞻

Visual Studio 2025(v18.0)预计2025年上半年发布

快捷键管理

官方指南

VS Code配置方案

  1. 安装稳定版/Insiders版:

    https://code.visualstudio.com/
  2. 安装.NET SDK 8.0/9.0:

    https://www.microsoft.com/net/download
  3. 安装C# Dev Kit扩展:

推荐扩展清单

扩展名称 功能描述
MSBuild项目工具 提供MSBuild文件智能提示
Polyglot Notebooks 支持.NET交互式笔记本
ILSpy反编译工具 查看MSIL汇编代码

扩展管理命令

code --install-extension ms-dotnettools.csdevkit
code --list-extensions

版本管理策略

  • VS Code:每月功能更新(如v1.93.0)+ 紧急修复版

C#扩展:建议v2.45.20+(提供实时IntelliSense/代码导航)

快捷键参考:

  • Windows版PDF
  • macOS版PDF

3.深入理解.NET技术体系

"遗忘历史者必将重蹈覆辙",我们简单回顾一下.NET体系的历史演变,使你有个大致的了解。

.NET技术演进

.NET、.NET Core、.NET Framework、.NET Standard和Xamarin构成了一套相互关联的开发技术矩阵。完整技术演进史见:

技术发展时间线

.NET版本支持策略

版本类型 支持周期 适用场景
LTS (长期支持) 3年或下一LTS发布后1年(取更长) 生产环境稳定系统
STS (标准支持) 18个月或下一版本发布后6个月 需要持续迭代的前沿项目
Preview 无官方支持(Go Live版本例外) 技术预览/书籍编写需求

关键实践

  • 每月"补丁星期二"必须更新运行时
  • 生产环境建议采用LTS版本(当前推荐.NET 8)

当前支持状态(2024年11月):

  • .NET 9 (STS):2024.11-2026.05
  • .NET 8 (LTS):2022.11-2026.11
  • .NET 10 (LTS):2025.11-2028.11

最新支持状态查询

生命周期阶段解析

  1. Preview:无支持(.NET 9预览版:2024.02-08)
  2. Go Live:仅RC版本临时支持(需立即升级到GA版)
  3. Active:完整支持(.NET 9:2024.11-2025.11)
  4. Maintenance:仅安全更新(最后6个月)
  5. EOL:终止支持(.NET 9:2026.05)

运行时与SDK版本管理

变更类型 运行时版本 SDK版本
初始发布 9.0.0 9.0.100
SDK修复 9.0.0 9.0.101
运行时+SDK修复 9.0.1 9.0.102
SDK功能新增 9.0.1 9.0.200

版本管理命令

dotnet --list-sdks       # 查看已安装SDK
dotnet --list-runtimes # 查看已安装运行时
dotnet --info # 显示环境详情

命令行工具集

高效技巧:本书所有命令行指令均可从以下链接快速复制:

命令速查表

SDK 管理方案

操作系统 卸载方式 推荐工具
Windows 控制面板 → 应用和功能 系统内置工具
Linux 多版本管理指南 Dots SDK管理器

注意:Dots 工具需从GitHub源码编译,建议高级开发者使用

中间语言(IL)原理

  1. 编译流程
    graph LR
    A[C#源码] -->|Roslyn编译器| B(IL中间语言)
    B -->|存储为| C[.dll/.exe程序集]
    C -->|运行时加载| D[CoreCLR虚拟机]
    D -->|JIT编译| E[原生机器码]

.NET技术矩阵对比

主要技术平台

技术平台 特性描述 支持的操作系统
现代.NET 完整支持 C# 8 至 C# 13 语言特性,可用于移植现有应用或开发新桌面/移动/Web 应用和服务 Windows, macOS, Linux, Android, iOS, tvOS, Tizen
.NET Framework 仅支持有限 C# 8 特性,不支持 C# 9 及以上版本,建议仅用于维护现有应用 仅 Windows
Xamarin 专注于移动和桌面应用开发 Android, iOS, macOS

关键差异说明

  1. 现代.NET

    • 跨平台支持最全面
    • 持续获得微软更新支持
    • 推荐用于新项目开发
  2. .NET Framework

    • 已进入维护模式
    • 新功能开发已停止
    • 仅建议用于遗留系统维护
  3. Xamarin

    • 专注于移动端开发
    • 可共享业务逻辑代码
    • 需要平台特定UI实现

迁移建议

新项目应优先选择现代.NET,既有项目可逐步迁移至现代.NET以获取最新功能支持

跨IDE支持情况

开发环境 解决方案支持
Visual Studio 原生完整支持,提供可视化项目管理界面
JetBrains Rider 完整支持,提供高级项目依赖分析工具
VS Code + C# Dev Kit 通过扩展实现解决方案管理功能

C# 13 与 .NET 9 跨平台开发实战(第一章:开发环境搭建与.NET概述)的更多相关文章

  1. 虚拟机上的Linux Java开发环境部署记录(VirtualBox+Ubuntu)第一章-基础环境搭建

    创建虚拟机时需注意三点: 在BIOS中开启Intel VT,以支持64位虚拟机系统: 对于Ubuntu 16以上版本,至少分配10G以上初始控件. 增加一块网卡,选择Host-Only网络,用于主机和 ...

  2. Spring实战第一章学习笔记

    Spring实战第一章学习笔记 Java开发的简化 为了降低Java开发的复杂性,Spring采取了以下四种策略: 基于POJO的轻量级和最小侵入性编程: 通过依赖注入和面向接口实现松耦合: 基于切面 ...

  3. Android开发使用控件入门--环境搭建

    Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD  ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...

  4. arcgis api for flex 开发入门(一)环境搭建

    http://www.cnblogs.com/wenjl520/archive/2009/06/02/1494514.html arcgis api for flex 开发入门(一)环境搭建arcgi ...

  5. 【ARM-Linux开发】在win下开发的eclipse+yougatoo+jlink环境搭建

    在win下开发的eclipse+yougatoo+jlink环境搭建 一 工具的安装 第一步:安装gcc编译工具 yagarto-bu-2.21_gcc-4.6.2-c-C++_nl-1.19.0_g ...

  6. 跨平台开发之阿里Weex框架环境搭建(一)

    转载自:http://www.cnblogs.com/fozero/p/5995122.html 一.介绍 Weex是阿里今年6月份推出的跨平台解决方案,6月底正式开源.官网 https://alib ...

  7. Hadoop应用开发实战(flume应用开发、搜索引擎算法、Pipes、集群、PageRank算法)

    Hadoop是2013年最热门的技术之一,通过北风网robby老师<深入浅出Hadoop实战开发>.<Hadoop应用开发实战>两套课程的学习,普通Java开发人员可以在最快的 ...

  8. DirectX12 3D 游戏开发与实战第一章内容

    DirectX12 3D 第一章内容 学习目标 1.学习向量在几何学和数学中的表示方法 2.了解向量的运算定义以及它在几何学中的应用 3.熟悉DirectXMath库中与向量有关的类和方法 1.1 向 ...

  9. 学习笔记-[Maven实战]-第一章:Maven简介

    Maven简介: Maven 可翻译为:知识的积累,也可以翻译为"专家"或"内行". Maven 是一个跨平台的项目管理工具,是Apache组织中一个很成功的开 ...

  10. JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建

    本篇博客就完整的来聊一下如何在Eclipse中创建的Maven Project.本篇博客是JavaEE开发的开篇,也是基础.本篇博客的内容干货还是比较多的,而且比较实用,并且都是采用目前最新版本的工具 ...

随机推荐

  1. 洛谷 P3792 由乃与大母神原型和偶像崇拜

    洛谷 P3792 由乃与大母神原型和偶像崇拜 Problem 糖果屋的故事讲的就是韩赛尔和格雷特被继母赶出家里,因为没饭吃了,然后进了森林发现了一个糖果屋,里面有个女巫,专门吃小孩子 然而如果我们仔细 ...

  2. 揭秘C#异步编程核心机制:从状态机到线程池的全面拆解

    C#中的异步编程是一个强大且复杂的特性,它允许开发者编写非阻塞的代码,从而显著提升应用程序的响应性和吞吐量.本文将深入剖析异步编程的底层原理,从async和await关键字的工作机制,到状态机.任务调 ...

  3. 双 CDN 加速 + 智能调度

    转载自我的个人博客:双 CDN 加速 + 智能调度 |未名小站 DeepSeek 的官网是一个很典型的双 CDN 加速的场景,当我们使用 IT-Dog 对其发起多地 Ping 的时候,可以看到国内使用 ...

  4. Java集合源码--ArrayList的可视化操作过程

    关于ArrayList的元素插入.检索.修改.删除.扩容等可视化操作过程 还有关于ArrayList的迭代器.线程安全和时间复杂度 1. 底层数据结构 基于动态数组实现,内部维护一个Object[]数 ...

  5. 不写一行代码 .NET 使用 FluentCMS 快速构建现代化内容管理系统(CMS)

    前言 在当今数字化时代,内容管理系统(CMS)已成为企业和个人构建网站.博客.电子商务平台等数字应用不可或缺的工具.随着技术的不断发展,现代CMS不仅要求具备强大的内容管理功能,还需要具备高度的灵活性 ...

  6. 打工人神助攻!2025年最火OKR工具榜单,看板式目标管理必备

    OKR(目标与关键成果)已成为企业目标管理的标准框架,为确保OKR目标可落地,可视化.协作性强的工具需求激增.2025年,哪些OKR工具真正助力团队落地战略?本文盘点当下最火的5款OKR工具,帮助HR ...

  7. Golang操作Kafka

    一.使用库说明 Golang中连接kafka可以使用第三方库:github.com/Shopify/sarama 二.Kafka Producer发送消息 package main import ( ...

  8. [车载以太网] SOME/IP 参数和数据结构的序列化

    概述:SOME/IP 参数和数据结构的序列化 大小端/字节序 每个参数(parameter)的字节顺序由接口定义进行规定. 所有的 SOME/IP Header 字段,应该以网络字节序(大端)编码. ...

  9. PHP指定编码

    header("Content-type: text/html; charset=utf-8");

  10. Go 重构案例分享:订单创建逻辑重构

    背景:从 PHP (Laravel) 到 Go 的模式迁移 •原 PHP (Laravel) 实现思路:核心模式: "行为管道" (Behavior Pipeline).如何工作: ...