寫在前面
閱讀目錄:
前兩天寫了這樣一篇博文《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
命令安裝:
- 打開 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 文件夾(沒有的話,自己創建一個)。
- 下載 Package Control.sublime-package 文件,然后復制到 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"
瀏覽器輸入: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:
- 振奮人心吶!關于下一代.NET——ASP.NET vNext 的更多說明
- ASP.NET vNext 概述
- 開發 ASP.NET vNext 初步總結(使用Visual Studio 2014 CTP1)
- 分享我對 ASP.NET vNext 的一些感受,也許多年回過頭看 So Easy!
- POCO Controller 你這么厲害,ASP.NET vNext 知道嗎?
- 等待發現。。。
本篇參考資料:
文章列表