国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Linux.NET實(shí)戰(zhàn)手記—自己動(dòng)手改泥鰍(上)

2019-11-15 02:29:22
字體:
供稿:網(wǎng)友

linux.NET實(shí)戰(zhàn)手記—自己動(dòng)手改泥鰍(上)

各位讀者大家好,不知各位讀者有否閱讀在下的前一個(gè)系列《Linux.NET 學(xué)習(xí)手記》,在前一個(gè)系列中,我們從Linux中Mono的編譯安裝開始,到Jexus服務(wù)器的介紹,以及如何在Linux中簡(jiǎn)單的部署自己的WebForm程序和asp.net MVC應(yīng)用程序。如果各位讀者有閱讀該系列的文章并且成功的實(shí)現(xiàn)上面的每一個(gè)功能點(diǎn),那么小弟認(rèn)為,你對(duì)Linux.NET已經(jīng)入門,剩下的就是各自在Linux.NET中自由發(fā)揮,在這另一天地中做自己愛做的事,創(chuàng)出一番更新的新天地來。

為此,在下推出一個(gè)新的系列——Linux.NET實(shí)戰(zhàn)手記,該系列主要用于記錄我在使用Linux.NET中的點(diǎn)點(diǎn)滴滴,在記錄的同時(shí)與各位讀者朋友分享。小弟不才,沒有辦法保證所有的方法都是最科學(xué)以及真正可行,如有任何不妥的地方,還望各位讀者不吝指正。

先進(jìn)入本回合,在本回合中,我們會(huì)對(duì)一個(gè)開源的個(gè)人博客——小泥鰍 進(jìn)行改造,以其讓它能夠在Linux.NET中正常的使用,由于該過程內(nèi)容較多,因此無法在一篇文章中敘述完成,我們將采用分回合的方式來逐步分解其過程。

在本回合中,我們暫時(shí)停留在win下對(duì)小泥鰍進(jìn)行初改造,我們將討論學(xué)習(xí):

  1、什么小泥鰍,為什么是小泥鰍

  2、對(duì)小泥鰍的風(fēng)險(xiǎn)性、成功率的分析,以及促使成功的要素有哪些

  3、對(duì)MS.NET與Mono使用相同數(shù)據(jù)庫驅(qū)動(dòng)器前提下的數(shù)據(jù)訪問層改造。

本文中的代碼已經(jīng)托管到GitHub(https://github.com/xiaodiejinghong/Loachs4Mono)中,有興趣的讀者可以點(diǎn)擊打開下載,當(dāng)然各位讀者也可以點(diǎn)擊這里獲得包括原始代碼包和托管代碼的打包。


1、什么是小泥鰍,為什么是小泥鰍

本文中,不想用過多的話語,一句話:小泥鰍,Loachs,是一款開源的個(gè)人博客系統(tǒng),官網(wǎng):http://www.loachs.com/,原作者:溈水老農(nóng)。

至于為什么選擇小泥鰍,基于以下三個(gè)方面:

  1、近期內(nèi)可能需要用到一個(gè)個(gè)人博客系統(tǒng)。

  2、界面非常經(jīng)典,基本上可以馬上上手使用,也挺符合在下的審美觀。

  3、早前一段時(shí)間就通過該系統(tǒng),并且暫時(shí)對(duì)網(wǎng)上有哪些開源的個(gè)人博客系統(tǒng)不太清楚。

嘿嘿,說了半天還是個(gè)人原因,勿拍磚哈。

2、對(duì)小泥鰍的風(fēng)險(xiǎn)性、成功率的分析,以及促使成功的要素有哪些

當(dāng)我們決定去干一件事的時(shí)候,我們需要先考慮它的可行性,像“把太陽用弓箭射下來”之類的神話般的事情我們不會(huì)做,同樣的,如果代碼里面遍布WCF或者Entity FrameWork的項(xiàng)目,我們就無謂自我折騰了,即使真的成功了,也是殺敵一千自損八百,相當(dāng)?shù)牟恢档谩?/p>

而對(duì)于小泥鰍來說,有幾點(diǎn)則是非常關(guān)鍵的:

第一、它的FrameWork版本僅僅為FrameWork 2.0,沒錯(cuò),只是2.0,并沒有采用最新版的FrameWork。這點(diǎn)是根本,倘若小泥鰍采用的是FrameWork 4.5或以上,這就麻煩了,要知道,微軟“刷版本”的速度極快,早在前兩天ASP.NET MVC 5.1和WebAPI 2.1就已經(jīng)發(fā)布,可是我們捫心自問一下,自己或許連MVC 5.0的文檔還沒有看多幾份,VS 2012 還沒辦法通過獨(dú)立的安裝方式得到MVC 5.0 的模板。同樣的,縱使Mono團(tuán)隊(duì)的辦事效率再高,也很難完美的跟上微軟的節(jié)奏。因此,一旦小泥鰍使用了Mono還不支持的Framework版本,那么后面的東西都不用玩了。

第二、我們看一下小泥鰍的項(xiàng)目組織機(jī)構(gòu):

