1. 程式人生 > >奉上簡單的.Net後端開發模板

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

假定一個場景,開始做開發的你,領導走到你的面前說道:“小夥子,看了簡歷和最近的工作表現,很不錯,現在交給一個任務,開發一個簡單的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目錄