ABP框架记录
abp默认管理员:admin,密码:123qwe,这是写死的,xxx.Core\Authorization\Users\User.cs 行数:10
1.先在Core项目中建立模型
Models》Model.cs/ModelManager.cs
2.在Application中建立接口和具体类:
IModelAppService.cs
ModelAppService.cs
建立Dto和QueryInput类
ModelDto/ModelQueryInput
3.在EntityFramework的DbContext.cs类中,注册数据表,然后执行对应的migration命令更新数据库
查看所有接口
http://localhost:6234/api/AbpServiceProxies/GetAll?type=angular
swagger:http://localhost:6234/apis/index
多数据库:
abp框架多数据库:
A56.WMS.EntityFramework中:
增加:对应的 DbContext.cs
增加:对应的 /EntityFramework/Repositories/DbRepositoryBase.cs
增加:对应的 Migrations文件夹,在文件夹里增加 Configuration.cs
4.邮件发送:
xxx.EntityFramework项目中:Migrations/SeedData/DefaultSettingsCreator.cs中配置邮件服务:
public void Create()
{
#region Emailing
string mail_smtp = ConfigurationManager.AppSettings["mail_smtp"];
string mail_main = ConfigurationManager.AppSettings["mail_main"];
string mail_pwd = ConfigurationManager.AppSettings["mail_pwd"];
string mail_port = ConfigurationManager.AppSettings["mail_port"];
string mail_ssl = ConfigurationManager.AppSettings["mail_ssl"];
string mail_name = ConfigurationManager.AppSettings["mail_name"]; AddSettingIfNotExists(EmailSettingNames.DefaultFromAddress, mail_main);
AddSettingIfNotExists(EmailSettingNames.DefaultFromDisplayName, mail_name);
AddSettingIfNotExists(EmailSettingNames.Smtp.Port, mail_port);
AddSettingIfNotExists(EmailSettingNames.Smtp.Host, mail_smtp);
AddSettingIfNotExists(EmailSettingNames.Smtp.UserName, mail_main);
AddSettingIfNotExists(EmailSettingNames.Smtp.Password, mail_pwd);
AddSettingIfNotExists(EmailSettingNames.Smtp.Domain, "");
AddSettingIfNotExists(EmailSettingNames.Smtp.EnableSsl, mail_ssl);
AddSettingIfNotExists(EmailSettingNames.Smtp.UseDefaultCredentials, "false");
#endregion //Languages
AddSettingIfNotExists(LocalizationSettingNames.DefaultLanguage, "en");
}
然后 程序包管理器控制台 执行:update-database
nuget安装:AbpMailKit,然后在xxx.Core中找到 xxxCoreModule.cs
[DependsOn(typeof(AbpMailKitModule))] public class xxxCoreModule : AbpModule{}
一切ok,然后就是调用了,注意调用发送邮件的时候如果是多租户的话,记得设置请求的Header信息》 Authorization bearer ticket
public class TaskManager : IDomainService
{
private readonly IEmailSender _emailSender; public TaskManager(
IEmailSender emailSender,
ISmtpEmailSenderConfiguration smtpEmialSenderConfigtion
)
{
_emailSender = emailSender;
}
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="emailAddress">目标邮箱</param>
/// <param name="subject">邮件标题</param>
/// <param name="body">邮件内容</param>
public async void SendMail(string emailAddress, string subject, string body)
{
await _emailSender.SendAsync(
to: emailAddress,
subject: subject,
body: body,
isBodyHtml: true
);
}
}
https://www.cnblogs.com/LmuQuan/p/9122143.html
http://www.cnblogs.com/farb/p/ModuleZeroContent.html
http://www.cnblogs.com/farb/p/4849791.html
http://www.cnblogs.com/farb/p/modulezeroInstall.html
http://www.mamicode.com/info-detail-2320070.html
http://www.bubuko.com/infodetail-2594809.html
http://www.cnblogs.com/1zhk/p/5456389.html
https://www.cnblogs.com/farb/p/moduleZeroUserManagement.html
http://www.cnblogs.com/mienreal/p/4687789.html
AbpSession管理:http://www.cnblogs.com/mienreal/p/4561235.html
自定义过滤器:http://www.cnblogs.com/farb/p/ABPDataFilters.html
邮件文件:http://zhaokuohaha.github.io/2016/09/06/abp%E9%82%AE%E4%BB%B6/
https://www.cnblogs.com/Wddpct/p/5919507.html
ABP框架使用Mysql:
https://github.com/ABPFrameWorkGroup/AbpDocument2Chinese/blob/master/Markdown/Abp/9.4ABP%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E5%B1%82-%E9%9B%86%E6%88%90EntityFrameworkMySql.md
https://www.cnblogs.com/ixysy/p/6219719.html
添加左侧菜单:https://blog.csdn.net/ysj1163620987/article/details/54909635
ABP入门系列(16)——通过webapi与系统进行交互:https://www.jianshu.com/p/d14733432dc2
ABP中文文档:https://github.com/ABPFrameWorkGroup/AbpDocument2Chinese/tree/master/Markdown
ABP模板下载:https://aspnetboilerplate.com/Templates
ABP框架记录的更多相关文章
- ABP框架踩坑记录
ABP框架踩坑记录 ASP.NET Boilerplate是一个专用于现代Web应用程序的通用应用程序框架. 它使用了你已经熟悉的工具,并根据它们实现最佳实践. 文章目录 使用MySQL 配置User ...
- 过滤掉Abp框架不需要记录的日志
该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇. 问题 ABP.WindowsService/Demo.MyJob/4.0.0该项目不仅 ...
- ABP框架实践基础篇之开发UI层
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 说明 其实最开始写的,就是这个ABP框架实践基础篇.在写这篇博客之前,又回头复习了一下ABP框架的理论,如果你还没学习,请查看AB ...
- ABP框架详解(三)Domain
此处的Domain主要指Abp类库根目录下Domain文件夹.顾名思义该目录下是用来存放与领域实体,领域逻辑执行,存储,领域服务相关的内容. 1.Entities (1)为整个Abp框架后期开发的所有 ...
- ABP框架实战 1.基础信息维护
在之前的一个开发项目中,因为公司战略发展,引用了这个ABP开源框架作为新项目的基础版本,由于客户的要求需要迁移旧系统数据,以及其他的一些原因,数据库采用了Oracle数据库管理.所以引用了Dapper ...
- 手工搭建ABP框架(1) - Web项目
为了防止不提供原网址的转载,特在这里加上原文链接: http://www.cnblogs.com/skabyy/p/7295533.html ABP是 ASP.NET Boilerplate Proj ...
- ABP框架个人开发实战(1)_环境搭建
前言 之前关注ABP框架有一阵子了,一直没有潜下心来实际研究一下.最近想自己建站,以后有自己的功能开发项目,可以在自己的站点上开发,并一步步的完善,所以找个比较好用的框架迫在眉睫,选来选去,决定用AB ...
- 后台工作者HangFire与ABP框架Abp.Hangfire及扩展
HangFire与Quartz.NET相比主要是HangFire的内置提供集成化的控制台,方便后台查看及监控,对于大家来说,比较方便. HangFire是什么 Hangfire是一个开源框架(.NET ...
- ABP框架展示异常信息
接触ABP框架有一段时间了,也遇到了一些问题,看了官网文档,但是或许是看的不够细致的原因,实际开发中还是遇到了一些问题,耗费了时间去处理,回头一看,原来文档中早已提及. 开发环境:ABP+MPA模式+ ...
随机推荐
- key diff 在input上的踩坑
1.在react-native 遇到一个坑,希望的效果如下,同一个按钮,不同的状态下显示不同的input. 2.然后,在做的时候遇到了这样一个问题.输入我的姓名,点击下一步 3.问题出来了,输入框已经 ...
- JDK源码中使用的设计模式
结构型模式: 适配器模式: 用来把一个接口转化成另一个接口. java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.Inpu ...
- python2 with open(path,"",) as f:
python2 with open 没有 encoding 这个参数 会报错, 可以 import io with io.open(path,"") as f: 这样就ok 或者是 ...
- docker:学习笔记
docker run -itd --net=none 22565cef72c2 /usr/sbin/sshd -Dpipework br0 5a3e7bab4c5c5260a93e153aa7fec3 ...
- Storm实现实时大数据分析(storm介绍,与Hadoop比较,)
一.storm与Hadoop对比 Hadoop: 全量数据处理使用的大多是鼎鼎大名的hadoop或者hive,作为一个批处理系统,hadoop以其吞吐量大.自动容错等优点,在海量数据处理上得到了广泛的 ...
- hadoop 二次排序的一些思考
先说一下mr的二次排序需求: 假如文件有两列分别为name.score,需求是先按照name排序,name相同按照score排序 数据如下: jx 20 gj 30 jx 10 gj 15 输出结果要 ...
- mac eclipse中运行tomcat出现错误:-Djava.endorsed.dirs=D:\Tomcat 9.0\endorsed is not supported
-Djava.endorsed.dirs=D:\Tomcat 9.0\endorsed is not supported. Endorsed standards and standalone APIs ...
- ie8兼容性总结
DOCTYPE 首先需要确保你的HTML页面开始部分要有DOCTYPE声明.DOCTYPE告诉浏览器使用什么样的HTML或XHTML规范来解析HTML文档,具体会影响: 对标记.attributes ...
- Python第3天
字符串的魔法: expandtabs 可用来制表 当前输入是否为数字:isdecimal 最低级 isdigit 支持特殊数字 isnumeric 支持中文 标识符 isidentifier 是否存在 ...
- assert (boxes[:, 2] >= boxes[:, 0]).all()报错
根据报错信息,打印以下内容: 代码如下: for i in xrange(num_images): #print ('in append_flipped==================',self ...