麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 服務器 > Linux服務器 > 正文

詳解linux下的.net/mvc/cms程序結(jié)構(gòu)

2024-09-05 23:04:28
字體:
供稿:網(wǎng)友

cms程序架構(gòu)

本程序是主要是用于企業(yè)網(wǎng)站開發(fā)的,也可以做博客程序,程序是從之前上一篇的.net 博客程序改進過來的,主要技術由webform轉(zhuǎn)成.net mvc了,由于是很早之前的項目,12年還是mvc3版本,當然還是跑在linux下的。

技術棧 .net framework 4.0 sqlite 數(shù)據(jù)庫 mono linux 運行環(huán)境以及mono下的sqlite庫 razor 模板引擎 dapper 輕量級orm框架 vs2017 社區(qū)版本

這次的開發(fā)工具比較新了吧,上次用vs2010發(fā)的,跨度比較大,這個項目之前也是在10下開發(fā)出來的,雖然用2017,其實沒什么影響的。

razor引擎比nvelocity的易用性高很多,而且跟后端集合的比較好。

而且這次的項目完全使用dapper orm,整個數(shù)據(jù)庫訪問層操作看起來也清爽很多了。

代碼結(jié)構(gòu)

linux,.net,mvc,cms,程序結(jié)構(gòu)

左側(cè)主要分為三個文件夾,Jqpress.web是存放web路由入口、模板皮膚、靜態(tài)文件,上傳文件夾,后臺管理程序通過Areas域管理來實現(xiàn)的,整個項目結(jié)構(gòu)還是比較清晰的。

路由設計

linux,.net,mvc,cms,程序結(jié)構(gòu)

路由入口為HomeController這個文件,包括首頁、產(chǎn)品列表,文章列表,文章內(nèi)容等待,都是通過這個Controller來路由的,雖然功能比較多,但是代碼量不到300行,業(yè)務邏輯處理基本都在service層。

如下為一個列表界面的Action邏輯才20幾行

public ActionResult Category(string pagename)   {   var model = new PostListModel();   CategoryInfo cate = _categoryService.GetCategory(pagename);   model.Category = cate;   if (cate != null)   {    int categoryId = cate.CategoryId;    model.MetaKeywords = cate.CateName;    model.MetaDescription = cate.Description;    ViewBag.Title = cate.CateName;    model.Url = ConfigHelper.SiteUrl + "category/" + Jqpress.Framework.Utils.StringHelper.SqlEncode(pagename) + "/page/{0}";    const int pageSize = 10;    int count = 0;    int pageIndex = PressRequest.GetInt("page", 1);    int cateid = PressRequest.GetQueryInt("cateid", -1);    int tagid = PressRequest.GetQueryInt("tagid", -1);    if (cateid > 0)     pageIndex = pageIndex + 1;    var cateids =categoryId+","+ _categoryService.GetCategoryList().FindAll(c => c.ParentId == categoryId).Aggregate(string.Empty, (current, t) => current + (t.CategoryId + ",")).TrimEnd(',');    var postlist = _postService.GetPostPageList(pageSize, pageIndex, out count, cateids.TrimEnd(','), tagid, -1, -1, -1, -1, -1,-1, "", "", "");    model.PageList.LoadPagedList(postlist);    model.PostList = (List<PostInfo>)postlist;   }   model.IsDefault = 0;   return View(model.Category.ViewName,model);  }

 

模板引擎設計

linux,.net,mvc,cms,程序結(jié)構(gòu)

linux,.net,mvc,cms,程序結(jié)構(gòu)

模板引擎采用razor,不同的cms風格模板以文件夾的形式存放在Themes文件夾下,通過后端設置可以隨意切換模板(此功能還在完善當中)。

數(shù)據(jù)存儲設計

linux,.net,mvc,cms,程序結(jié)構(gòu)

作為輕量級的cms,當然不會用mysql或者sqlserver,依然堅定的使用sqlite,以上是通過dapper進行數(shù)據(jù)庫操作,雖然沒有微軟增加的orm強大,但是可讀性和操控性都是非常好的。

linux,.net,mvc,cms,程序結(jié)構(gòu)

因為要支持linux,所以sqlite的操作類需要using Mono.Data.Sqlite;
,當然可以在windows下切換過來,上面我寫的切換方式太粗暴了,學過設計模式的同學應該分分鐘能夠重構(gòu)出來,切換windows和linux簡直不要太方便。

數(shù)據(jù)庫結(jié)構(gòu)

