簡(jiǎn)單談?wù)?NET Core跨平臺(tái)開發(fā)
對(duì)于.NET開源計(jì)劃想必關(guān)注的人已經(jīng)躍躍欲試了,但是真正將其用于開發(fā)的目前來(lái)說(shuō)不多。畢竟截至本文發(fā)布時(shí).NET Core才發(fā)布到1.0RC2版本。正式版預(yù)計(jì)還有一段時(shí)間。況且大多數(shù)人都是持觀望態(tài)度,就算開發(fā)仍然用的還是.NET Framework。另外不得不說(shuō)的一點(diǎn)就是.NET開源的進(jìn)度很驚人但是社區(qū)建設(shè)還有待提升,很多配套的東西還不齊全。Java在語(yǔ)言層級(jí)上可能落后.NET但是Java的社區(qū)力量是.NET遠(yuǎn)不及的。
一、安裝SDK
.NET Core發(fā)布版:https://www.microsoft.com/net/core
.NET Core提供了核心的運(yùn)行組件,要用到的模塊都是通過(guò)NuGet方式來(lái)獲取的。開發(fā)可以完全不依賴于.NET Framework和平臺(tái)。但是.NET Core的功能沒有.NET Framework那么全。Web領(lǐng)域的WebForm已經(jīng)被舍棄了。WinForm目前也不再開源計(jì)劃內(nèi)。想用的還是慎重些,畢竟這只是一個(gè)開始。
1.windows平臺(tái)安裝SDK
直接下載并安裝即可。https://go.microsoft.com/fwlink/?LinkID=798398
2.Linux平臺(tái)安裝SDK(測(cè)試系統(tǒng)為:Ubuntu 14)
官方指導(dǎo)手冊(cè):https://www.microsoft.com/net/core#ubuntu
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893 sudo apt-get update sudo apt-get install dotnet-dev-1.0.0-preview1-002702
主要有幾個(gè)注意的點(diǎn):
Ubuntu 16在測(cè)試時(shí)使用apt-get安裝不成功。目前只在Ubuntu14測(cè)試成功。
直接使用:apt-get install dotnet 獲取到的版本不清楚,看安裝之后的版本號(hào)貌似是最新的,但是創(chuàng)建出來(lái)的項(xiàng)目又不是最新的。所以安裝時(shí)還是按照官方給的方式指明版本號(hào)。
3.安裝完成進(jìn)行環(huán)境測(cè)試
使用指令:
測(cè)試結(jié)果如下:
C:\>dotnet --info .NET Command Line Tools (1.0.0-preview1-002702) Product Information: Version: 1.0.0-preview1-002702 Commit Sha: 6cde21225e Runtime Environment: OS Name: Windows OS Version: 10.0.10586 OS Platform: Windows RID: win10-x64
yoli@ubuntu:~$ dotnet --info .NET Command Line Tools (1.0.0-preview1-002702) Product Information: Version: 1.0.0-preview1-002702 Commit Sha: 6cde21225e Runtime Environment: OS Name: ubuntu OS Version: 14.04 OS Platform: Linux RID: ubuntu.14.04-x64
二、創(chuàng)建HelloWord程序
1.創(chuàng)建控制臺(tái)項(xiàng)目:
mkdir hwapp cd hwapp dotnet new
使用的dotnet new指令來(lái)快速創(chuàng)建項(xiàng)目。
dotnet new –t Console 創(chuàng)建控制臺(tái)項(xiàng)目。目前項(xiàng)目類型只能創(chuàng)建控制臺(tái)項(xiàng)目,沒有其它可選類型,希望后期可以創(chuàng)建更多項(xiàng)目模板。
dotnet new –l C# 使用C#語(yǔ)言創(chuàng)建項(xiàng)目。目前只支持C#和F#。
編譯并運(yùn)行項(xiàng)目:
dotnet run
使用dotnet resotre來(lái)還原包引用
使用dotnet run運(yùn)行程序
使用dotnet build編譯代碼
使用dotnet publish 發(fā)布項(xiàng)目
詳細(xì)指令參數(shù)請(qǐng)查看指令的幫助說(shuō)明。
2.創(chuàng)建Web項(xiàng)目
由于創(chuàng)建指令并不支持創(chuàng)建Web項(xiàng)目,所以不能直接使用創(chuàng)建指令來(lái)創(chuàng)建,當(dāng)然可以使用手工方式創(chuàng)建project.json來(lái)創(chuàng)建項(xiàng)目,這樣做并不明智??梢越柚谝恍┕ぞ吆湍0鍋?lái)快速創(chuàng)建項(xiàng)目。
可用的模板案例:https://github.com/aspnet/cli-samples
可以直接使用Git工具復(fù)制到本地使用。
另外需要注意的:
dnx的啟動(dòng)方式目前在新版本中已經(jīng)不使用了,全部改為dotnet指令。Web項(xiàng)目啟動(dòng)方式和Console項(xiàng)目的啟動(dòng)方式一樣。
Linux運(yùn)行效果如下:
三、使用編輯器
引用官方的宣傳標(biāo)語(yǔ):
It is very easy to get started with .NET Core on your platform of choice.You just need a shell, a text editor and 10 minutes of your time.
感覺形容的很貼切,但是估計(jì)會(huì)有一大堆人蒙逼了。VS都不用了還怎么開發(fā)?官方說(shuō)只需一個(gè)文本編輯器即可,放著如此強(qiáng)大的VS不用改用文本編輯器開發(fā),開發(fā)者會(huì)接受嗎?就我而言愿意改變的只是很少一部分人。畢竟絕大多數(shù)還是在Windows平臺(tái)上開發(fā),最終還是選擇還是用windows+VS開發(fā),發(fā)布時(shí)可能選擇其它平臺(tái)來(lái)發(fā)布。這對(duì)于其它平臺(tái)工具鏈的形成是十分不利的。
1.安裝VSCode
下載并安裝VSCode:https://www.visualstudio.com/en-us/products/code-vs.aspx
安裝C#開發(fā)支持插件
打開VSCode使用Ctrl+P調(diào)出指令欄,輸入安裝指令:
插件官網(wǎng):https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp
安裝完成,會(huì)提示重啟VSCode,重啟之后即可進(jìn)行開發(fā)了。
2.使用VSCode編譯運(yùn)行項(xiàng)目
使用VSCode打開創(chuàng)建好的項(xiàng)目文件夾即可。默認(rèn)項(xiàng)目沒有.vscode文件夾,打開之后會(huì)在上方的消息欄提示,點(diǎn)擊確定之后就會(huì)自動(dòng)創(chuàng)建.vscode文件夾了。
該文件夾下包含:
launch.json
和tasks.json
兩個(gè)文件,用來(lái)配置調(diào)試器和調(diào)試指令用的。
打開代碼文件會(huì)發(fā)現(xiàn)代碼會(huì)有很多異常信息,一般都是引用的包沒有加載,可以使用restore指令來(lái)還原或者等VSCode加載完成即可,可能會(huì)在通知欄提示還原包。
調(diào)試運(yùn)行使用F5即可。C#調(diào)試插件提供了以下幾種方式啟動(dòng)調(diào)試,使用Web啟動(dòng)會(huì)默認(rèn)會(huì)自動(dòng)打開瀏覽器。斷點(diǎn)調(diào)試單步跟蹤基本差別不是很大,日常開發(fā)足夠用。
運(yùn)行效果如圖:
需要注意的問題:
(1)如果跳過(guò)了添加調(diào)試器的步驟,有可能編譯時(shí)報(bào)錯(cuò)。只需要launch.json修改對(duì)應(yīng)的參數(shù)即可。如:
(2)Troubleshooting 'Error while installing .NET Core Debugger'
如果有上述提示,請(qǐng)使用dotnet --info 看能否輸出正常信息,如果不行,請(qǐng)重新安裝.NET Core SDK的支持版本。如果提示restore失敗,請(qǐng)檢查網(wǎng)絡(luò)連接。
(3)Windows平臺(tái)上,如果提示找不到Symbols,則啟用Portable PDBs
打開project.json找到buildOptions,將debugType修改為portable,如果找不到buildOptions選項(xiàng),在老版本中名稱叫:compilationOptions
結(jié)束語(yǔ):此次.NET的開源與其說(shuō)是微軟的仁慈倒不如說(shuō)是一種無(wú)奈。另外VSCode在文本編輯以及多項(xiàng)目管理等諸多方面還有很大的提升空間。社區(qū)的建設(shè)還有很多的空白地方希望能夠盡快補(bǔ)充上來(lái)。每次看文檔資料看到In the future、hasn't been written yet等詞時(shí)總是一種莫名的失落感。
相關(guān)文章
.Net基于MVC4 Web Api輸出Json格式實(shí)例
這篇文章主要介紹了.Net基于MVC4 Web Api輸出Json格式的實(shí)現(xiàn)方法,實(shí)例講述了Global中json的操作與XML的處理等技巧,需要的朋友可以參考下2014-10-10ASP.NET?Core?6.0對(duì)熱重載的支持實(shí)例詳解
.NET 熱重載會(huì)將代碼更改(包括對(duì)樣式表的更改)應(yīng)用到正在運(yùn)行的應(yīng)用,而無(wú)需重啟應(yīng)用,也不會(huì)丟失應(yīng)用狀態(tài),下面這篇文章主要給大家介紹了關(guān)于ASP.NET?Core?6.0對(duì)熱重載支持的相關(guān)資料,需要的朋友可以參考下2022-03-03ASP.NET性能優(yōu)化之構(gòu)建自定義文件緩存
ASP.NET的輸出緩存(即靜態(tài)HTML)在.NET4.0前一直是基于內(nèi)存的。這意味著如果我們的站點(diǎn)含有大量的緩存,則很容易消耗掉本機(jī)內(nèi)存。2011-09-09ASP.NET怎么操作DataTable實(shí)例應(yīng)用
有機(jī)會(huì)在博客園的博問頻道上看到一個(gè)問題,《ASP.NET怎么操作DataTable》;需要的朋友可以參考下2012-11-11WPF數(shù)據(jù)驅(qū)動(dòng)修改綁定
這篇文章介紹了WPF數(shù)據(jù)驅(qū)動(dòng)修改綁定的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04點(diǎn)擊提交按鈕后DropDownList的值變?yōu)槟J(rèn)值實(shí)現(xiàn)分析
在點(diǎn)擊提交按鈕后,頁(yè)面上所有的綁定到數(shù)據(jù)庫(kù)的控件值都恢復(fù)到默認(rèn)值,下面與大家分享下DropDownList的值變?yōu)槟J(rèn)值2013-05-05ASP.NET?Core構(gòu)建OData查詢Restful?API
這篇文章主要為大家介紹了ASP.NET?Core建構(gòu)OData實(shí)體模型實(shí)現(xiàn)Restful?API查詢,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04asp.net結(jié)合Ajax驗(yàn)證用戶名是否存在的代碼
關(guān)于Ajax的操作簡(jiǎn)單總結(jié),結(jié)合Ajax驗(yàn)證用戶名是否存在的代碼2010-06-06