亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

詳解linux下的.net/mvc/cms程序結構

2024-09-05 23:04:28
字體:
來源:轉載
供稿:網友

cms程序架構

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

技術棧 .net framework 4.0 sqlite 數據庫 mono linux 運行環境以及mono下的sqlite庫 razor 模板引擎 dapper 輕量級orm框架 vs2017 社區版本

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

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

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

代碼結構

linux,.net,mvc,cms,程序結構

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

路由設計

linux,.net,mvc,cms,程序結構

路由入口為HomeController這個文件,包括首頁、產品列表,文章列表,文章內容等待,都是通過這個Controller來路由的,雖然功能比較多,但是代碼量不到300行,業務邏輯處理基本都在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,程序結構

linux,.net,mvc,cms,程序結構

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

數據存儲設計

linux,.net,mvc,cms,程序結構

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

linux,.net,mvc,cms,程序結構

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

數據庫結構

linux,.net,mvc,cms,程序結構

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

數據庫結構跟之前的 博客程序沒差別,只是部分表結構字段有所差別

運行 vs2017調試模式預覽

cms首頁

linux,.net,mvc,cms,程序結構

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

linux,.net,mvc,cms,程序結構

后臺首頁

linux,.net,mvc,cms,程序結構

文章列表

linux,.net,mvc,cms,程序結構

文章編輯

linux,.net,mvc,cms,程序結構

linux下的部署方式 mono

linux,.net,mvc,cms,程序結構

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

jexus

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

linux,.net,mvc,cms,程序結構

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

nginx

linux,.net,mvc,cms,程序結構

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

bin文件夾說明

linux,.net,mvc,cms,程序結構

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

linux,.net,mvc,cms,程序結構

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

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

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

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

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

以上就是本次我們為大家整理的全部內容,希望對你有所幫助,如果大家還有任何不明白的地方可以在下方的留言區討論,感謝你對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本精品视频在线| 欧美孕妇孕交黑巨大网站| 亚洲深夜福利网站| 久久亚洲精品一区二区| 懂色av中文一区二区三区天美| 亚洲自拍偷拍网址| 91在线观看免费网站| 日韩在线免费视频观看| 国产欧美最新羞羞视频在线观看| 亚洲视屏在线播放| 欧美日韩免费在线观看| 欧美最顶级丰满的aⅴ艳星| 情事1991在线| 最近更新的2019中文字幕| 国产精品aaa| 欧美大片第1页| 欧美日韩中国免费专区在线看| 国产精品夜色7777狼人| 亚洲成人精品久久| 成人激情在线播放| 日韩电影大全免费观看2023年上| 日韩免费在线看| 日韩小视频在线观看| 欧美高清无遮挡| 欧美性xxxxxx| 精品国产欧美一区二区五十路| 国内免费精品永久在线视频| 欧美性生活大片免费观看网址| 日韩电影第一页| 日韩美女激情视频| 国产噜噜噜噜久久久久久久久| 国产精品久久久久影院日本| 国产91在线高潮白浆在线观看| 日韩va亚洲va欧洲va国产| 在线视频日本亚洲性| 91在线精品播放| 欧美怡红院视频一区二区三区| 91精品久久久久久久| 国产精品大片wwwwww| 欧美国产亚洲视频| 怡红院精品视频| 亚洲丝袜一区在线| 亚洲一区久久久| 国产精品美女在线观看| 亚洲视频在线播放| 亚洲欧洲高清在线| 欧美xxxx14xxxxx性爽| 米奇精品一区二区三区在线观看| 亚洲欧洲日本专区| 亚洲日韩欧美视频| 国产伦精品一区二区三区精品视频| 国内精品视频在线| 精品久久在线播放| 日韩综合视频在线观看| 91在线免费观看网站| 国产一区二区三区视频免费| 日韩中文字幕久久| 欧美性猛交xxxx免费看漫画| 成人免费看吃奶视频网站| 欧美精品日韩www.p站| 国内精品久久久久影院 日本资源| 国产亚洲欧美日韩美女| 色爱av美腿丝袜综合粉嫩av| 中文字幕在线国产精品| 欧美极品美女视频网站在线观看免费| 伊人久久大香线蕉av一区二区| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产欧美日韩91| 国产精品高潮呻吟久久av野狼| 久久99精品久久久久久琪琪| 日韩在线小视频| 91禁国产网站| 91丨九色丨国产在线| 永久免费毛片在线播放不卡| 日韩中文字幕在线视频| www.日韩不卡电影av| 久久夜色精品亚洲噜噜国产mv| 中文字幕精品久久久久| 久久久久久久一区二区| 日韩欧美成人精品| 欧美精品福利在线| 青草青草久热精品视频在线观看| 国产欧美日韩综合精品| 久久精品国产亚洲一区二区| 久久久免费在线观看| 在线观看国产精品淫| 日韩视频精品在线| 国产精品va在线播放我和闺蜜| 亚洲欧洲日韩国产| www.99久久热国产日韩欧美.com| 欧美中文字幕在线播放| 久久综合五月天| 亚洲国产精品免费| 青草热久免费精品视频| 国产精品香蕉av| 欧美激情一区二区三区久久久| 日韩在线小视频| 在线观看日韩专区| 久久人人97超碰精品888| 亚洲影视中文字幕| 88xx成人精品| 亚洲成色777777在线观看影院| 国产精品wwww| 亚洲成人教育av| 欧美精品999| 97视频com| 亚洲精品成人久久| 午夜精品福利电影| 国外成人在线直播| 国产精品99一区| 久久男人的天堂| 久久久久国产精品免费网站| 国产欧美精品一区二区三区-老狼| 欧美日韩一区二区在线| 97碰碰碰免费色视频| 精品国产乱码久久久久久天美| 欧美制服第一页| 欧美一区二区大胆人体摄影专业网站| 欧美激情精品久久久久久变态| 综合国产在线视频| 国产精品偷伦免费视频观看的| 高跟丝袜一区二区三区| 色噜噜狠狠色综合网图区| 国产精品久久久久不卡| 红桃视频成人在线观看| 日韩精品中文字幕有码专区| 亚洲www在线观看| 欧美日韩国产第一页| 久久人人爽亚洲精品天堂| 日韩亚洲成人av在线| 欧美美女15p| 国产一区二区三区在线播放免费观看| 久久久久日韩精品久久久男男| 日韩av免费看| 日韩电影大片中文字幕| 夜夜嗨av一区二区三区四区| 亚洲人成网7777777国产| 美乳少妇欧美精品| 国产成人91久久精品| 精品中文字幕久久久久久| 亚洲国产91色在线| 日韩69视频在线观看| 成人免费直播live| 国产一区二区三区在线播放免费观看| 亚洲成成品网站| 国产97在线亚洲| 久久久在线视频| 国产午夜精品理论片a级探花| 综合国产在线观看| 亚洲a区在线视频| 亚洲天堂影视av| 国产精品电影一区| 91大神福利视频在线| 日韩av资源在线播放| 国产一区二区美女视频| 亚洲欧美在线一区二区| 51精品在线观看| 久久久久久国产精品美女| 欧美一级电影在线| 欧美黑人xxxx| 国产免费一区二区三区在线观看| 亚洲精品美女网站| 懂色aⅴ精品一区二区三区蜜月| 精品动漫一区二区|