讓 ASP.NET vNext 在 Mac OS 中飛呀飛。。。
寫在前面
閱讀目錄:
我個人覺得 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,以上命令直接在貼上在終端中執行,詳細使用請參考:
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 命令,瞭解更多內容。
命令安裝:
- 開啟 Sublime Text 3。
- 按 Ctrl+` 或 View > Show Console,調出 Console。
- 貼上以下程式碼到底部命令列並回車:
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)
- 重啟 Sublime Text 3。
- 如果在 Perferences->package settings 中看到 package control 這一項,則安裝成功。
如果命令安裝方式不成功,請嘗試手動安裝(我當時好像就是這種方式安裝的):
- 開啟 Sublime Text 3。
- 選擇 Preferences > Browse Packages…
- 開啟這個資料夾,進入 Installed Packages 資料夾(沒有的話,自己建立一個)。
- 重啟 Sublime Text 3
3.2 Install Sublime Kulture
Sublime Kulture 是什麼?其實我也不是很清楚,你可以把它看作是 Sublime Text 3 支援 ASP.NET vNext 的一種外掛,github 官方地址:https://github.com/ligershark/kulture/
命令安裝:
- 開啟 Sublime Text 3。
- 按下 Cmd+Shift+P 調出命令面板。
- 輸入並選擇
Package Control: Install Package
。 - 輸入並選擇
Kulture
,然後進行安裝。
手動安裝:
- 開啟終端,輸入命令:
cd file:///Users/{username}/Library/Application Support/Sublime Text 3/Packages/
- 進入 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
操作步驟:
- 開啟 Sublime Text 3,然後開啟 File > Open,選擇 HelloMvc 資料夾。
- 開啟 Tools > Build System,選擇 ASP.NET 選項。
Sublime Text 3 檢視:
4.3 在 Sublime Text 3 中,恢復 NuGet 程式包
演示專案 HelloMvc,是我們從 github 上克隆下來的原始碼,但是專案依賴的程式包,需要我們手動恢復,恢復 NuGet 程式包步驟:
- 按下 Cmd + Shift + P 調出命令面板。
- 選擇
Run K Commands
命令並回車。 - 選擇
kpm restore
命令並回車。
4.4 在 Sublime Text 3 中,編譯並執行 HelloMvc
編譯命令:Cmd + B 或 F7,使用 Shft + F4 定位錯誤。
啟動並執行 HelloMvc:
- 按下 Cmd + Shift + P 調出命令面板。
- 選擇
Run K Commands
命令並回車。 - 選擇
k kestrel
命令並回車。
啟動成功:
我們可以在 peoject.json 中指定 host 地址,比如:"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls 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:
本篇參考資料: