跨平台執行 Rafy 首次部署記錄

2021-09-09 05:14:47 字數 1523 閱讀 6436

一直想在 linux 上使用 mono 試試執行 rafy,最近因為業務需要,總算是真正地試驗了一次。下面是本次部署記錄的一些要點。

linux

相對於 windows 來說,linux 更輕量,安裝很簡單,安裝速度也非常快。

這兩個是目前可行的 .net 跨平台方案。我們需要快速理解兩個方案,分析哪個方案的移植成本最低。

asp.net vnext

微軟本身已經逐步支援開源了,所以我們的想法自然是盡量先用微軟官方發布的跨平台方案。asp.net vnext(5) 目前已經發布了 rc1。但是經測試,發現整個**構建於新的 api 之上,如果要把我們的程式移植到 vnext 之上,需要修改許多**。所以暫時還是沒有選擇使用 vnext,但是長期看來,必然還是需要選擇 vnext。

下面是 vnext 官網和其文件:

《解讀asp.net 5 & mvc6系列》、《asp.net 5系列教程》。

mono

其實,目前來說,.net 跨平台,大家用的比較多的還是 mono。官網:

mono 可簡單理解為跨平台的 .net 平台,包括執行時、框架、工具。mono 框架是 .net 框架的重寫版本,其 api 盡量保持與 .net 框架一致,也支援 cli 規範,所以上層的應用程式不需要重新編譯,也可以直接執行在 mono 上。所以直接使用 mono 應該是成本最低的跨平台方案。

但是,mono 並不支援完整的 .net,例如 wpf、wwf 就沒有在 mono 上實現(詳見:《相容性對比》)。所以,我們可以使用乙個工具來檢測應用程式是否會有相容性問題:「mono migration analyzer」。

mono 安裝完成後,對其進行了測試,可正確執行即可:

在 linux 在執行 mono 可以使用 apache、nginx 等作為 web 伺服器,見:《 mono asp.net》、《mod_mono》。另外,國人編寫的 jexus 伺服器也是比較流行的,對 .net 支援非常好,用起來很簡單。所以我們選擇了最簡單的 jexus 伺服器,降低學習的難度。

這裡遇到了乙個問題,jexus 伺服器使用的是 iis 經典模式,導致** web.config 中 配置節不可用(該配置節用於 iis 整合模式)。這裡,需要把該配置節中的內容都修改到 中對應的配置節即可。

最終執行環境

linux(opensuse)+mono+jexus+mvc5+rafy+oracle。

在上述環境中,程式總算可以執行了。

跨平台執行 Rafy 首次部署記錄

一直想在 linux 上使用 mono 試試執行 rafy,最近因為業務需要,總算是真正地試驗了一次。下面是本次部署記錄的一些要點。linux 相對於 windows 來說,linux 更輕量,安裝很簡單,安裝速度也非常快。這兩個是目前可行的 net 跨平台方案。我們需要快速理解兩個方案,分析哪個方...

Qt跨平台開發 隨筆記錄

1 libstdc 6.dll 如果不能使程式執行則使用mingw bin 中的libstdc 6.dll 的這個庫。2 19.qt 事件傳送函式sendevent postevent 3 qt自定義事件 4 qt狀態機框架 qt狀態機框架 簡單的狀態機 分段講解 5 arm40 ubuntu交叉編...

跨平台開發使用ant部署並測試

往往我們開發環境是windows,但是測試執行環境是solaris,suse等。開發完的 需要以正確的格式放到伺服器上 有可能需要編譯 並進行測試。一般方式是使用ftp選擇bin或asc方式上傳到伺服器,telnet其上執行命令驗證。如果檔案分布在不同的目錄傳送起來非常麻煩,各個應用的切換也會打斷我...