拋開那個(gè)不可用且不影響系統(tǒng)的Loachs.Build,小泥鰍系統(tǒng)中包含了:一個(gè)包含頁面、CSS、js等與用戶直接做交互的Web層,一個(gè)包含系統(tǒng)業(yè)務(wù)邏輯、工具類以及數(shù)據(jù)訪問接口的核心代碼區(qū)core層,以及一個(gè)實(shí)現(xiàn)core層中數(shù)據(jù)訪問接口的數(shù)據(jù)訪問層。相當(dāng)?shù)那逦髁?。?dāng)我們想要對(duì)小泥鰍進(jìn)行二次開發(fā),修改它支持的數(shù)據(jù)庫的時(shí)候,只需增加多一個(gè)實(shí)現(xiàn)core層數(shù)據(jù)訪問接口的類庫,即可完成對(duì)其他數(shù)據(jù)庫的支持。

第三、再看看現(xiàn)有的數(shù)據(jù)訪問層“Loachs.Data.access”,我們需要的SQL語句都在里面,我們?cè)谥谱髌渌麛?shù)據(jù)庫的訪問層的時(shí)候,只需要把當(dāng)前訪問層的SQL語句稍微修改,讓它在其他數(shù)據(jù)庫中成功的跑起來即可,而由于標(biāo)準(zhǔn)的SQL語句的關(guān)系,我們所需要耗費(fèi)的工作量大大的減少。

第四、由于FrameWork版本的關(guān)系,整套系統(tǒng)中沒有出現(xiàn)在Linux.NET中知名的坑(如WCF、Entity FrameWork等),同時(shí)因?yàn)樾∧圉q是一個(gè)相對(duì)獨(dú)立的系統(tǒng),沒有與操作系統(tǒng)發(fā)生嚴(yán)重的關(guān)聯(lián)關(guān)系,沒有直接的調(diào)用到操作系統(tǒng)的API,我們無需對(duì)系統(tǒng)發(fā)生大規(guī)模的改造。

最后、代碼中對(duì)文件、對(duì)類、對(duì)URL基本上編碼大小寫敏感(個(gè)別除外),我們無需花更多的時(shí)間進(jìn)行修正(當(dāng)然,我們也可以在Jexus中設(shè)置Mono,讓Linux.NET不區(qū)分大小寫)。

綜上所述,對(duì)小泥鰍的改造風(fēng)險(xiǎn)較低,成功率較高,值得改造。

3、對(duì)MS.NET與Mono使用相同數(shù)據(jù)庫驅(qū)動(dòng)器前提下的數(shù)據(jù)訪問層改造

相信很多的讀者會(huì)或多或少的把MS的.NET與Mono作關(guān)聯(lián),把兩者之間的動(dòng)態(tài)庫進(jìn)行對(duì)等,其實(shí)這并不然,雖然對(duì)于大部分的庫文件來說,兩者之間是可以通用的,但是仍然有不少的庫是需要加以區(qū)別的。在本小節(jié)中,我們先從通用的庫入手,最大限度的完成初始的工作。

我們先添加一層MySQL的類庫

然后用Nuget安裝上我們的驅(qū)動(dòng)。

接著建立我們的Mysql數(shù)據(jù)庫,各位讀者可以通過手寫、使用工具或者最簡(jiǎn)單的執(zhí)行托管代碼中“app_data"目錄中的腳本進(jìn)行創(chuàng)建(注意別漏了表的主鍵和自增)。

然后就是非常低級(jí)的拷貝代碼、改代碼工序,此處就不花費(fèi)文字來說明了。

只是有幾個(gè)地方需要注意一下的:

  (1)、Linux中有大小寫敏感,同樣在MySQL中也不例外,小心你的表名和字段名

  (2)、在"Loachs.Data.Access"中,表名和字段名都有中括號(hào)括起來了,記得要清除一下

  (3)、分頁功能在MySQL比較簡(jiǎn)便,不用top,直接使用limit即可

改好了之后,在”Loachs.Core“中”Data/DataAccess.cs“文件的path修改為”Loachs.Data.MYSQL“即可。

然后編譯,在vs自帶的調(diào)試web服務(wù)器中發(fā)布。

正常運(yùn)作即可,非常簡(jiǎn)單,跟在windows中開發(fā)一模一樣。


至此,本回合到此先告一段落,不知各位讀者是否由此感覺:“這跟開發(fā)普通的.NET根本沒有任何差別”。是的,本就沒有太大的差別,只要開發(fā)時(shí)多加一個(gè)心眼,多注意編碼的規(guī)范,其余的就沒什么太大的要求了。Linux.NET并不是什么遙不可及的東西,只要稍加動(dòng)手,你很快就會(huì)沉浸在其中了。

在下回合中,我們將會(huì)把我們?cè)赪indows中改好的項(xiàng)目發(fā)布到Linux中,并對(duì)它運(yùn)行時(shí)所出現(xiàn)的問題進(jìn)行修復(fù),我們將不再依賴于Visual Studio(事實(shí)上也無法依賴了),通過一些其他的小技巧來定位以及解決我們的問題。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 呼伦贝尔市| 陆良县| 洛川县| 高雄县| 太和县| 栖霞市| 淳化县| 英德市| 土默特左旗| 东兰县| 南江县| 台中县| 盐池县| 博野县| 囊谦县| 子洲县| 丹巴县| 平乡县| 永靖县| 沙坪坝区| 江源县| 尼木县| 大埔县| 湖南省| 台北市| 保康县| 奎屯市| 鄢陵县| 什邡市| 皋兰县| 牡丹江市| 平利县| 呼图壁县| 安陆市| 拉萨市| 安国市| 肃宁县| 蚌埠市| 土默特右旗| 成武县| 临邑县|