初尝 macOS Sierra 下的 .NET Core

2017-03-18  本文已影响0人  缺水的海豚

.NET Core 闹得风生水起的,什么性能甩XX几条街啊等等。恰逢 Visual Studio 2017 正式版又发布了(不过,macOS 下的 Visual Studio 2017 正式版还没有发布),就用 Visual Studio Code 测试了一下(网上看了一大堆的内容,都是用之前 .NET Core 测试版写的,看起来牛头不对马嘴,难受,这里记录一下)。

本文基于 macOS Sierra + Visual Studio Code 进行实验!

环境

整体步骤

  1. 在 macOS 上安装 Visual Studio Code
  2. 在 macOS 上安装 .NET Core(安装步骤跟着官网走就可以了,关了上面的网页的同学,可以看这里
  3. 用 Visual Studio Code 建立解决方案和项目(MVC 和 Business)

多说一句,MVC 引用 Business 把人快整疯了,结果很简单,还是命令不熟悉的原因啊……

划重点:网上很多文章都说,要引用项目,就修改 project.json 吧啦吧啦的,我可以很负责任的告诉你:最新版本(v1.1)的 .NET Core 的项目结构已经改了,你绝对找不到该文件了!!!

下面正式开始

假设已经全部安装好了。安装好之后,各项组件如下:

  • OpenSSL 1.0.2k 26 Jan 2017

安装好后,上面的组件都可用,只是版本不一定和这里一致,本人有强迫症,把各个组件都升级了。

打开 Visual Studio Code,然后按快捷键:ctrl + `(注意:ctrl 的组合键是数字键 1 前面那个波浪符号的键,不是单引号键,和 MySQL 中表名限制符一样),打开 Vusual Studio Code 的内置终端。

记住几个常用的终端命令:

1、用 mkdir 命令,建立项目文件夹,并用 cd 命令进入该目录(这里以 TestMVC 文件夹为例)。

mkdir TestMVC
cd TestMVC

2、开始建立解决方案和项目

记住几个重要的 .NET Core 的命令:

2.1 进入TestMVC 目录后,新建解决方案

// 后面无参的话,该命令会生成和当前目录名称同名的解决方案
// 如果需要了解各个参数,请详阅官方文档
dotnet new sln

2.2 新建 TestMVC.Web 项目,并将其添加到解决方案中

dotnet new mvc -o TestMVC.Web

dotnet sln add TestMVC.Web/TestMVC.Web.csproj

注意:MVC 项目建立好之后,默认框架为:netcoreapp1.1。

2.3 新建 TestMVC.Business 项目,并将其项目添加到解决方案中

dotnet new classlib -o TestMVC.Business

dotnet sln add TestMVC.Business/TestMVC.Business.csproj

注意:Lib 项目建立好之后,默认框架为:netstandard1.4。

2.4 在 TestMVC.Web 项目中添加 TestMVC.Business 的引用(这一步,目前网上很多内容都是老版本的方式,v1.1之后,改动很大,已经删除了 project.json 这个文件,MS 的意思是直接修改 csproj 文件。这也从侧面说明 .NET Core 目前还不能说完全稳定了。)

// 方法一:使用 dotnet 命令自动添加
dotnet add TestMVC.Web/TestMVC.Web.csproj reference TestMVC.Business/TestMVC.Business.csproj

// 方法二:手动修改配置文件添加
// 打开 TestMVC.Web.csproj 文件,添加以下 xml 内容:
<ItemGroup>
    <ProjectReference Include="..\TestMVC.Business\TestMVC.Business.csproj" />
</ItemGroup>

2.5 释放整个项目的“包”,并起飞~~~

dotnet restore   // 释放包

// 由于 run 命令已经包含了编译动作,所以,就不用单独 build 命令了
// 这里写出来,以备不时之需
// dotnet build

dotnet run   // 运行

// 如果需要发布,可用 publish 命令
// dotnet publish

2.6 打开浏览器,输入:http://localhost:5000,即可看到!

写在最后

最后的最后

.NET 整体框架,貌似还没完全统一。目前,这些概念貌似还有点容易混淆:

以上这几个的理解,就是导致了新建的 MVC 和 Lib 的默认框架不一致的原因。

大致结构如下所示(来自官网):

各版本对应关系图(来自官网):

上一篇 下一篇

猜你喜欢

热点阅读