2026/2/4 5:55:03
网站建设
项目流程
网站建设零金手指花总,做网站 杭州,教你如何做好网站,注册好网站以后怎么做文档信息项目内容文档类型升级说明版本v1.0创建日期2025年12月目标读者开发团队、架构师、技术负责人升级版本.NET 9 → .NET 101. 升级概述1.1 升级背景CodeSpirit 框架已全面升级到 .NET 10 和 Aspire 13.0。.NET 10 是 Microsoft 最新发布的长期支持#xff08;LTS#xf…文档信息项目内容文档类型升级说明版本v1.0创建日期2025年12月目标读者开发团队、架构师、技术负责人升级版本.NET 9 → .NET 101. 升级概述1.1 升级背景CodeSpirit 框架已全面升级到.NET 10和Aspire 13.0。.NET 10 是 Microsoft 最新发布的长期支持LTS版本Aspire 13.0 标志着从 .NET Aspire 转变为Aspire- 一个真正的多语言应用平台。1.2 升级范围• ✅所有项目文件已更新为net10.0• ✅核心框架和组件全部升级到 .NET 10• ✅Aspire 平台升级到 13.0支持多语言开发1.3 快速升级使用 Aspire CLI 一键升级# 更新 Aspire CLI irm https://aspire.dev/install.ps1 | iex # Windows curl -sSL https://aspire.dev/install.sh | bash # macOS/Linux # 自动更新所有包 aspire update2. .NET 10 新特性2.1 核心框架版本组件旧版本新版本.NET SDK9.010.0ASP.NET Core9.010.0Entity Framework Core9.010.0C# 语言版本C# 12C# 132.2 性能提升启动性能•冷启动时间减少约 20%•热启动时间减少约 25%•GC 性能垃圾回收器优化减少暂停时间运行时性能•API 响应时间P50 提升 15%P95 提升 17%•内存占用优化约 10%•数据库查询性能提升 12-18%2.3 C# 13 新特性1. 改进的params集合// 支持 SpanT 和 ReadOnlySpanT public void ProcessItems(params Spanint items) { }2. 扩展nameof表达式// 支持访问实例成员和方法参数 nameof(obj.Property.SubProperty) nameof(method(parameter))3. 改进的插值字符串// 更好的性能减少分配 var message $Hello {name}, you have {count} items;4. 新的ref readonly参数// 传递只读引用避免复制 public void Process(in LargeStruct data) { }2.4 ASP.NET Core 10 新特性1. 改进的 JSON 序列化•System.Text.Json性能提升约 30%• 更好的内存使用• 支持更多序列化选项2. 增强的异步支持• 更好的异步性能• 改进的IAsyncEnumerable支持• 优化的异步流处理3. 原生 AOT 支持• 支持原生 AOT 编译• 更快的启动时间• 更小的部署包4. 改进的依赖注入• 更好的性能• 支持更多生命周期选项• 改进的错误信息2.5 Entity Framework Core 10 新特性1. 性能优化• 查询性能提升 12-18%• 批量操作优化• 更好的连接池管理2. 新的查询功能• 改进的复杂查询支持• 更好的 LINQ 转换• 增强的原始 SQL 支持3. 迁移改进• 更快的迁移应用• 更好的迁移冲突检测• 改进的迁移脚本生成3. Aspire 13.0 新特性3.1 多语言平台支持Aspire 13.0 标志着从 .NET Aspire 转变为Aspire- 一个真正的多语言应用平台。Python 作为一等公民支持的 Python 应用模型// Python 脚本 var etl builder.AddPythonApp(etl-job, ../etl, process_data.py); // Python 模块如 Celery var worker builder.AddPythonModule(celery-worker, ../worker, celery) .WithArgs(worker, -A, tasks); // Uvicorn/FastAPI 应用 var api builder.AddUvicornApp(api, ./api, main:app) .WithExternalHttpEndpoints() .WithHttpHealthCheck(/health);特性• 自动包管理检测uv、pip、venv• VS Code 调试支持• 自动 Dockerfile 生成• Python 版本自动检测JavaScript 作为一等公民统一的 JavaScript 应用模型// 自动检测 npm/yarn/pnpm var frontend builder.AddJavaScriptApp(frontend, ./frontend); // Vite 应用优化支持 var viteApp builder.AddViteApp(vite-app, ./vite-app) .WithReference(api); // 自定义包管理器 var yarnApp builder.AddJavaScriptApp(admin, ./admin) .WithYarn();特性• 自动包管理器检测• 智能构建脚本开发/生产• 自动 Dockerfile 生成• 多阶段构建优化3.2 新的 CLI 工具aspire init- 交互式初始化aspire init• 自动发现现有解决方案• 创建单文件 AppHost• 智能添加项目• 配置服务默认值aspire update- 一键更新aspire update # 更新所有包 aspire update --self # 更新 CLI 本身 aspire update --project ./src/AppHost # 更新特定项目aspire do- 管道系统aspire do build # 构建所有容器 aspire do deploy # 完整部署 aspire do publish # 发布产物 aspire do diagnostics # 诊断管道特性• 依赖跟踪和并行执行• 增量构建• 详细的进度报告• 可扩展的步骤系统aspire new- 精选模板aspire new• Blazor Minimal API starter• React (Vite) FastAPI starter• Empty AppHost3.3 单文件 AppHost无需项目文件只需一个.cs文件// apphost.cs #:sdk Aspire.AppHost.Sdk13.0.0 #:package Aspire.Hosting.Redis13.0.0 var builder DistributedApplication.CreateBuilder(args); var cache builder.AddRedis(cache); var api builder.AddProjectProjects.Api(api) .WithReference(cache); builder.Build().Run();3.4 容器文件作为构建产物支持跨容器文件共享var frontend builder.AddViteApp(frontend, ./frontend); var api builder.AddUvicornApp(api, ./api, main:app); // 将前端构建产物复制到 API 容器 api.PublishWithContainerFiles(frontend, ./static);应用场景• 前端静态文件由后端服务• 构建产物共享• 多阶段容器构建3.5 多语言基础设施多语言连接属性var postgres builder.AddPostgres(db).AddDatabase(mydb); // .NET 使用 ConnectionStrings var dotnetApi builder.AddProjectProjects.Api() .WithReference(postgres); // Python 使用 URI var pythonWorker builder.AddPythonModule(worker, ./worker, worker.main) .WithEnvironment(DATABASE_URL, postgres.Resource.UriExpression); // Java 使用 JDBC var javaApp builder.AddExecutable(java-app, java, ./app, [-jar, app.jar]) .WithEnvironment(DB_JDBC, postgres.Resource.JdbcConnectionStringExpression);跨语言证书信任• Python自动配置SSL_CERT_FILE和REQUESTS_CA_BUNDLE• Node.js自动配置NODE_EXTRA_CA_CERTS• 容器自动挂载证书包3.6 VS Code 扩展新的 VS Code 扩展提供•多语言调试C# 和 Python 断点支持•项目创建从模板创建新项目•集成管理添加 Aspire 集成•部署配置管理部署设置3.7 部署状态管理自动持久化部署配置• 记住 Azure 订阅、资源组、位置选择• 保存参数值• 跟踪已部署资源• 加快迭代部署速度3.8 Dashboard 增强Aspire MCP 服务器• AI 助手集成Claude Code、GitHub Copilot CLI、Cursor• 查询资源和遥测数据• 执行资源命令• 实时分析交互服务改进•动态输入级联下拉框支持•组合框下拉框可接受自定义文本•多语言图标.NET、JavaScript、Python 图标3.9 破坏性变更⚠️重要变更1.包重命名•Aspire.Hosting.NodeJs→Aspire.Hosting.JavaScript2.API 变更•AddNpmApp()→AddJavaScriptApp()• 发布回调 API →aspire do管道系统• 生命周期钩子 → 事件订阅者3.AppHost SDK• SDK 直接在Project标签指定•Aspire.Hosting.AppHost已包含在 SDK 中4. 快速升级指南4.1 环境要求•.NET 10 SDK必须安装 .NET 10 SDK•Aspire CLI 13.0使用新的 CLI 工具4.2 一键升级# 1. 安装/更新 Aspire CLI irm https://aspire.dev/install.ps1 | iex # Windows curl -sSL https://aspire.dev/install.sh | bash # macOS/Linux # 2. 自动更新所有 Aspire 包 aspire update # 3. 验证升级 dotnet build aspire run4.3 关键代码变更AppHost 项目文件!-- 旧版本 -- Project SdkMicrosoft.NET.Sdk Sdk NameAspire.AppHost.Sdk Version9.5.2 / /Project !-- 新版本 -- Project SdkAspire.AppHost.Sdk/13.0.0 PropertyGroup TargetFrameworknet10.0/TargetFramework /PropertyGroup /ProjectJavaScript 应用// 旧版本 builder.AddNpmApp(frontend, ./frontend); // 新版本 builder.AddJavaScriptApp(frontend, ./frontend);包引用!-- 旧版本 -- PackageReference IncludeAspire.Hosting.NodeJs Version9.5.2 / !-- 新版本 -- PackageReference IncludeAspire.Hosting.JavaScript Version13.0.0 /5. 迁移示例5.1 从 AddNpmApp 迁移// 旧版本 (9.x) var frontend builder.AddNpmApp(frontend, ../Web/ClientApp, scriptName: dev, args: [--port, 3000]); // 新版本 (13.0) var frontend builder.AddJavaScriptApp(frontend, ../Web/ClientApp) .WithRunScript(dev) .WithArgs(--port, 3000);5.2 从发布回调迁移到管道// 旧版本 (9.x) var api builder.AddProjectProjects.Api(api) .WithPublishingCallback(async (context, cancellationToken) { await CustomDeployAsync(context, cancellationToken); }); // 新版本 (13.0) var api builder.AddProjectProjects.Api(api) .WithPipelineStepFactory(context { returnnew PipelineStep() { Name CustomDeployStep, Action CustomDeployAsync, RequiredBySteps [WellKnownPipelineSteps.Publish] }; });5.3 从生命周期钩子迁移到事件// 旧版本 (9.x) builder.Services.TryAddLifecycleHookMyLifecycleHook(); // 新版本 (13.0) builder.Services.TryAddEventingSubscriberMyEventSubscriber();6. 性能提升6.1 .NET 10 性能提升指标提升幅度应用启动时间15-20%API 响应时间P5015%API 响应时间P9517%内存占用10%JSON 序列化30%数据库查询12-18%6.2 Aspire 13.0 性能优化•并行部署独立操作自动并行化部署时间显著减少•增量构建只构建变更的部分•智能缓存构建产物和依赖缓存•容器优化多阶段构建更小的镜像体积7. 常见问题7.1 包找不到问题NU1101: Unable to find package Aspire.Hosting.NodeJs解决包已重命名为Aspire.Hosting.JavaScript使用aspire update自动更新7.2 API 不存在问题AddNpmApp()方法不存在解决使用AddJavaScriptApp()替代7.3 SDK 版本错误问题AppHost SDK 版本找不到解决更新项目文件为Project SdkAspire.AppHost.Sdk/13.0.08. 参考资源8.1 官方文档• .NET 10 官方文档• ASP.NET Core 10 新特性• Aspire 13.0 新特性• Aspire 官方文档• Aspire CLI 参考8.2 相关文档• CodeSpirit 框架核心亮点• 开发环境搭建指南• 总体技术体系说明9. 支持和反馈如遇到升级相关问题请通过以下方式获取支持•GitHub Issues: 提交问题•Gitee Issues: 提交问题