本博客程序是博主11年的時候參考loachs小泥鰍博客內核開發的.net跨平臺博客cms,距今已有6年多了,我的博客網站一直在用,雖然沒有wordpress那麼強大,可是當時在深究.net的同時,本身能寫一個博客程序,而且基於獨立Linux服務器搭建一個本身的.net網站仍是挺有意思,畢竟當年運行在linux下的.net網站仍是極少數的,以前的部署方式一直沿用至今,網站服務器僅僅內存512M擴充到1G,畢竟如今的操做系統512M實在是有點少,若是是跑靜態站點還能夠,動態的再多放點東西就會內存報警了,廢話很少說,看代碼。java
左側主要分爲三個文件夾,Jqpress.web是存放web路由入口、模板皮膚、上傳文件以及後臺管理程序,上圖default.aspx.cs代碼裏有處理301跳轉的,主要用來處理jqpress.com自動跳轉到www.jqpress上,確保對搜索引擎處理友好,須要你們手動移除此代碼。python
整個前臺入口是從default.aspx做爲路由入口跳轉到核心路由控制器BlogController,Controller根據url請求的type參數作路由處理。mysql
模板引擎採用nvelocity,是java的velocity的.net翻譯版本,如今依然活躍在java界,採用這個模板引擎的緣由是由於簡單,高效,通用,成熟。linux
能夠看到一個模板皮膚包含圖片、模板、樣式、預覽圖、配置文件,wordpress好像也跟這差很少。nginx
做爲輕量級的博客程序,數據庫就不必用sqlserver或者mysql這樣的大塊頭了,sqlite絕對夠用了,若是是windows下的能夠用access,可是sqlite真心好用,語法就是mysql的精簡版,速度很是之快,上圖是原生sqlite沒經過orm的直接寫法。git
orm更是採用stackoverflow出品的dapper,速度快,原生sql,簡單,由於要支持linux,因此sqlite的操做類須要using Mono.Data.Sqlite;
,上圖是經過dapper的寫法,沒有密密麻麻的參數了,不過當前項目尚未徹底轉dapper,但願有感興趣的同窗將此份源碼改形成更好的.net 博客cms系統。程序員
因爲windows下和linux操做sqlite的原生方法差異比較大,若是經過dapper來操做的話仍是能夠實現自由切換github
jq_category
分類及標籤表jq_comments
評論表jq_links
友鏈及導航設置jq_posts
文章表jq_sites
站點訪問統計數字及文章、分類、數量統計表jq_users
帳戶表博客首頁
web
後臺登陸,默認用戶名admin,密碼admin
sql
後臺首頁
文章編輯
linux下須要安裝mono和jexus就能夠運行起來,mono做爲.net framework的linux運行環境,jexus做爲web服務器。
如上圖是個人博客站點jexus配置,由於個人服務器上還有其餘語言的站點,因此沒有直接採用jexus對外服務,前面還套了層nginx做爲代理。
上圖爲我服務器上的mono安裝信息。
linux服務器上的的.net 程序問題
https://github.com/robotbird/jqpress-aspx
爲了防止部分同窗沒法訪問Github,因此放oschina的gitee上了
https://gitee.com/robotbird/jqpress-aspx
至於架構爲何不用.net mvc ,那是由於當時只買得起最便宜的.net 虛擬服務器,不用單獨買服務器一年才幾十塊錢,因此說此版本的.net 博客程序對服務器的要求是極低的,基本支持全部的.net 空間提供商,若是是自建服務的話,我也從新開發了一套基於mvc3的cms程序,你們能夠先預覽下[bjjxysbz.com,下回分解下。
做爲一個多年的.net開發人員,後又混跡java,如今成爲產品狗,偶爾用用python作些平常的工做,做爲一個邁入中年的老程序員,想一想仍是不忘初心,熱愛技術,後續也會抽出時間將本身的做品逐一搬到網上,緬懷下青春,我的的博客站點 機器鳥,後續會將繼續在博客園上發表技術類型的文章,迴歸社區,再也不獨自前行。
博客程序還不是很完善,bug可能比較多,若是有代碼、開發、部署問題請聯繫qq:330296409,或者郵箱robotbird#qq.com。