文章出處

寫在前面

閱讀目錄:

前兩天寫了這樣一篇博文《Building Modern Web Apps-構建現代的 Web 應用程序(一些感想)》,在博文的最后我有提到:

我個人覺得 MSDN 應該是 .NET 程序員常去的社區,為什么?當你還在糾結 ASP.NET Web Forms 和 ASP.NET MVC 時,你所不知道的是,人家已經在 Mac OS 中使用 ASP.NET vNext 了。

關于 Mac OS 中構建 ASP.NET vNext,雖然 ASP.NET vNext 正式版本還沒發布,但是老外早就已經在嘗試了,甚至有個哥們錄制了一段視頻上傳到 YouTube,那我覺得咱們博客園也不能落后,下面摘自我在 Mac OS X 系統中構建 ASP.NET vNext 的一些筆記,希望對那些狂熱 .NET 的童鞋們一些幫助。

需要聲明的是,其實我對 Mac OS X 系統以及 Mono 并不是很熟悉,因為當時時間有限,一些配置都是 Google 找的英文資料,所以有些地方我也是“知其然而不知所以然”,希望有時間可以深入研究下,本篇博文內容你可以當作一個教程來讀。

娓娓道來

首先,我先大致列一下,在 Mac OS X 系統中需要配置或安裝的東西:

1. Install ASP.NET vNext Command Line Tools

這一部分我們的目的是:To install KVM(K Version Manager) and the correct version of Mono on OS X using Homebrew.

1.1 安裝 Homebrew

什么是 Homebrew?

Homebrew is the easiest and most flexible way to install the UNIX tools Apple didn’t include with OS X.

我們能夠通過終端方便的使用它安裝管理蘋果沒有自帶的 UNIX 相關工具軟件,這個很重要,因為下面我們所進行的安裝都是在“終端命令”中進行的,Homebrew 安裝命令為:

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Mac OS X 已經自帶 ruby,所以我們可以直接使用 ruby,以上命令直接在粘貼在終端中執行,詳細使用請參考:Homebrew

1.2 使用 Homebrew,安裝 KVM

  • Run command brew tap aspnet/k to tap the ASP.NET vNext related git repositories.
  • Run command brew install kvm to install KVM. This also automatically install the latest KRE package from https://www.myget.org/f/aspnetmaster/api/v2 feed.
  • Run command source kvm.sh on your terminal if your terminal cannot understand kvm.

注:下載并安裝 KVM 花的時間會比較長,最后一個命令是檢測 KVM 是否已經成功安裝。

2. Install Sublime Text 3

關于 Sublime Text,不管是 Windows,Mac OS,還是 Linux,我們應該或多或少的接觸過,功能強大就不多說了。在 Mac OS 中打代碼,雖然沒有 Visual Studio,但是我們有 Sublime Text,下載地址:http://www.sublimetext.com/3

3. Install Sublime Kulture Using the Package Control Plugin

3.1 Install Package Control Plugin

Package Control Plugin 是什么?它在 Sublime Text 中的作用,可以理解為終端在 Mac OS 中的作用一樣,比如下面我們啟動或編譯 ASP.NET vNext 項目,就是通過 Package Control Plugin 命令,了解更多內容

兩種安裝方式,具體可參照官方說明:https://sublime.wbond.net/installation

