系列目錄html
按部就班學.Net Core Web Api開發系列目錄前端
本系列涉及到的源碼下載地址:https://github.com/seabluescn/Blog_WebApilinux
1、本篇概述git
本篇不打算描述如何經過Visual Studio建立一個項目之類的話題,主要描述如下內容:github
一、使用NuGet和Bower引入第三方庫json
二、Linux下安裝運行環境centos
三、關於安裝虛擬機時碰到的網絡設置的問題服務器
實驗環境:Windows 10 ,Visual Studio 2017 ,VM 14 , CentOS 7網絡
2、使用Visual Studio 開發項目asp.net
無論你是使用Windows或MacOS操做系統,均可以採用Visual Studio 進行開發。.NET Core再也不採用下載dll文件並copy到項目中的方式來引入第三方類庫,而是採用NuGet工具進行第三方庫的管理,NuGet只能管理類庫,對於前端開發的js包須要經過Bower進行管理。
一、NuGet
若是我在項目中須要用到JSON轉換的工具,在項目上鼠標右鍵選擇「管理NuGet程序包」,在瀏覽窗口輸入json,選擇須要的包,好比Newtonsoft.Json,而後選擇版本,安裝便可。
二、Bower
不知什麼緣由,我用的VS版本,項目右鍵沒法找到「管理Bower程序包」的菜單,解決方案:
在項目根目錄添加兩個文件
文件一: bower.json ,內容以下:
{ "name": "asp.net", "private": true, "dependencies": { } }
文件二: .bowerrc ,內容以下:
{ "directory": "wwwroot/lib" }
此時在項目右鍵就能夠選擇「管理Bower程序包」了。
用法和NuGet相似:在瀏覽頁搜索要找的包,如:jQuery,選擇合適的包和版本,安裝便可。
3、使用Linux環境運行項目
我選擇的Linux環境爲CentOS7,最初在CentOS6.5下安裝過SDK,但沒有成功,後來選擇了7以上版本就OK了。
安裝步驟以下:
# rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
# yum update
# yum install libunwind libicu
# yum install dotnet-sdk-2.1.200
第一行代碼是添加資源庫
第二行代碼爲更新操做系統
第三行代碼爲安裝依賴包
第四行代碼爲安裝SDK
因爲版本變化等緣由,以上代碼不必定永遠能夠成功執行,最新的安裝指令或其餘平臺安裝方法能夠在此查詢:Install .NET Core SDK
安裝完成後能夠運行如下指令來確認是否安裝成功。
# dotnet --info
把開發好的項目Copy到Linux環境,在其項目目錄下運行 dotnet run 便可啓動項目,此時爲源碼項目方式運行,在開發環境咱們對項目進行發佈,將發佈的項目文件夾Copy到Linux環境,在項目文件夾下運行dotnet WebApplication4.dll 便可啓動項目。關於項目的發佈後面會單獨介紹。
4、虛擬機的網絡設置
不是每一個人手上都有充足的Linux機器資源,採用虛擬機來創建學習環境仍是頗有必要的。不論是採用VM仍是VisualBox,整個安裝過程都是比較簡單的,可能惟一有疑問的地方就是選擇什麼類型的虛擬網卡。
vmware爲咱們提供了三種網絡工做模式,它們分別是:Bridged(橋接模式)、NAT(網絡地址轉換模式)、Host-Only(僅主機模式)。
這裏不對三種模式進行詳細探討,直接給出建議:
一、若是是在服務器上安裝虛擬機建議採用橋接模式,此時虛擬機將成爲網絡裏的一臺機器;
二、若是是在本機上安裝虛擬機,建議採用NAT模式,此時虛擬機只有本機能夠訪問;
若是是NAT模式能夠採用DHCP方式獲取IP地址,若是是橋接模式建議配置靜態IP地址。
設置網絡IP配置的指令:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
橋接模式的配置信息
DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none IPADDR= NETMASK= GATEWAY= DNS1= #以上4個數字參考路由器設置,和普通服務器相似
NAT模式的配置信息
DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp
配置完成後能夠經過 # ifconfig 指令查詢本機IP信息。