C#与.NET Core:跨平台开发实战
特性说明统一代码库同一套代码编译到多平台性能优化支持AOT编译(NativeAOT)生态丰富NuGet库覆盖90%+跨平台场景云原生友好无缝集成K8s、Docker、Azure等提示:使用引入可进一步简化平台适配逻辑。
·
C#与.NET Core:跨平台开发实战指南
.NET Core是微软推出的开源跨平台框架,结合C#语言可实现Windows、Linux、macOS全平台开发。以下是关键实战步骤:
1. 环境搭建
- 安装.NET Core SDK:
官网下载对应操作系统的SDK(推荐LTS版本)。 - 验证安装:
dotnet --version # 输出版本号即成功
2. 创建跨平台应用
- 新建控制台项目:
dotnet new console -n CrossPlatformApp cd CrossPlatformApp - 项目结构:
CrossPlatformApp/ ├── Program.cs # 主程序 └── CrossPlatformApp.csproj # 项目配置
3. 编写跨平台代码
示例:文件系统操作(自动适配不同OS)
using System;
using System.IO;
class Program
{
static void Main()
{
string path = Path.Combine("data", "test.txt"); // 跨平台路径拼接
File.WriteAllText(path, "Hello Linux/macOS/Windows!");
Console.WriteLine($"文件已写入: {Path.GetFullPath(path)}");
}
}
4. 运行与调试
- 本地运行:
dotnet run # 自动编译并执行 - 发布独立应用(无需运行时):
替换dotnet publish -c Release -r linux-x64 # 生成Linux可执行文件linux-x64为win-x64或osx-x64即可切换目标平台。
5. 跨平台兼容性技巧
- 路径处理:
始终使用Path.Combine()代替手动拼接路径。 - 环境差异:
if (OperatingSystem.IsLinux()) Console.WriteLine("当前系统:Linux"); - 依赖管理:
通过NuGet添加跨平台库(如System.IO.Ports支持串口通信)。
6. 进阶实战:Web API开发
dotnet new webapi -n WebService # 创建API项目
跨平台启动:
// Program.cs
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
var app = builder.Build();
app.MapControllers();
app.Run(); // 默认监听5000端口(Linux/macOS/Windows通用)
7. 容器化部署(Docker)
Dockerfile示例:
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY . .
RUN dotnet publish -c Release -o /app
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "WebService.dll"]
构建命令:
docker build -t my-api . && docker run -p 8080:80 my-api
关键优势总结
| 特性 | 说明 |
|---|---|
| 统一代码库 | 同一套代码编译到多平台 |
| 性能优化 | 支持AOT编译(NativeAOT) |
| 生态丰富 | NuGet库覆盖90%+跨平台场景 |
| 云原生友好 | 无缝集成K8s、Docker、Azure等 |
提示:使用
dotnet add package引入Microsoft.Extensions.PlatformAbstractions可进一步简化平台适配逻辑。
更多推荐
所有评论(0)