命令安裝:

  1. 打開 Sublime Text 3。
  2. 按 Ctrl+` 或 View > Show Console,調出 Console。
  3. 粘貼以下代碼到底部命令行并回車:
    import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
  4. 重啟 Sublime Text 3。
  5. 如果在 Perferences->package settings 中看到 package control 這一項,則安裝成功。

如果命令安裝方式不成功,請嘗試手動安裝(我當時好像就是這種方式安裝的):

  1. 打開 Sublime Text 3。
  2. 選擇 Preferences > Browse Packages…
  3. 打開這個文件夾,進入 Installed Packages 文件夾(沒有的話,自己創建一個)。
  4. 下載 Package Control.sublime-package 文件,然后復制到 Installed Packages 文件夾下。
  5. 重啟 Sublime Text 3

3.2 Install Sublime Kulture

Sublime Kulture 是什么?其實我也不是很清楚,你可以把它看作是 Sublime Text 3 支持 ASP.NET vNext 的一種插件,github 官方地址:https://github.com/ligershark/kulture/

命令安裝:

  1. 打開 Sublime Text 3。
  2. 按下 Cmd+Shift+P 調出命令面板。
  3. 輸入并選擇 Package Control: Install Package
  4. 輸入并選擇 Kulture,然后進行安裝。

手動安裝:

  1. 打開終端,輸入命令:cd file:///Users/{username}/Library/Application Support/Sublime Text 3/Packages/
  2. 進入 Packages 目錄下,輸入命令:git clone https://github.com/ligershark/Kulture.git,將 Kulture 克隆到 Packages 文件夾下。

4. Samples Test

做完以上操作,我們基本上就可以使用 Sublime Text 3 開發 ASP.NET vNext 應用程序了,我們使用 GitHub 上一個開源示例作為演示,地址:https://github.com/shirhatti/Home.git

4.1 Home 演示項目克隆到本地

在 Mac OS 中隨便找個目錄,在終端中輸入命令:git clone https://github.com/shirhatti/Home.git

打開 Home > Samples 目錄,我們會發現里面有三個項目文件夾:ConsoleApp,HelloMvc 和 HelloWeb,這邊我們使用 HelloMvc(ASP.NET MVC),作為演示項目。

4.2 在 Sublime Text 3 中,打開 HelloMvc

操作步驟:

  1. 打開 Sublime Text 3,然后打開 File > Open,選擇 HelloMvc 文件夾。
  2. 打開 Tools > Build System,選擇 ASP.NET 選項。

Sublime Text 3 視圖:

4.3 在 Sublime Text 3 中,恢復 NuGet 程序包

演示項目 HelloMvc,是我們從 github 上克隆下來的源代碼,但是項目依賴的程序包,需要我們手動恢復,恢復 NuGet 程序包步驟:

  1. 按下 Cmd + Shift + P 調出命令面板。
  2. 選擇 Run K Commands 命令并回車。
  3. 選擇 kpm restore 命令并回車。

4.4 在 Sublime Text 3 中,編譯并運行 HelloMvc

編譯命令:Cmd + B 或 F7,使用 Shft + F4 定位錯誤。

啟動并運行 HelloMvc:

  1. 按下 Cmd + Shift + P 調出命令面板。
  2. 選擇 Run K Commands 命令并回車。
  3. 選擇 k kestrel 命令并回車。

啟動成功:

我們可以在 peoject.json 中指定 host 地址,比如:"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5000"

瀏覽器輸入:http://localhost:5000/

5. generator-aspnet

其實以上操作,我們只是根據現有項目編譯并運行,那如何構建一個新的 ASP.NET vNext 應用程序呢?就像我們使用 Visual Studio New Project 一樣,答案是 generator-aspnet

在安裝 generator-aspnet 之前,必須先安裝 node.js(This requires you to have node.js and npm already installed)。

官方安裝命令:npm install -g generator-aspnet,但是我安裝的時候不知道怎么回事報錯,具體什么原因我現在也記不得了,大概的解決方式是在命令之前加“sudo”,參考資料:latest angular generator throwing out so many errors on my macbook pro

安裝命令(測試可行):

  • sudo npm install -g yo
  • sudo npm install -g generator-aspnet

使用命令:yo aspnet,詳細演示:

寫在最后

補充:通過OmniSharp,Sublime寫C#代碼也能智能感知啦(包括Vim, Emacs, Atom, Brackets) http://www.omnisharp.net/

讓 ASP.NET vNext 在 Mac OS 中飛呀飛,這個飛的過程,現在看來真是不太容易,前后斷斷續續花了三天時間,有些記錄的地方可能也不是很準確,但不管怎樣,總算分享出來了,如果無意間某一點的內容能幫到你,我覺得這個分享就值了。

了解更多 ASP.NET vNext:

本篇參考資料:


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()