將運作十年的 ASP.NET WebForm 的部落格翻寫成 ASP.NET Core,我的下一步是挑戰將部落格搬到 Linux 執行,才不辜負 .NET Core 可跨平台的能力。考察過 Linux 作業系統,我選擇了 CentOS,主要考量其以穩定性著稱,企業界接受度高,將來或許有機會靠它再混兩口飯吃。(抉擇時心態仍不脫娶妻想少奮鬥幾年的市儈,哈 XD)

光說不練什麼都是假的,捲起袖子做出來才是真的! 之前只玩過 Ubuntu,對 CentOS 全然陌生得從頭學起。講到 Linux 教學,足球界有誰不認識鋒哥的呢? 玩 Linux 有誰不知道鳥哥呢? 很幸運地,鳥哥的教學便是以 CentOS 為主,身為 CentOS 初心者,拿香跟著拜就對了。

以下是我在 Hyper-V 虛擬機安裝 CentOS 的筆記:

  1. CentOS 安裝程式下載自CentOS 官網,我選擇 Everything ISO,CentOS-7-x86_64-1804.iso,8.8GB。
  2. Hyper-V 虛擬機選一代傳統性,選二代 UEFI 找不到開機光磁。為了模擬 Azure 最陽春雲端主機,我刻意調成單 CPU、1GB RAM,希望跑得動。
  3. 鳥哥的安裝指南寫得無敵詳細,照方煎藥即可。初學者建議先開 GUI 桌面環境,等上手後日後再挑戰純 Core 操作。
  4. .NET 官方文件有在 CentOS 安裝 .NET Core 的方法
    sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
    sudo yum update
    sudo yum install libunwind libicu
    sudo yum install dotnet-hosting-2.0.8
    sudo yum install dotnet-sdk-2.1
    
    文件的步驟精準且詳細,照著執行,毫不費力就裝好了。
  5. 管理雲端 Linux 主機不比 Windows,無法靠遠端桌面分享本機磁碟交換檔案,得走 scp/sftp,這部分只需在 Windows 端安裝 WinSCP 就 OK,問題不大。
  6. 用 WinSCP 將 Publish 產生的網站檔案傳送到 CentOS,開終端機視窗執行 dotnet Darkblog.Core.dll 熟悉的 Kestrel 啟動訊息在 CentOS 重現。
  7. 在 CentOS 視窗環境打開 Firefox 連上 httq://localhost:5000,看到我的部落格在 CentOS 跑了起來,喵的,真是感動~

這是人類的一小步,卻是我的一大步。

以前只在 Linux 上玩玩 Hello World,跟第一次見證已上線的網站無縫跨越作業系統,內心激動程度大不相同。為此,不呼個口號怎麼行?

ASP.NET Core 好威呀!

Notes about CentOS installation and .NET Core sdk setup, Windows-Linux file deploy tool to run my Miniblog.Core web appliation on CentOS.


Comments

# by Cefc

現在玩linux的都玩容器化部署,直接安裝套件的方式已經落伍了

# by Jeffrey

to Cefc, Docker也在我的學習計劃中。但對我來說,這些基礎安裝與傳統執行模式都是基本功,得親自走一回才踏實,跟用 Angluar/React/Vue.js 也要會徒手寫 JavaScript 才能處理疑難雜症是一樣的道理。

# by Ming

沒有落不落伍的問題,照這樣說只用Linux command line豈不是原始人?工具就是工具,只有適用不適用的問題。Docker主要解決應用系統套件相依性問題,把應用系統與其相依的套件放在一個image中獨立執行,無關作業系統層級,也就方便部署

# by pico2k

httq://localhost:5000 應該是http://localhost:5000 吧...XD

# by Jeffrey

to pico2k, 此為本站慣例,為避免被某些 AI 功能雞婆轉成可點選連結,文章如有不希望讀者點選的範例 URL,會故意打成 httq。

# by some

Centos .NET Core 是不是沒辦法用於一般.NET網頁呢,如果有現成的網頁要轉移只能翻成.NET Core專案來執行,我是試過mono可以成功但畢竟是非官方程式。

# by Jeffrey

to some, 硬要移植應該還是找得到方法,但是從長期投資與營運成本考量,與其花心力橫柴入灶,不如逐步轉換到ASP.NET Core平台,會是較值得的投資。如果轉換成本可觀的現有專案,留在Windows平台較省力,甚至Windows 2016也能用Container跑WebForm,一樣能享受新技術。

# by 用嘴巴寫code的人

因緣際會路過此文,我也來嘴一下。一樓的說現在容器化很盛行是沒錯,但是 Windows 系的黑暗大從頭基本功練一遍我覺得很合理,像我現在也是從頭開始看鳥哥文章,vi 的遙遠記憶也開始回復,偶爾去沾點 Go lang 醬油。感覺上這 Cloud Native 長期趨勢..... Windows 2019 的容器好像討論度一直都不怎麼樣..... .NET 5 的走向..... 真的有點ㄉㄢˋㄉㄢˋ的哀傷啊... 再說真的要潮的話,應該是扔到K8s裡面去跑。

Post a comment