.Net Core 跨平臺系列之環境部署

来源:http://www.cnblogs.com/wangweimutou/archive/2016/04/19/5405575.html
-Advertisement-
Play Games

前言 作為一名.NET程式員,很多時候都會被什麼拖控制項、跨平臺等字眼所鄙視過,但是在我的的內心還是沒有把自己看低過。因為說到底,平臺和語言只是我們吃飯的工具。很多時候公司的發展是取決於商業競爭的,微軟也不例外。在大環境下,我們終於看到了微軟給我們帶來的跨平臺的驚喜。儘管這隻是剛剛開始,但我相信在不久 ...


前言

  • 作為一名.NET程式員,很多時候都會被什麼拖控制項、跨平臺等字眼所鄙視過,但是在我的的內心還是沒有把自己看低過。因為說到底,平臺和語言只是我們吃飯的工具。很多時候公司的發展是取決於商業競爭的,微軟也不例外。在大環境下,我們終於看到了微軟給我們帶來的跨平臺的驚喜。儘管這隻是剛剛開始,但我相信在不久的將來,我們能切實感受到NET Core給我們的誠意,我們也會一直伴隨著它成長著。
  • 當我們想要迫切知道它在Linux平臺下給我們帶來的驚喜時,我開始搜索各種資料,卻發現它的平臺部署並不是那麼容易(這主要取決於Linux系統的類型和版本,以及一些相關依賴文件的缺失)。下麵我就對自己的部署環境做一個記錄,以便幫助大家減少部署環境中帶來的困惑。

系統環境

  • 本地機器:Windows7 x64 旗艦版
  • 虛擬機:Vmware Workstation 10.0.1 build-1379776
  • Linux: ubuntu-14.04.3-desktop-amd64.iso

  如對虛擬機和Ubuntu的安裝不清楚的請自行百度。安裝完成後,為了適應屏幕的變化以及主機和虛擬機之間文件的複製操作,我們可以安裝VMware Tools,具體參照這篇文章

環境部署

  • 安裝程式代碼編輯器visual studio Code,到官網下載最新版本,地址:https://code.visualstudio.com/download 選擇編譯後的.zip的文件下載。

    

 

    下載後直接解壓壓縮包,雙擊code就可以打開文件編輯器,打開後就可以Lock Launcher,方便以後打開

    

  

  • 安裝DNVM(NET Version Manager),利用它可以在Linux上管理安裝不同版本的.NET 運行環境DNX(.NET Execution Environment),輸入以下命令:

         sudo apt-get install unzip curl

         curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh |   DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh

 

    安裝成功後,可以輸入DNVM 命令查看到以下界面:

    

 

  • 安裝.NET 運行環境DNX(.NET Execution Environment),可以理解為NET CORE 的CLR,輸入以下命令:

     sudo apt-get install libunwind8 gettext libssl-dev libcurl4-openssl-dev zlib1g libicu-dev uuid-dev

     dnvm upgrade -r coreclr

 

    安裝完成後,可以輸入dnx查看以下界面:

    

 

    並且我們也可以輸入dnvm list 查看到伺服器上安裝的net版本列表

    

  

  • 安裝Web伺服器Libuv,libuv是Kestrel所使用的一個多平臺的非同步IO庫,它是一個跨平臺的HTTP伺服器,可以托管運行ASP.NET 5 Web應用程式。輸入以下命令:

         sudo apt-get install make automake libtool curl

         curl -sSL https://github.com/libuv/libuv/archive/v1.8.0.tar.gz | sudo tar zxfv - -C /usr/local/src

         cd /usr/local/src/libuv-1.8.0

         sudo sh autogen.sh

         sudo ./configure

         sudo make

         sudo make install

         sudo rm -rf /usr/local/src/libuv-1.8.0 && cd ~/

         sudo ldconfig

 

  • 安裝NodeJS,為什麼要安裝NodeJS呢?為後面安裝的Net模板工具所需要。具體步驟可以參考這篇文章

  • 安裝Yeoman,它是在 Node.js 之上生成的基架平臺,使你能夠為項目或代碼文件生成基於模板的生成器。輸入以下命令:

         npm install -g yo bower grunt-cli gulp

         npm install -g generator-aspnet

