65.9K
CodeProject 正在变化。 阅读更多。
Home

教程 | .NET Core 在 Windows 和 Linux 上的快速入门

starIconstarIconstarIconstarIconstarIcon

5.00/5 (14投票s)

2016年7月19日

CPOL

4分钟阅读

viewsIcon

33651

downloadIcon

719

本文将帮助您快速开始在 Linux 和 Windows 上使用 .NET Core 构建应用程序。

引言

本文将涵盖以下内容

  • 简要概念
  • 实现 - 在 Windows 中开发应用程序的两种方法
  • 实现 - 在 Windows 中开发应用程序
  • 实现 - 在 Linux 服务器(Ubuntu 16.04)上安装 .NET Core
  • 实现 - 将应用程序(在 Windows 上创建)部署到 Linux 服务器(Ubuntu 16.04)
  • 实现 - 在 Linux 上开发应用程序
  • 实现 - 使用 Visual Studio 在 Windows 上开发 MVC 应用程序

简要概念

什么是 .NET Core?

  • 由 Microsoft 维护的开发平台/框架。
  • 它支持以下操作系统
    • Windows
    • MAC
    • Linux
    • 嵌入式/物联网场景

特点

  • 灵活部署 
    • 可以部署在所有支持的机器上。
  • 跨平台 
    • 可在 Windows、MAC 和 Linux 上运行;- - 今天的内容将涵盖此部分
    • 可以移植到其他操作系统。- - 今天的内容将涵盖此部分
  • 可以通过任何命令行工具安装。
  • 兼容性
    • .NET Core 通过 .NET Standard 库与 .NET Framework、Xamarin 和 Mono 兼容。
  • 开源 

实现(使用代码)

1. 在 Windows 中开发应用程序的两种方法

  • 使用命令行
  • 使用 Visual Studio IDE

2. 在 Windows 中开发应用程序

2.1. 使用命令行 - 步骤

  • 打开 cmd.exe / 相关的命令行工具
  • 按照以下命令创建示例项目并安装 .NET Core
    • cd C:\Gourav_Personal\Study Material\.NET CORE\Demo
    • mkdir demo1
    • cd demo1
    • dotnet new

  • 还原包并运行项目
    • dotnet restore
    • dotnet run

下载 demo1 附件作为参考。

2.2. 使用 Visual Studio - 步骤

  • 安装并打开 VS 2015(更新 3 **或更高版本**
  • 安装 .NET Core RC2 包
  • 创建一个项目
  • 选择 .NET Core 选项卡 **并选择** 控制台应用程序(.NET Core)

  • 在 program.cs 中编写几行代码

  • 运行应用程序。

下载 demo2 附件作为参考。

3. 在 Linux 服务器(Ubuntu 16.04)上安装 .NET Core

  • 我在 Windows 机器上使用 **Oracle Virtual Box**配合 **Ubuntu 16.04** 镜像来执行此用例。
  • 运行以下命令使其正常工作
    • 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

  • 现在转到下载位置并运行以下命令
    • 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

4. 将应用程序(在 Windows 上创建)部署到 Linux 服务器(Ubuntu 16.04)

  • 将文章中附带的 demo1 应用程序移动到 Linux 机器上并解压。
  • 在终端中转到应用程序目录。

  • 还原包并运行项目
    • dotnet restore

  • dotnet run

5. 在 Linux 上开发应用程序

步骤

  • 打开终端
  • 按照以下命令创建示例项目并安装 .NET Core
    • cd Downloads
    • mkdir demo2
    • cd demo2
    • dotnet new

  • 还原包并运行项目
    • dotnet restore
    • dotnet run

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

步骤 – 多种概念

  • 左键单击 gadget 并拖动以移动它。左键单击 gadget 的右下角并拖动以调整其大小。右键单击 gadget 以访问其属性。
    • 打开 VS 2015 并创建项目

  • 选择 Web - > ASP .NET Core Web 应用程序(.NET Core)并选择模板 – **Empty**(以便更好地理解概念)

  • 运行应用程序

  • 静态文件
    • 注释掉 StartUp.cs 文件中的默认代码。

  • 在 wwwroot 文件夹中添加 HTML 文件

  • 在 project.json 文件的 dependencies 部分添加“Microsoft.AspNetCore.StaticFiles”

  • 在 VS 2015 中保存文件后还原包
  • 在 startup 文件中的 configure 方法中添加 app.UseStaticFiles()

  • 使用静态 URL 运行应用程序,例如:https://:50938/Sample.html

  • MVC
    • project.json 文件中添加“Microsoft.AspNetCore.Mvc”

  • 添加 MVC 结构(添加 Controllers 和 Views 文件夹以及其中的默认文件)

  • 在 startup 文件中的“ConfigureServices”方法中添加 services.AddMvc()**
  • 在与 MVc 路由相关的“Configure”方法中添加以下代码
app.UseMvc(routes =>
      {
        routes.MapRoute(
          name: "default",
          template: "{controller}/{action}/{id?}",
          defaults: new { controller = "Home", action = "Index" }
        );
      });

  • 使用 MVC URL 运行应用程序,例如:https://:50938/Home/Index

  • 类库概念
    • 添加类库以提取任何通用代码(.NET Core 类型)

  • 创建接口和类并实现一些逻辑

  • 在主项目的 project.json 中提及入口点“用于类库”,以便在主项目中使用它。例如:"ClassLibrary1": "1.0.0-*"

  • 在 Startup.cs 文件中使用依赖注入概念将其作为服务使用。例如:services.AddSingleton<IInterface, Class1>();

  • 将其实现到控制器中作为“Controller Injection”

  • 使用 MVC URL 运行应用程序,例如:https://:50938/Home/Index

  • 中间件概念
    • 注释掉 StartUp.cs 文件中“Configure”方法中的所有代码。

  • 在主项目中添加中间件类。

  • 对中间件类中的“Invoke”方法进行一些更改,例如:
    public Task Invoke(HttpContext httpContext)
    {
      httpContext.Response.WriteAsync("Middleware Output");
      return _next(httpContext);
    }

  • 在 startup 文件中使用相同的中间件类,例如:app.UseMiddleware();

  • 运行应用程序,例如:https://:50938

下载 demo3 附件作为参考。

关注点

我喜欢使用 .NET Core,因为它允许我们在任何平台上开发应用程序,而且无论应用程序是在 Windows 还是 Linux 上开发的,都可以部署到两者上。

Microsoft 太棒了 :)

参考演示

我附上了三个演示文件,用于演示文章中显示的解释。

© . All rights reserved.