.NET Core是一个由微软维护的开发平台/框架,支持多种操作系统,包括Windows、macOS、Linux、云平台以及嵌入式/IoT场景。本文将介绍.NET Core的基本概念、特点,并展示如何在Windows和Linux平台上进行跨平台开发。
.NET Core是一个灵活的部署平台,可以在所有支持的机器上部署。它是一个跨平台的框架,可以在Windows、macOS和Linux上运行,并且可以移植到其他操作系统。此外,.NET Core可以通过任何命令行工具进行安装。它与.NET Framework、Xamarin和Mono兼容,通过.NET Standard Library实现。.NET Core平台是开源的,可以在GitHub上找到源代码。
在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附件。
以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
将文章中附带的demo1应用程序移动到Linux机器并解压缩。在终端中转到应用程序位置,恢复包并运行项目:
dotnet restore
dotnet run
打开终端,执行以下命令创建一个示例项目并安装.NET Core:
cd Downloads
mkdir demo2
cd demo2
dotnet new
dotnet restore
dotnet run
打开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