.NET Core跨平台开发指南

.NET Core是一个由微软维护的开发平台/框架,支持多种操作系统,包括Windows、macOS、Linux、云平台以及嵌入式/IoT场景。本文将介绍.NET Core的基本概念、特点,并展示如何在Windows和Linux平台上进行跨平台开发

.NET Core简介

.NET Core是一个灵活的部署平台,可以在所有支持的机器上部署。它是一个跨平台的框架,可以在Windows、macOS和Linux上运行,并且可以移植到其他操作系统。此外,.NET Core可以通过任何命令行工具进行安装。它与.NET Framework、Xamarin和Mono兼容,通过.NET Standard Library实现。.NET Core平台是开源的,可以在GitHub上找到源代码。

.NET Core开发方式

Windows上开发.NET Core应用程序有两种方式:使用命令行和使用Visual Studio IDE。

首先,需要下载.NET Core SDK for Windows。然后,打开命令行工具,执行以下命令来创建一个示例项目并安装.NET Core:

cd C:\Gourav_Personal\Study Material\.NET CORE\Demo mkdir demo1 cd demo1 dotnet new dotnet restore dotnet run

为了参考,可以下载demo1附件。

安装并打开Visual Studio2015 Update 3或更高版本,安装.NET Core RC2包。创建一个项目,选择.NET Core标签下的控制台应用程序(.NET Core),编写几行代码,然后运行应用程序。

为了参考,可以下载demo2附件。

Linux服务器上安装.NET Core

以Ubuntu 16.04为例,使用Oracle Virtual Box在Windows机器上执行此用例。执行以下命令:

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893 sudo apt-get update

在Linux机器上安装以下包:

sudo dpkg -i libicu52_52.1-3ubuntu0.4_amd64.deb sudo apt-get install dotnet-sharedframework-microsoft.netcore.app-1.0.0-rc2-3002702 sudo apt-get install dotnet-dev-1.0.0-preview2-003121

Linux服务器上部署Windows创建的应用程序

将文章中附带的demo1应用程序移动到Linux机器并解压缩。在终端中转到应用程序位置,恢复包并运行项目:

dotnet restore dotnet run

在Linux上开发应用程序

打开终端,执行以下命令创建一个示例项目并安装.NET Core:

cd Downloads mkdir demo2 cd demo2 dotnet new dotnet restore dotnet run

Windows上使用Visual Studio开发MVC应用程序

打开Visual Studio2015,创建一个项目,选择Web -> ASP.NET CoreWeb应用程序(.NET Core),并选择模板为空(为了更好地理解概念)。运行应用程序。

在StartUp.cs文件中注释掉默认代码。在wwwroot文件夹中添加Html文件,将“Microsoft.AspNetCore.StaticFiles”添加到项目.json文件的依赖项部分。保存文件后恢复包,将app.UseStaticFiles()添加到启动文件的配置方法中。

例如,使用静态URL运行应用程序:

http://localhost:50938/Sample.html

将“Microsoft.AspNetCore.Mvc”添加到项目.json文件中,添加MVC结构(添加控制器和视图文件夹以及默认文件),将services.AddMvc()添加到启动文件的ConfigureServices方法中,将以下代码添加到配置方法中与MVC路由相关:

app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action}/{id?}", defaults: new { controller = "Home", action = "Index" } ); });

例如,使用MVC URL运行应用程序:

http://localhost:50938/Home/Index

添加类库以提取任何公共代码(.NET core类型)。创建接口和类并实现一些逻辑。在主项目的project.json文件中提及类库的入口,以便在主项目中使用。例如:

"ClassLibrary1": "1.0.0-*"

在Startup.cs文件中使用依赖注入概念将其用作服务。例如:

services.AddSingleton();

在控制器中实现相同的“控制器注入”。例如,使用MVC URL运行应用程序:

http://localhost:50938/Home/Index

在StartUp.cs文件的Configure方法中注释掉所有代码。在主项目中添加中间件类。在中间件类的Invoke方法中进行一些更改,例如:

public Task Invoke(HttpContext httpContext) { httpContext.Response.WriteAsync("Middleware Output"); return _next(httpContext); }

在启动文件中使用相同的中间件类,例如:

app.UseMiddleware();

例如,运行应用程序:

http://localhost:50938
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485