我們來試試用.NET Core從Windows環境開發,然後porting到Linux環境(佈署及執行.NET Core),之前曾看過stackoverflow文章提到Mono的效能問題,這一次我們同時也想了解.NET Core與Mono在效能中的表現是否有變數。
[.NET][C#.NET]走跳在Linux的人生(八).NET Core與Mono執行
- 6663
- 0
- .NETOnLinux
我們來試試用.NET Core從Windows環境開發,然後porting到Linux環境(佈署及執行.NET Core),之前曾看過stackoverflow文章提到Mono的效能問題,這一次我們同時也想了解.NET Core與Mono在效能中的表現是否有變數。
雖然沒辦法所有系統都用.NET Core重新開發,但還是有小部分功能可以趕上跨平台的潮流,我們來試試在Linux(Red Hat Enterprise)環境跑.NET Core。
因為一些歷史因素,系統內有些背景下的服務功能在Windows環境下是以Windows Service的方式常駐在系統記憶體中運作,這次要模擬遷移到Linux的環境,想起Daemon小惡魔,好在Mono也有解,我們來筆記。
我們來試試把ASP.NET Web Forms網站放到Linux環境的Apache上執行吧!
上一篇我們簡單用mono project的範例,在Linux新增ASP.NET程式碼(hello.aspx )並且編譯然後執行,這篇來試試直接把Windows環境編譯好的網站程式放到Linux環境下執行。
美好的星期日早上繼續筆記Mono在ASP.NET程式上的支援,我們會安裝測試用的xsp server、實作一個簡單的Web Service做數學加法運算,另外就是實作ASP.NET Core目前還沒看到支援的Web Forms技術架構(...)。
上一篇我們簡單用mono project網站所提供的範例,在Linux新增helloworld.cs程式碼並且編譯然後執行,上一篇可以確保mono runtime以及編譯器都有安裝正確,接下來這篇則是計畫直接把Windows環境編譯好的exe及dll(msil:byte code)放到Linux環境下執行,可以發現透過Mono CLR(Microsoft-Compatible APIs),我們可以不用重新編譯就執行.NET的執行檔。
隨著.NET Core 1.0在2016年的釋出,.NET工程師有更多的機會實現.NET on Linux的需求,就像魔戒中的精靈射手奧蘭多布魯, 走出精靈據點(Rivendell)還是隨便都百步穿楊射死半獸人。
因為一些原因,系統內使用了少量的SQLCLR,來讓T-SQL撰寫的Script可以透過SQL函數呼叫C# Method(SqlFunction)來取得特殊環境的運算結果,來試試SQL Server SQLCLR在Linux版本環境的相容性。
由於新客戶對於作業系統的喜好(Linux)與限制(Windows),除了SQL Server On Linux測試計畫外,最近也要來試試.NET程式在Linux上執行,在微軟文件上找解決方案時找到一個好物.NET Portability Analyzer,她可以分析.NET程式碼在指定Runtime指定版本下的可移值性,同時也能給予簡單的修改建議。快來筆記簡單的專案測試。
Migrate a SQL Server database from Windows to Linux using backup and restore
由於新客戶對於作業系統的喜好(Linux)與限制(Windows),7年繞了一圈,最終還是要回Linux生態系出發,好在微軟也在2016年加入了Linux基金會,這兩三年也注意到熟悉的微軟技術有更多的跨平台支援,來筆記資料庫SQL Server On Linux的安裝設定。
Benjamin Button: You never know what's coming for you。