abp使用风格定义
一个开发人员的开发模式下面.用这个有太多代码要写了.所以需要限制与规范自己:
基于abp新系统的开发过程
1>*.Core 增加文件夹
eg:Questions
1.1>增加实体文件
eg:QAQuestion.cs
注意,应用层和实体服务傻傻分不清的时候.不要强迫症那就放一个地方好了.
应用层是各种协调,比如说你新建了一个单据,需要发一个邮件通和/短信通知/xx通知.
实体服务是只针对实体之间的协调.所有的实体状态的修改均在实体或者实体服务中间处理.
2>*.EntityFramework
2.1>*DbContext 增加数据行
eg:public IDbSet<QAQuestion> QAQuestion { get; set; }
2.2>vs201X->视图->其它窗口->程序包管理器控制台->
编辑下EntityFramework,项目里面把*.Web设为默认,好使用它的连接
在程序包管理器控制台里面->选*.EntityFramework为默认项目.
输入 Add-Migration "名字自己取"
会在*.EntityFramework中的Migrations中生成迁移代码.最好是自己修改下.因为所有的string都是max的,
eg:201703160740284_Add_Questions.cs
CreateTable(
"dbo.QAQuestions",
c => new
{
Id = c.Long(nullable: false, identity: true),
RecNo = c.String(nullable:false,maxLength:20),
Product = c.String(nullable:false,maxLength:20),
Version = c.String(nullable:false,maxLength:20),
Category = c.String(nullable:false,maxLength:10),
Status = c.String(nullable:false,maxLength:20),
EndUser = c.String(nullable:true,maxLength:20),
Content = c.String(),
3>*.Application
对外的接口均在此体现
目录结构:
Questions
Dto
xxxxDto
IxxxxService.cs
xxxxService.cs
相应建一把文件夹
eg:Questions
Dto 各种输入输出
外面的是Applcation的内容.可以写一个接口,再继承,也可以不写接口,直接上.
我的意见:
Dto
分页条件输入
单个数据条件输入
列表dto 输出
详细dto 输出
创建dto 输入
更新dto 输入
eg:
[AutoMapFrom(typeof(xxxx))]
xxxxListDto: EntityDto<long> 列表的输出
GetxxxxListInput 列表获取的条件
[AutoMap(typeof(xxxx))]
CreatexxxxInput 创建的输入
GetxxxxInput 单数据获取的条件
为了减少编译,增加灵活性,
所有的输入均做为string json的这种方式.如果需要限制,增加两个d2o.分页条件d2o和条件d2o.除非特殊情况下
附加信息有带吗?
eg:{pageindex:1,xxxx,orderby:'xx desc,mm asc',where:'where xx>"ddd"'}
angularjs2和angularjs1的区别在于.如果你用了angularjs2.要按这个来配置
http://www.cnblogs.com/1zhk/p/5831567.html
angularjs2更像一个整体.与mvc关系不大.在某种程度上面,你可以不用web了.重新建一个项目来做一个clientApp端.
4>*.Web菜单定义
App_Start中
.AddItem(
new MenuItemDefinition(
"Roles",
L("Roles"),
url: "#/roles",
icon: "fa fa-bed"
)
)
这里需要改写
5>*.Web前台菜单定义,用的都是单页
App app.js里面需要定义.
abp使用风格定义的更多相关文章
- ABP领域层定义仓储并实现
原文作者:圣杰 原文地址:ABP入门系列(3)——领域层定义仓储并实现 在原文作者上进行改正,适配ABP新版本.内容相同 一.先来介绍下仓储 仓储(Repository): 仓储用来操作数据库进行数据 ...
- Abp VNext权限定义
在Shop.Application.Contracts项目中Permissions目录下ShopPermissions定义权限名 namespace Shop.Permissions { public ...
- java开发移动端之spring的restful风格定义
https://www.ibm.com/developerworks/cn/web/wa-spring3webserv/index.html
- ABP(现代ASP.NET样板开发框架)系列之9、ABP设置管理
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之9.ABP设置管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP源码分析七:Setting 以及 Mail
本文主要说明Setting的实现以及Mail这个功能模块如何使用Setting. 首先区分一下ABP中的Setting和Configuration. Setting一般用于需要通过外部配置文件(或数据 ...
- ABP源码分析四十五:ABP ZERO中的EntityFramework模块
AbpZeroDbContext:配置ABP.Zero中定义的entity的Dbset EntityFrameworkModelBuilderExtensions:给PrimitiveProperty ...
- ABP框架 - 日志
文档目录 本节内容: 服务端 获取Logger(记录器) Logger的基类 配置 Abp.Castle.Log4Net 包 客户端 服务端 ABP使用Castle Windsor的日志记录工具,它可 ...
- ABP框架 - 设置管理
文档目录 本节内容: 简介 关于ISettingStore 定义设置 setting scope(设置范围) 重写设置定义 获取设置值 服务端 客户端 修改设置 关于缓存 简介 每个应用必需存储一些设 ...
- ABP理论学习之日志记录
返回总目录 本篇目录 服务端 获取Logger 基类中的Logger 配置 客户端 服务端 ABP使用的是Castle Windsor的日志记录设备.它可以和不同的日志类库一起工作,比如Log4Net ...
随机推荐
- HOW TO CHECK FOR ACTIVE TRACE FLAGS ON MICROSOFT SQL SERVER
http://crashmag.net/how-to-check-for-active-trace-flags-on-microsoft-sql-server You check for active ...
- MySQL第三方客户端工具
如前所述,MySQL是一个基于客户机--服务器的DBMS,因此,为了使用MySQl,你需要有一个客户机软件给MySQL提供要执行的命令.即你需要一个编写和测试MySQL脚本的工具. 1.MySQL命令 ...
- Python开发网络爬虫抓取某同城房价信息
前言: 苦逼的我从某某城市换到另一个稍微大点的某某城市,面临的第一个问题就是买房,奋斗10多年,又回到起点,废话就不多说了,看看如何设计程序把某同城上的房价数据抓取过来. 方案:方案思路很简单,先把网 ...
- IIS 日志
查看工具: Log Parser + Log Parser Studio http://www.microsoft.com/en-us/download/details.aspx?displaylan ...
- 从C转到JAVA学习路之struct与class对比(转)
转自:http://blog.csdn.net/andywxf01/article/details/53506549 JAVA里最牛B的最基本的就是类,而C语言中的struct也可以定义自己的数据结构 ...
- Dubbo超时重试机制带来的数据重复问题
Dubbo的超时重试机制为服务容错.服务稳定提供了比较好的框架支持,但是在一些比较特殊的网络环境下(网络传输慢,并发多)可能 由于服务响应慢,Dubbo自身的超时重试机制(服务端的处理时间超过了设定的 ...
- Extjs grid 遍历store
var projectMemberGrid = Ext.getCmp("projectMemberGrid"); var selFuns = []; projectMemberGr ...
- Node.js nvshens图片批量下载爬虫 1.00
//====================================================== // www.nvshens.com图片批量下载Node.js爬虫1.00 // 此程 ...
- Java8 对多个异步任务进行流水线操作(笔记)
现在我们要对商店商品进行折扣服务.每个折扣代码对应不同的折扣率,使用一个枚举变量Discount.Code来实现这一想法,具体代码如下所示. 以枚举类型定义的折扣代码 /** * 折扣服务api * ...
- [BestCoder Round #3] hdu 4908 BestCoder Sequence (计数)
BestCoder Sequence Problem Description Mr Potato is a coder. Mr Potato is the BestCoder. One night, ...