专栏首页cnblogs奉上简单的.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目录

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • knockoutjs 上自己实现的flux

    在knockoutjs 上实现 Flux 单向数据流 状态机,主要解决多个组件之间对数据的耦合问题。 一、其实简单 flux的设计理念和实现方案,很大程度上人借...

    sam dragon
  • directshow、 Emgucv入门

    本示例主要测试了directshow、Emgucv的视频流采集功能,其中Emgucv还实现了人脸的识别。示例源码下载 一、directshow的介绍 实现原理:...

    sam dragon
  • .Net WebApi 初探

    实现服务层与api层共用,也就表明Service层就是api层。 关键类和接口 System.Web.Http.Dispatcher.DefaultHttpC...

    sam dragon
  • 奉上简单的.Net后端开发模板

    假定一个场景,开始做开发的你,领导走到你的面前说道:“小伙子,看了简历和最近的工作表现,很不错,现在交给一个任务,开发一个简单的CMS后端接口吧,前端有人配合你...

    李明成
  • Python3 初学实践案例(8)使用 sqlite3 数据库存储生成的密码,prettytable 的使用

    Python3 初学实践案例(8)使用 sqlite3 数据库存储生成的密码,prettytable 的使用 在前面我用 python 脚本实现的 cli 版本...

    FungLeo
  • 你们要的云开发数据库基础入门来了|视频教程

    近来小程序·云开发越来越热,云开发主要基于Serverless架构,Serverless架构包含两块:Faas(函数即服务)和BaaS(后端即服务)。

    腾讯云开发TCB
  • JavaWeb05- 就这几步轻松操作MySQL数据库!

    mysql-1 一.数据库 1. 数据库介绍 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以通过sql语句对数据库中...

    奋斗蒙
  • 运维角度浅谈MySQL数据库优化

    一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善。这篇博文主要谈MySQL数据库发展周期中所面临的问题...

    Java高级架构
  • 6.Elasticsearch轻量搜索

    有两种形式的 搜索 API: - 一种是 “轻量的” 查询字符串 版本,要求在查询字符串中传递所有的参数 - 另一种是更完整的请求体版本,要求使用 JS...

    IT云清
  • 数据库表字段命名规范

    数据库表字段命名规范 摘要:当前研发工作中经常出现因数据库表、数据库表字段格式不规则而影响开发进度的问题,在后续开发使用原来数据库表时,也会因为数据库表的可读性...

    庞小明

扫码关注云+社区

领取腾讯云代金券