奉上簡單的.Net後端開發模板

假定一個場景,開始作開發的你,領導走到你的面前說道:「小夥子,看了簡歷和最近的工做表現,很不錯,如今交給一個任務,開發一個簡單的CMS後端接口吧,前端有人配合你」,當時你心裏讀白:「CMS什麼東西,還好我能夠百度,但我要在哪一個項目上開搞啊」,這時的領導又說道:「項目你本身創建,而後上傳git就好了」,這時的你是否已經石化,本篇文章就爲您提供一個快速創建後端開發的模板,做者本身總結出品,若有不妥,指正便可。
模板代碼下載:https://github.com/cqhaibin/ApiTemplate.git前端

目標

因爲搭建的只是後端開發模板,主須要知足基本要求便可。git

  • 框架結構簡單
  • 數據庫支持:Mssql, Mysql
  • 構架易於上手
  • 支持良好的業務擴展
  • 是一套基礎開發模板

技術選型

  • 開發語言:c#
  • 運行時 .net Framework4.5
  • IoC:Autofac、Autofac.WebApi2
  • Dto:AutoMapper
  • 序列化:Newtonsoft.Json
  • Orm:FreeSql
  • Api:Aspnet.WebApi
  • 數據庫:首先MSSQL、次先Mysql
  • 緩存:基於List或Dictionary實現單機內存級緩存

架構分層

image

  • 數據庫訪問層
    • 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規範返回
  • 返回結果規則一致
    image
  • 接口名稱前綴動詞:Get:表示查詢;Post:提交數據(添加/修改);Delete:移除數據
  • 接口命名規則:接口名前綴+業務名稱;以大駝峯命名
  • 接口要進行統一管理

部署規範

  • IIS託管部署
  • 前端靜態資源,託管到wwwroot目錄
    image
相關文章
相關標籤/搜索