mvc+webapi 项目架构
首先项目是mvc5+webapi2.0+orm-dapper+ef codefirst+redis+quartz.net+actionmq。
1.项目框架层次结构:
这个mvc项目根据不同的业务和功能进行不同的区域划分,model数据结构和mvc传递model进行区分,webapi包括接口定义和接口的实现,业务逻辑的处理。其中数据处理单独放在webapi之外的db类库里面。
2.命名规范
以上大致是文件夹与类库的命名。其中业务和功能以三个字母进行命名。
以上为区域命名
3.开发规则与技巧
《一》命名空间的处理
有相同业务的功能模块命名空间保持一致,好处在类库互相引用的时候不用写using
《二》数据处理
1.orm(内部封装的方法与dapper原始方法相结合)+sql语句相结合。
2.3个(包括3个)数据字段处理,传递参数,但是可进行对象操作
3.修改状态用state=1-state,【不用传状态参数,只需传id即可】。
4.业务,功能分离尽量避免多表操作。【处理方便,业务清晰,实现容易】
5.数据处理在business进行数据结构对象处理,apiservice进行数据结构model和viewmodel(暂时叫这个名字吧)。【避免数据结构让客户获得。】
6.所有webapi接口均为post接口
《三》部分代码分析
(一) wx.web.fee.apis
(二)wx.web.fee.apicontroller
(三)wx.web.fee.apiservice
(四)wx.web.fee.business
(五)wx.web.fee.controllers
(六)Bin
此配置让其生成bin文件即webapi访问地址
(七)mvc bin引用
这里的bin文件记录的是接口地址文件。
(八)生成事件 执行一些copy的工作。
(九)页面的呈现
《四》ef code first创建数据库
创建数据库
mvc+webapi 项目架构的更多相关文章
- [渣翻译] 在ASP.NET MVC WebAPI项目中使用 AngularJS
原文地址http://blog.technovert.com/2013/12/setting-up-angularjs-for-asp-net-mvc-n-webapi-project/ 我们最近发布 ...
- IIS7.0部署MVC/WebApi项目,报404.4错误
在web.config中添加如下的配置试试: <system.webServer> <modules runAllManagedModulesForAllRequests=" ...
- Asp.net MVC WebApi项目的自动接口文档及测试功能打开方法
https://blog.csdn.net/foren_whb/article/details/78866133
- 项目架构mvc+webapi
mvc+webapi 项目架构 首先项目是mvc5+webapi2.0+orm-dapper+ef codefirst. 1.项目框架层次结构: 这个mvc项目根据不同的业务和功能进行不同的区域划分, ...
- Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。
前言: Taurus.MVC 微服务版本已经发布了:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. 以前都是框架发布时写点相关功能点的文章,没有形成 ...
- Restful WebApi项目开发实践
前言 踩过了一段时间的坑,现总结一下,与大家分享,愿与大家一起讨论. Restful WebApi特点 WebApi相较于Asp.Net MVC/WebForm开发的特点就是前后端完全分离,后端使用W ...
- .net异步性能测试(包括ASP.NET MVC WebAPI异步方法)
很久没有写博客了,今年做的产品公司这两天刚刚开了发布会,稍微清闲下来,想想我们做的产品还有没有性能优化空间,于是想到了.Net的异步可以优化性能,但到底能够提升多大的比例呢?恰好有一个朋友正在做各种语 ...
- 在WebApi项目里使用MiniProfiler并且分析 Entity Framework Core
在WebApi项目里使用MiniProfiler并且分析 Entity Framework Core 一.安装配置MiniProfiler 在现有的ASP.NET Core MVC WebApi 项目 ...
- 修改 mvc webapi 默认返回 json 格式
web api 默认的已 xml 格式返回数据 现在开发一般都是以 json 格式为主 下面配置让 webapi 默认返回 json ,在需要返回 xml 时只需要加一个查询参数 datatype=x ...
随机推荐
- Matlab2015矩阵表示03
1. 矩阵表示 >>行元素分隔: 空格'space'或逗号',' >>列分隔: 分号或回车换行符 2. 冒号表达式 1) start:end 2) start: step : ...
- jinfo_动态调整JVM参数(无需重启)(实践)
本文演示在JVM进程运行过程中动态开启/关闭 GC输出,无需重启JVM进程 jinfo使用介绍 可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数 -flag < ...
- github-创建版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...
- java类的初始化块/执行顺序,实例化对象数据赋值
java里初始化一个类的对象,通过初始化快或者构造方法进行数据赋值.与其相关的执行代码有这么几种: 静态初始化块 初始化块 构造方法 静态初始化块 静态初始化块只在类加载时执行一次,同时静态初始化块只 ...
- 教你一招:win 7 或win 10右键菜单 添加获取管理员权限
当我们从经典的 windows XP 系统升级到 win 7 或 win 10,我们会发现,想要删除一些文件时,总是提示被占用或者是没有权限,很是烦恼. 这里,写下解决这个烦恼的办法,以安慰心里的不平 ...
- Mysql服务启动的时候 如何加载配置文件
Mysql服务启动的时候 如何引导配置文件 (启动加载顺序)
- yuv420转rgb 及 rgb转bmp保存
/// <summary> /// 将一桢 YUV 格式的图像转换为一桢 RGB 格式图像. /// </summary> /// <param name="y ...
- javascript面向对象:继承、多态
继承 js中同样可以实现类的继承这一面向对象特性,继承父类中的所有成员(变量和属性),同时可扩展自己的成员,下面介绍几种js中实现继承的方式: 1,对象模仿:通过动态的改变 this 指针的指向,实现 ...
- Scene
Unity 中场景切换 http://www.cnphp6.com/archives/62868 场景管理插件Scene Manager http://blog.csdn.net/onerain88/ ...
- tail -f 和 -F 的用法
tail -f 和 -F 的用法 Tai 2010-08-16 16:03:18 -f 是--follow[=HOW]的缩写, 可以一直读文件末尾的字符并打印出来."[=HOW]" ...