控制台程式

     在命令終端輸入以下命令 sudo su

     以root用戶操作,例如我們現在在桌面建立一個為Demo的文件夾,控制台程式文件放入此目錄,首先轉到Demo的根目錄下,然後運行yo aspnet,你會看到以下界面:

    

    

    選擇Console Application,回車創建我們的控制台應用程式,可以輸入程式的名稱

    

    

    此時程式已經創建成功,我們打開Visual studio Code 來查看此工程的源碼,打開後選擇此工程的文件名稱ConsoleApplication(應為上圖使用的是預設的名稱)

    

    

 

   進入程式根目錄,編譯程式,然後執行程式可以看到運行結果為Hello World,在終端以普通用戶輸入以下命令:

    

    

    

    

Web程式

 

    例如我們的Web程式也創建在桌面的Demo文件下,按照上面的方法在root用戶下轉到Demo文件夾,運行yo aspnet  選擇Web Application程式創建Web程式。

    

    

    在終端以普通用戶轉到Demo/WebApplication目錄下運行dnu restore,載入web程式需要引用的依賴庫文件。如下圖:

      

    輸入dnx web命令啟動web伺服器

    

    

    在瀏覽器中輸入http://localhost:5000/ 可以看到運行的web程式如下圖顯示:

    

 

    

  • 到此,我們終於完成了Linux下NET平臺的建設,安裝過程中可能會應為環境的不同而出現一些錯誤,這些錯誤可以按照錯誤的提示在網上搜索答案。安裝的程式包建議都到官網進行下載,保持最新版本,避免版本不同帶來錯誤。

 

參考資料

Installing ASP.NET 5 On Linux

理解ASP.NET 5運行時命令:DNVM, DNX, 和DNU

Setting up Visual Studio Code

ubuntu14.04安裝nodejs基礎環境

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 微信是一個在開發中經常會使用到的平臺,比如微信登錄、授權、支付、分享。今天我們來看看如何在自己的應用裡面集成微信授權。 1、微信授權的定義 微信OAuth2.0授權登錄讓微信用戶使用微信身份安全登錄第三方應用或網站,在微信用戶授權登錄已接入微信OAuth2.0的第三方應用後,第三方可以獲取到用戶的接 ...
  • 設備管理員 Device Admin 獲取DevicePolicyManager對象,通過getSystemService(DEVICE_POLICY_MANAGER),設備策略管理器 調用DevicePolicyManager對象的lockNow()方法,鎖定,此時會報 安全異常 新建一個類MyA ...
  • 在整型信號量機制中,信號量被定義為一個整形變數。除初始化外,僅能通過兩個標準的原子操作Wait(S)和Signal(S)來訪問。其通常分別被稱為P、V操作。 描述如下: P操作:S=S-1;如果S小於0,則進程進入等待狀態,否則繼續執行。 V操作:S=S+1;如果S>=0,則喚醒等待隊列中的一個等待 ...
  • 首先在開始正文之前先介紹最簡單的獲取進程/線程句柄方法。那就是可以在創建進程/線程時獲取句柄。 創建進程/線程是獲取句柄。 //進程創建函數 BOOL CreateProcess( PCTSTR pszApplicationName, PTSTR pszCommandLine, PSECURITY_... ...
  • 第一、檢查硬碟設備是否有數據盤 第二、數據硬碟分區 第三、ext3格式化分區 第四、掛載新分區 A - 新建目錄[任意創建] B - 掛載分區 第五、寫入fstab 設置開機自動掛載 第六、檢查是否掛載成功(df -h ) ...
  • bmp.c:8: warning: malformed '#pragma pack(push[, id], <n>)' - ignored bmp.c:33: warning: #pragma pack (pop) encountered without matching #pragma pack ...
  • 反射的定義:審查元數據並收集關於它的類型信息的能力。元數據(編譯以後的最基本數據單元)就是一大堆的表,當編譯程式集或者模塊時,編譯器會創建一個類定義表,一個欄位定義表,和一個方法定義表等。System.reflection命名空間包含的幾個類,允許你反射(解析)這些元數據表的代碼 System.Re ...
  • 在ASP.NET中,頁面間數據傳遞的方法有很多。下麵為大家總結一下,頁面間數據傳遞的方法。 Web頁面是無狀態的,伺服器對每一次請求都認為來自不同用戶,因此,變數的狀態在連續對同一頁面的多次請求之間或在頁面跳轉時不會被保留。在 用ASP.NET 設計開發一個Web系統時, 遇到一個重要的問題是如何保 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...