** ,.NET Core作为微软推出的跨平台开源框架,支持在Windows、Linux和macOS上高效开发高性能应用,本教程聚焦其跨平台最佳实践,涵盖环境配置(如SDK安装与多平台工具链)、项目结构优化(共享代码库与条件编译)及依赖管理(NuGet包兼容性),重点包括使用ASP.NET Core构建跨平台Web服务、通过Docker容器化部署,以及利用CLI工具实现自动化构建,同时强调遵循平台无关编码规范(如路径处理、文件编码),并利用依赖注入与中间件增强可移植性,通过实战示例,指导开发者规避常见跨平台陷阱,提升应用的可维护性与扩展性。
在当今的软件开发领域,跨平台开发已经成为一种主流趋势,开发者希望使用一套代码库,就能在Windows、Linux和macOS等多个操作系统上运行应用程序,而.NET Core(现称为.NET 5及更高版本)正是微软推出的一个开源、跨平台的开发框架,它不仅支持多种操作系统,还提供了高性能、可扩展性和现代化的开发体验。
本教程将深入探讨.NET Core的跨平台开发能力,包括如何搭建开发环境、编写跨平台代码、发布和部署应用,以及一些最佳实践,无论你是初学者还是有经验的开发者,本文都将帮助你更好地利用.NET Core进行跨平台开发。
什么是.NET Core?
.NET Core 是微软开发的开源、跨平台、高性能的框架,用于构建现代云应用、微服务、API 和控制台应用程序,它最初于2016年发布,后来与 .NET Framework 和 Xamarin 合并,形成了 .NET 5(2020年发布),并继续演进到 .NET 6、.NET 7 和 .NET 8。
.NET Core 的主要特点
- 跨平台:支持 Windows、Linux 和 macOS。
- 开源:托管在 GitHub 上,社区贡献活跃。
- 高性能:采用 AOT(Ahead-of-Time)编译和优化,比传统 .NET Framework 更快。
- 模块化:采用 NuGet 包管理,可以按需引入依赖。
- 统一开发体验:支持 Web(ASP.NET Core)、桌面(Avalonia、MAUI)、移动(Xamarin)、云(Azure)等。
搭建跨平台开发环境
要开始 .NET Core 跨平台开发,首先需要安装 .NET SDK(Software Development Kit),它包含了运行和构建 .NET 应用程序所需的工具。
1 安装 .NET SDK
- Windows/macOS:从 .NET 官网 下载并安装最新版本的 .NET SDK。
- Linux(如 Ubuntu、Debian、CentOS):
- 使用官方脚本安装:
wget https://dot.net/v1/dotnet-install.sh chmod +x dotnet-install.sh ./dotnet-install.sh
- 或者使用包管理器(如
apt、yum)安装。
- 使用官方脚本安装:
2 验证安装
安装完成后,在终端(或命令提示符)运行:
dotnet --version
如果显示版本号(如 0.100),说明安装成功。
3 选择代码编辑器
- Visual Studio Code(推荐):轻量级、跨平台,支持 C# 扩展(由 Microsoft 提供)。
- Visual Studio(Windows/macOS):功能强大,适合大型项目。
- JetBrains Rider:跨平台 IDE,适合企业级开发。
编写第一个跨平台 .NET Core 应用
1 创建控制台应用
在终端运行:
dotnet new console -n HelloWorldApp cd HelloWorldApp
这会创建一个简单的 C# 控制台应用,代码如下(Program.cs):
using System;
namespace HelloWorldApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, .NET Core Cross-Platform!");
}
}
}
2 运行应用
dotnet run
输出:
Hello, .NET Core Cross-Platform!
✅ 这个应用可以在 Windows、Linux 和 macOS 上运行!
跨平台开发的关键技术
1 使用 Environment 类处理平台差异
不同操作系统可能有不同的路径分隔符(Windows 用 \,Linux/macOS 用 ),可以使用 Path.Combine() 来确保兼容性:
using System;
using System.IO;
string path = Path.Combine("data", "files", "example.txt");
Console.WriteLine(path); // 在 Linux 输出 "data/files/example.txt",在 Windows 输出 "data\files\example.txt"
2 处理平台特定的代码
如果某些代码只能在特定平台运行,可以使用 RuntimeInformation 检测操作系统:
using System.Runtime.InteropServices;
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
Console.WriteLine("Running on Linux!");
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
Console.WriteLine("Running on Windows!");
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
Console.WriteLine("Running on macOS!");
}
3 使用 .NET CLI 进行跨平台构建
.NET CLI 允许你在任何平台上构建和发布应用:
dotnet build dotnet publish -c Release -r win-x64 # 发布 Windows 版本 dotnet publish -c Release -r linux-x64 # 发布 Linux 版本 dotnet publish -c Release -r osx-x64 # 发布 macOS 版本
-r参数指定目标平台(win-x64,linux-x64,osx-x64等)。-c Release表示使用 Release 模式编译。
构建跨平台 Web 应用(ASP.NET Core)
.NET Core 不仅适用于控制台应用,还广泛用于 Web 开发(ASP.NET Core),可以运行在 Windows、Linux 和 Docker 上。
1 创建 ASP.NET Core Web 应用
dotnet new webapp -n MyWebApp cd MyWebApp dotnet run
访问 http://localhost:5000,你会看到一个默认的 ASP.NET Core 页面。
2 在 Linux 上部署 ASP.NET Core
- 安装 .NET SDK / Runtime(在 Linux 服务器上)。
- 发布应用:
dotnet publish -c Release -o ./publish
- 使用 Kestrel 运行(轻量级 Web 服务器):
dotnet MyWebApp.dll
- 使用 Nginx 反向代理(生产环境推荐):
- 配置 Nginx 代理到
http://localhost:5000。 - 或使用 Docker 部署(见下一节)。
- 配置 Nginx 代理到
使用 Docker 进行跨平台部署
Docker 是跨平台容器化技术,可以让 .NET Core 应用在任何环境(Windows/Linux/macOS)上一致运行。
1 创建 Dockerfile
在项目根目录创建 Dockerfile:
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base WORKDIR /app EXPOSE 80 FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src COPY ["MyWebApp.csproj", "."] RUN dotnet restore "./MyWebApp.csproj" COPY . . RUN dotnet build "MyWebApp.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "MyWebApp.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "MyWebApp.dll"]
2 构建并运行 Docker 容器
docker build -t mywebapp . docker run -d -p 8080:80 mywebapp
访问 http://localhost:8080,你的应用将在 Docker 容器中运行!
最佳实践
- 使用
Span<T>和Memory<T>提高性能(适用于高性能场景)。 - 避免硬编码路径,使用
Path.Combine()。 - 使用依赖注入(DI) 提高可测试性和可维护性。
- 日志记录 使用
ILogger而不是Console.WriteLine。 - 测试跨平台兼容性,在 Windows、Linux 和 macOS 上测试应用。
.NET Core(.NET 5+)是一个强大的跨平台开发框架,适用于 控制台应用、Web 应用、微服务、云原生应用 等,通过本教程,你已经学会了:
✅ 如何搭建跨平台开发环境
✅ 如何编写和运行跨平台代码
✅ 如何构建和发布跨平台应用
✅ 如何使用 Docker 进行容器化部署
无论你是开发 Windows 桌面应用、Linux 服务器程序,还是跨平台 Web 服务,.NET Core 都能提供高效、灵活的解决方案。
🚀 开始你的 .NET Core 跨平台开发之旅吧!


还没有评论,来说两句吧...