假定一個場景,開始做開發的你,領導走到你的面前說道:“小伙子,看了簡歷和最近的作業表現,很不錯,現在交給一個任務,開發一個簡單的CMS后端介面吧,前端有人配合你”,當時你內心讀白:“CMS什么東西,還好我可以百度,但我要在哪個專案上開搞啊”,這時的領導又說道:“專案你自己建立,然后上傳git就行了”,這時的你是否已經石化,本篇文章就為您提供一個快速建立后端開發的模板,作者自己總結出品,如有不妥,指正即可,
模板代碼下載:https://github.com/cqhaibin/ApiTemplate.git
目標
由于搭建的只是后端開發模板,主需要滿足基本要求即可,
- 框架結構簡單
- 資料庫支持:Mssql, Mysql
- 構架易于上手
- 支持良好的業務擴展
- 是一套基礎開發模板
技術選型
- 開發語言:c#
- 運行時 .net Framework4.5
- IoC:Autofac、Autofac.WebApi2
- Dto:AutoMapper
- 序列化:Newtonsoft.Json
- Orm:FreeSql
- Api:Aspnet.WebApi
- 資料庫:首先MSSQL、次先Mysql
- 快取:基于List或Dictionary實作單機記憶體級快取
架構分層

- 資料庫訪問層
- Freesql物體定義,也就是我們常說的是資料庫物體
- 提供dbContext背景關系的方式訪問
- 復雜的sql操作介面定義及實作,如:多表查詢、存盤程序執行等
- 業務層
- 業務層拆分兩個專案,BAccurate只做業務領域物體、值物件、系統配置物件、系統Model物件、AppService的定義等定義;BAccurate.Implement領域業務的實作
- BAccurate.Implement可以依賴BAccurate.Repository.Fresql層,實作領域物體的資料持久化
- Feesql物體定義未放在BAccurate層(業務規范專案),是為了防止領域物體與資料庫物體混淆
- BAccurate專案可以被其他所有專案使用
- 服務層
- AppService.Implement和Webapi我都劃分在服務層,其中webapi是一個貧血專案,只是把AppService做到WebApi介面化
- AppService的介面和Model定義,都放到了BAccurate(業務規范專案)中,方便后期對AppService的重寫和擴展
- UI層
前端開發專案
介面規范
- 介面以類resetful api規范回傳
- 回傳結果規則一致

- 介面名稱前綴動詞:Get:表示查詢;Post:提交資料(添加/修改);Delete:移除資料
- 介面命名規則:介面名前綴+業務名稱;以大駝峰命名
- 介面要進行統一管理
部署規范
- IIS托管部署
- 前端靜態資源,托管到wwwroot目錄

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/69615.html
標籤:其他
