在 Mac OS 上創建並運行 ASP.NET Core 1.0 網站


在 Mac OS 上創建並運行 ASP.NET Core 1.0 網站

警告

您當前查看的頁面是未經授權的轉載!
如果當前版本排版錯誤,請前往查看最新版本:http://www.cnblogs.com/qin-nz/p/aspnet5-first-app-on-mac-os.html

提示

更新時間:2016年01月20日。

相信用 Mac 作為主力機型的各位是不會玩 ASP.NET 的,所以我真的很懷疑我這篇文章會有人看么?

安裝 .NET 版本管理器(DNVM)

首先,我們需要安裝 .NET 版本管理器,其實就是一個腳本文件用來幫助下載和管理 OS X 上都安裝了哪些.NET運行時的版本。

打開終端,輸入

curl -sSL \
https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh \
| DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh

安裝完成之后,就可以運行 dnvm 命令了,不帶任何參數的情況下會顯示幫助文件。

安裝 .NET 運行環境(DNX)

首先,你需要選擇安裝 mono 還是 coreclr ,從 beta7 開始 coreclr 已經可以用了,不過截至目前,默認安裝的是 mono 版的。 如果想要安裝mono版的DNX,必須先安裝 mono,詳情可參考 Install Mono on Mac OS X

小技巧

Visual Studio Code 需要 mono 才能提供調試等高級功能。

本文選擇coreclr版的運行時,通過以下命令獲取最新版的 coreclr ,默認是 x64 。

dnvm upgrade -r coreclr

目前的最新版是 1.0.0-rc1-update1,安裝完成后,可以使用 dnvm list 查看現有的.NET 運行環境(DNX)。

https://qinblog.blob.core.windows.net/images/dnvm-list-command.jpg

好了,到目前為止,你已經完成了所有的安裝,可以使用你最鍾愛的文本編輯器開始從頭創建代碼了。 我推薦用 Visual Studio Code

安裝初始代碼生成器

然而,你真的打算從零開始么?如果不是的話,還是從已有的模板開始吧。下面介紹的 Yeoman 是幫助我們生成一個初始的項目的。

想要安裝 Yeoman ,那要先安裝 npm 才可以。我記得我裝了 XCode 之后,就有npm了。

安裝 Yeoman 和 bower

npm install -g yo bower grunt-cli gulp

安裝 OmniSharp ASP.NET generators

OmniSharp ASP.NET generators ,這個才是用來生成模板的東西,它需要用Yeoman來運行,不過這一步很簡單,只需運行

npm install -g generator-aspnet

按照模板創建項目

使用 yo aspnet 命令,選擇需要創建的類型。如果是網站的話,建議選擇 Web Application ,可以選擇完整版或者基本版。 完整版包含了用戶的鑒權和登錄管理,引用文件很多,如果處於學習目的,還是先選擇basic的比較適合。

https://qinblog.blob.core.windows.net/images/yo-aspnet-choose-project-type.jpg

選擇后,輸入項目名字,即可生成完成。

警告

目前有個小bug,創建完文件后,這個程序貌似不能直接退出。

切換到生成的項目文件目錄,運行 dnu restorebower install 分別恢復服務器端和瀏覽器端的包引用。

注解

有關 dnu restorebower install 的區別,請參考 ASP.NET Core 1.0 中的依賴項管理

運行代碼

接下來,使用 dnx web 就應該可以把程序編譯並運行起來了。 如果你非要用 dnu build 自己編譯一下,會發現提示編譯失敗……原因是 project.json 文件中, dnx451 一行會指示編譯器針對 .NET Framework 4.5.1 在 Mac 上編譯,這顯然是不可能的。

如果你只想讓程序運行於 .NET Core 5 上,那么可以把這行刪掉。

{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },
  "tooling": {
    "defaultNamespace": "basic"
  },

  "dependencies": {
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.FileProviderExtensions" : "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final"
  },

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
  },

  "frameworks": {
    "dnx451": {},
    "dnxcore50": {
      "dependencies": {
        "System.Console": "4.0.0-beta-*"
      }
    }
  },

  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ],
  "scripts": {
    "prepublish": [
      "npm install",
      "bower install",
      "gulp clean",
      "gulp min"
    ]
  }
}

現在依次使用 dnu restorednu buili (可選) 和 dnx web 把程序運行起來了,打開瀏覽器,訪問 http://localhost:5000 即可看到網站。

小技巧

運行ASP.NET Core 1.0 的 web 服務器是 Kestrel,可以通過 project.json 進行 Kestrel 的配置。

https://qinblog.blob.core.windows.net/images/basic-web-application.jpg

好的,現在你已經可以成功的運行一個簡單的 ASP.NET Core 1.0 的網站了。

聲明 知識共享許可協議

在 Mac OS 上創建並運行 ASP.NET Core 1.0 網站勤奮的小孩 創作,采用 知識共享 署名-相同方式共享 4.0 國際 許可協議進行許可。
本許可協議授權之外的使用權限可以從 http://space.cnblogs.com/msg/send/qin-nz 處獲得。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM