前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >给 ABP vNext 应用安装私信模块

给 ABP vNext 应用安装私信模块

作者头像
张善友
发布2020-06-19 11:01:44
7850
发布2020-06-19 11:01:44
举报
文章被收录于专栏:张善友的专栏

这本章节,我们会给通讯录 App 安装私信模块,使不同用户能够通过相互发送消息,并接收新私信的通知。在章节的最后,笔者将演示模块的“改装”,实现禁止用户发私信给自己的定制化需求。

什么是“模块”?

使用 Abp 框架,你可以提前制作一些功能模块,例如微信登录、私信、博客、论坛等模块,将它们打包备用。在开发具体的 App 应用时,你可以轻松将模块安装到你的工程中,节省了大量的重复性工作。除了自己造轮子,你还可以在 NuGet 上安装由开源社区维护的模块,当然,社区也在等待你的贡献。

安装私信模块

笔者用到的私信应用模块(EasyAbp.PrivateMessaging)由 EasyAbp 组织开发并持续维护,你甚至可以在商业项目中免费使用它。现在,笔者将带你一步步给通讯录 App 安装此模块。

第一步:使用 NuGet 安装模块包
  1. 将 NuGet 包 EasyAbp.PrivateMessaging.Application,安装到 AddressBook.Application 项目。
  2. 将 NuGet 包 EasyAbp.PrivateMessaging.Application.Contracts,安装到 AddressBook.Application.Contracts 项目。
  3. 将 NuGet 包 EasyAbp.PrivateMessaging.Domain,安装到 AddressBook.Domain项目。
  4. 将 NuGet 包 EasyAbp.PrivateMessaging.Domain.Shared,安装到 AddressBook.Domain.Shared 项目。
  5. 将 NuGet 包 EasyAbp.PrivateMessaging.EntityFrameworkCore,安装到 AddressBook.EntityFrameworkCore 项目。
  6. 将 NuGet 包 EasyAbp.PrivateMessaging.HttpApi,安装到 AddressBook.HttpApi 项目。
  7. 将 NuGet 包 EasyAbp.PrivateMessaging.HttpApi.Client,安装到 AddressBook.HttpApi.Client 项目。
  8. 将 NuGet 包 EasyAbp.PrivateMessaging.MongoDB,安装到 AddressBook.MongoDB 项目。
  9. 将 NuGet 包 EasyAbp.PrivateMessaging.Web,安装到 AddressBook.Web 项目。(如果你不需要 UI,可以跳过这一步)
第二步:添加配置
  1. 分别在以上项目的 Module 类中添加私信模块的依赖,例如:在 AddressBookApplicationModule.cs 中添加特性 [DependsOn(PrivateMessagingApplicationModule)],以此类推。
  2. 在 AddressBookApplicationModule.cs 中找到 Configure<AbpAspNetCoreMvcOptions>(options => { ... });,在里面加一行配置 options.ConventionalControllers.Create(typeof(PrivateMessagingApplicationModule).Assembly);,这一步是为了私信模块 WebAPI 的自动生成。
  3. 在 AddressBookMigrationsDbContext.cs 中找到 OnModelCreating 方法,在里面加一行 builder.ConfigurePrivateMessaging();,使私信模块的 EF Core 迁移能够进行。
第三步:创建 EF Core 迁移并更新数据库

不熟悉这块操作的同学可以参考 Abp 官方手册的介绍。

第四步:安装完毕

启动 AddressBook.Web 项目,可以看到私信模块已经安装成功了。

image
image

进一步了解 EasyAbp 私信模块:https://github.com/EasyAbp/PrivateMessaging

改进模块:禁止用户发私信给自己

Abp vNext 框架支持应用对模块代码的重写,在 AddressBook.Application 项目中新建 MyPrivateMessageAppService.cs

image
image

效果展示

image
image

基于 Abp 的高可扩展性,甚至 JS 和 CSS 等静态文件也能够被重写,请阅读官方文档以了解更多用法:Customizing the Existing Modules

后记

等到不久的将来 Abp 官方模块商城 market.abp.io 上线,文中手动安装模块的方式将成为历史,你只需要按一个键,模块就自动安装好了。在此之前,AbpHelper 可能会先开发一个简易的模块安装器,如果你有需要,请关注我们的进展:https://github.com/EasyAbp/EasyAbpGuide

下一节

在下一节中,笔者将会介绍,如何通过一个改动,让我们的通讯录 App 升级为多租户 SaaS 系统。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是“模块”?
  • 安装私信模块
    • 第一步:使用 NuGet 安装模块包
      • 第二步:添加配置
        • 第三步:创建 EF Core 迁移并更新数据库
          • 第四步:安装完毕
          • 改进模块:禁止用户发私信给自己
          • 后记
          • 下一节
          相关产品与服务
          云数据库 MongoDB
          腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档