《LINUX實(shí)操:10分鐘學(xué)會(huì)在Windows/Linux下設(shè)置ASP.Net Core開發(fā)環(huán)境并部署應(yīng)用》要點(diǎn):
本文介紹了LINUX實(shí)操:10分鐘學(xué)會(huì)在Windows/Linux下設(shè)置ASP.Net Core開發(fā)環(huán)境并部署應(yīng)用,希望對您有用。如果有疑問,可以聯(lián)系我們。
創(chuàng)建和開發(fā)ASP.NET Core應(yīng)用可以有二種方式:最簡單的方式是通過Visual Studio 2017 來創(chuàng)建,其優(yōu)點(diǎn)是簡單方便,但必要安裝最新版本Visual Studio 2017 preview 15.3 .另一種方式是使用Visual Studio Code來創(chuàng)建,Visual Studio Code 則是一款輕量級的編輯器 ,可在多種操作系統(tǒng)中運(yùn)行,如果情況允許,筆者更建議使用Visual Studio Code來進(jìn)行開發(fā),可在多種平臺(tái)開發(fā),同時(shí)也更靈活,享受更多開發(fā)的樂趣.
?
?
開發(fā)ASP.NET Core 2.0的應(yīng)用,前提是必要安裝.NET Core 2.0 正式版.
下載地址https://www.microsoft.com/net/download/core
安裝完成后,可在敕令行(cmd)中鍵入敕令查看安裝信息:
dotnet --info
安裝信息如下圖,表現(xiàn).NET Core 2.0 已經(jīng)成功安裝
?
如果必要使用Visual Studio 2017 來開發(fā),必要安裝 Visual Studio 2017 Preview version 15.3,個(gè)人開發(fā)者可選擇社區(qū)版,社區(qū)版的功能對于日常的開發(fā)已經(jīng)足夠,并且是免費(fèi).
下載地址 https://www.visualstudio.com/vs/preview/?dotnetid=639356346.1501080398
下載完成后可選擇相應(yīng)的工作負(fù)載來安裝,如果只是運(yùn)行ASP.NET Core應(yīng)用則可以只安裝響應(yīng)部門,如下圖所示:
?
Visual Studio Code 是一個(gè)輕量級的源代碼編纂器,可以運(yùn)行在Windows,MacOs,和Linux.通過安裝擴(kuò)展可用來開發(fā)諸如C++、C#、 Python、PHP、Go等語言.
下載地址(https://code.visualstudio.com/)[https://code.visualstudio.com/]
安裝完成后,必要安裝c#開發(fā)擴(kuò)展如下圖所示
?
通過Visual Studio 2017 創(chuàng)立應(yīng)用非常簡單,在新建項(xiàng)目時(shí)選擇 ASP.NET Core webapplication即可
在確認(rèn)選擇后,還會(huì)彈出一個(gè)對話框,選擇代碼布局模板,此處任意選擇Web Application(MVC)
,項(xiàng)目即可生成完畢.在Visual Studio 2017中點(diǎn)擊運(yùn)行,一個(gè)ASP.NET Core 網(wǎng)站即可運(yùn)行.
?
首先可在當(dāng)?shù)匦陆ㄎ募A,然后打開Visual Studio Code ,選擇打開剛才的文件夾
在主菜單中依次選擇“查看” > “集成終端”.在集成終端中輸入 dotnet new mvc
敕令,文件夾中會(huì)生成 mvc 的模板
模板樹立好后,可在集成終端中輸入dotnet run
命令,mvc 站點(diǎn)即可運(yùn)行.
要在Visual Studio Code 中調(diào)試程序,必要配置調(diào)試器,點(diǎn)擊調(diào)試配置,選擇.NET Core配置文件
此時(shí)會(huì)天生launch.json文件,文件中有三種launch方式,以web節(jié)點(diǎn)為例
{
"name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll",
"args": [],
"cwd": "${workspaceRoot}",
"stopAtEntry": false,
"launchBrowser": {
"enabled": true,
"args": "${auto-detect-url}",
"windows": {
"command": "cmd.exe",
"args": "/C start ${auto-detect-url}"
},
"osx": {
"command": "open"
},
"linux": {
"command": "xdg-open"
}
}
}
將program節(jié)點(diǎn)中的路徑改為本身程序集的路徑即可,例如${workspaceRoot/bin/Debug/netcoreapp2.0/WebApplicationSample1.dll
然后點(diǎn)擊左側(cè)調(diào)試圖標(biāo),在左上角可選擇啟動(dòng)調(diào)試,啟動(dòng)后會(huì)彈出,對話框提示找不到build命令,選擇配置任務(wù)運(yùn)行程序.
設(shè)置裝備擺設(shè)完成后會(huì)多一個(gè)task.json文件,此時(shí)再次開啟調(diào)試,便可運(yùn)行調(diào)試.
?
托管 ASP.NET Core 應(yīng)用有多種方式,即可在傳統(tǒng)的windows平臺(tái),也可以部署在開源的Linux上,還可以通過docker容器來部署,本節(jié)將講授多種方式部署 ASP.NET Core 應(yīng)用
?
ASP.NET Core 應(yīng)用需要一個(gè)Host , Host必須要實(shí)現(xiàn)IWebHost
接口,接口包括Start
方法.創(chuàng)建一個(gè)Host 需要使用WebHostBuilder
,它會(huì)返回一個(gè)WebHost
實(shí)例,用于處理哀求.
在上一節(jié)所創(chuàng)建的ASP.NET Core應(yīng)用中,可以看到Program.cs文件中的 'void Main'辦法,此辦法是整個(gè)應(yīng)用的入口,在入口中調(diào)用了CreaDefaultbuilder
來創(chuàng)建Host,代碼如下:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
CreateDefaultBuilder
創(chuàng)建了WebHostBuilder
的實(shí)例來構(gòu)建啟動(dòng) server 的 host.host需要一個(gè)實(shí)現(xiàn)IServer
接口的server.內(nèi)建的Web server 包含 Kestrel 和 Httpsys,默認(rèn)使用Kestrel.在命令行工具中執(zhí)行dotnet run
命令,此時(shí)即可啟動(dòng)整個(gè)應(yīng)用.
在ASP.NET Core中可以用兩種HTTP server,它們哀求原理如圖所示:
Kestrel 是跨平臺(tái)的HTTP server 基于libuv(一個(gè)跨平臺(tái)的異步I/O library)
Httpsys 是基于Windows內(nèi)核驅(qū)動(dòng)程序Http.Sys的HTTP server.Http.Sys是成熟的技術(shù),可以防范多種攻擊,并提供全功能Web服務(wù)器的魯棒性,平安性和可擴(kuò)展性.IIS本身作為HTTP偵聽器運(yùn)行在Http.Sys之上.
在windows平臺(tái)上還可以使用Http.Sys作為Web Server
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseHttpSys()
.Build();
?
更多詳情見請繼續(xù)閱讀下一頁的出色內(nèi)容:
_baidu_page_break_tag_由于ASP.NET Core的跨平臺(tái)性,因此在Liunx環(huán)境下也可以使用,必要注意的是在Linux環(huán)境下是不能選擇Http.Sys作為Web server,而只能選擇Kestrel.本文選用 Ubuntu 16.04 系統(tǒng),作為示例.
第一步:注冊微軟key為可托任
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
注:如果沒有curl必要安裝curl.命令 sudo apt-get install curl
第二步:將微軟的安裝地址設(shè)為可托任的列表
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
第三步:更新apt-get
版本
sudo apt-get update
第四步:更新完成后即可安裝最新.NET Core 2.0
sudo apt-get install dotnet-sdk-2.0.0
安裝完成后使用如下敕令查看.NET Core 版本信息
dotnet --info
使用敕令生成項(xiàng)目模板
dotnet new mvc -o app
以上命令會(huì)在當(dāng)目錄下面創(chuàng)立一個(gè)app文檔夾,首先我們要將根路徑跳轉(zhuǎn)到app文件夾下面
cd app
最后我們要將ASP.NET Core應(yīng)用在Linux環(huán)境下托管起來,只必要運(yùn)行下面一條命令
dotnet run
如果選擇Http.Sys作為Linux下的服務(wù)器則會(huì)拋出非常
?
從本節(jié)可以看出,不管是在傳統(tǒng)的Windows環(huán)境還是Linux環(huán)境,都能通過Visual Studio Code開發(fā)ASP.NET Core 應(yīng)用法式,同樣的在Windwos環(huán)境和Linux都可以使用ASP.NET Core自帶的Web server來托管應(yīng)用.
參考材料
【1】http://www.microsoft.com/net/core#linuxubuntu
本文永遠(yuǎn)更新鏈接地址:
歡迎參與《LINUX實(shí)操:10分鐘學(xué)會(huì)在Windows/Linux下設(shè)置ASP.Net Core開發(fā)環(huán)境并部署應(yīng)用》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/7062.html