linux,.net,mvc,cms,程序結(jié)構(gòu)

jq_category 分類及標簽表 jq_comments 評論表 jq_links 友鏈及導航設置 jq_posts 文章表 jq_sites 站點訪問統(tǒng)計數(shù)字及文章、分類、數(shù)量統(tǒng)計表 jq_users 賬戶表

數(shù)據(jù)庫結(jié)構(gòu)跟之前的 博客程序沒差別,只是部分表結(jié)構(gòu)字段有所差別

運行 vs2017調(diào)試模式預覽

cms首頁

linux,.net,mvc,cms,程序結(jié)構(gòu)

后臺登錄,默認用戶名admin,密碼123456

linux,.net,mvc,cms,程序結(jié)構(gòu)

后臺首頁

linux,.net,mvc,cms,程序結(jié)構(gòu)

文章列表

linux,.net,mvc,cms,程序結(jié)構(gòu)

文章編輯

linux,.net,mvc,cms,程序結(jié)構(gòu)

linux下的部署方式 mono

linux,.net,mvc,cms,程序結(jié)構(gòu)

上圖為我服務器上的mono安裝信息。

jexus

linux下需要安裝mono和jexus就可以運行起來,mono作為.net framework的linux運行環(huán)境,jexus作為web服務器。

linux,.net,mvc,cms,程序結(jié)構(gòu)

jexus配置,因為我的服務器上還有其他語言的站點,所以沒有直接采用jexus對外服務。

nginx

linux,.net,mvc,cms,程序結(jié)構(gòu)

nginx代理了jexus的81端口,此地方不是必選,但是Nginx作為常規(guī)的代理軟件,可以在服務器上跑.net、php、java等,各司其職,百花齊放。

bin文件夾說明

linux,.net,mvc,cms,程序結(jié)構(gòu)

.net mvc3在 linux下的部署需要注意的是需要將項目下引用的dll都需要上傳到bin目錄下。并且還需要上傳Microsoft.web.Infrastructure.dll,這個是發(fā)布mvc項目需要用的??梢詫Ρ认挛襴ebform下的Linux博客程序站點bin下只要引入Mono和Nvelocity這2個第三方dll,其他都是自己的業(yè)務程序,這個.net cms要的東西還挺多,下圖是我的博客站點下的bin文件夾內(nèi)容。

linux,.net,mvc,cms,程序結(jié)構(gòu)

linux服務器上的的.net 程序問題 jexus不支持中文,所以文件上傳的路徑必須重寫成字母加數(shù)字符號形式, jexus web服務器是默認對大小寫敏感的,所以部署的時候一定要

只需要把 jws這個腳本文件中的 “export MONO_IOMAP=...”這一句前邊的“#”去掉,就可以不區(qū)分大小寫了 源碼獲取

https://github.com/robotbird/jqpress.cms

為了防止部分同學無法訪問Github,所以放oschina的gitee上了

https://gitee.com/robotbird/jqpress.cms

以上就是本次我們?yōu)榇蠹艺淼娜績?nèi)容,希望對你有所幫助,如果大家還有任何不明白的地方可以在下方的留言區(qū)討論,感謝你對VEVB武林網(wǎng)的支持。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 有色视频在线观看 | 欧美成人免费看 | 一本色道久久99精品综合蜜臀 | 国产欧美在线观看不卡一 | 免费h片网站 | 一级视频在线播放 | 精品国产一区二区三区久久久 | av电影在线免费观看 | 成人一级黄色片 | 亚洲影视中文字幕 | 关键词| 国产日韩精品欧美一区视频 | 黄视频网站免费 | 最新亚洲国产 | 久久精品国产亚洲7777 | 色999国产 | 91网站免费观看 | 羞羞视频在线免费 | 亚洲第一页综合 | 精品黑人一区二区三区国语馆 | 羞羞网站 | 久久久久久久久久亚洲 | 国产午夜亚洲精品理论片大丰影院 | 免费网址黄| 一级黄色毛片免费 | 免费亚洲视频在线观看 | 久色乳综合思思在线视频 | 亚洲操比视频 | 中文日韩在线 | 97视频| 欧美亚洲一级 | 免费香蕉成视频成人网 | 一本一本久久a久久精品综合小说 | 久久久青 | 免费国产网站 | 日本高清无遮挡 | 久久探花 | 国产女厕一区二区三区在线视 | 精品亚洲一区二区三区 | 大片毛片 | 蜜桃成品人免费视频 |