国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - 詳解linux下的.net/mvc/cms程序結構

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

2022-02-24 17:18Linux教程網 Linux

本片文章給大家詳細分析了在linux下.net/mvc/cms程序詳細結構說明,了解這個對在linux下程序開發非常有用,有興趣的參考學習下吧。

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幾行

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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項目需要用的。可以對比下我webform下的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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 一道本一区二区三区 | 伊人春色网 | 91久久艹| 免费成人在线视频网站 | 成人在线一区二区三区 | 国产一区二区三区免费播放 | 欧美大片一区二区 | 日韩精品视频在线播放 | av成人免费在线观看 | 久久精品国产免费 | 狠狠综合 | 涩涩视频观看 | 中文久久 | 韩国精品一区 | 欧美日韩电影一区二区 | 亚洲一区观看 | 国内精品久久久久久久影视红豆 | av电影免费在线观看 | 中文字幕日韩欧美一区二区三区 | 日韩中文一区二区 | 91精品久久久久久9s密挑 | 久久国产精品系列 | 欧美午夜一区二区三区免费大片 | 999精品| 欧美精品一区二区久久婷婷 | 色接久久 | 欧美激情久久久 | 日韩欧美国产精品 | 国产一区二区视频精品 | 中文字幕欧美激情 | 欧美簧片在线 | 精品一区电影 | 国产成人精品一区二区三区视频 | 欧美一区2区三区4区公司二百 | 国产视频1区 | 啪一啪操一操 | 欧美日韩一级视频 | 久久综合一区二区 | 91精品国产综合久久福利软件 | 成人一区二区三区在线观看 | 日韩在线观看一区 |