给 ABP vNext 应用安装私信模块

在上一节五分钟完成 ABP vNext 通讯录 App 开发 中,我们用完成了通讯录 App 的基础开发。

这本章节,我们会给通讯录 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 项目,可以看到私信模块已经安装成功了。

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

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

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

效果展示

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

后记

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

下一节

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

原文地址:https://www.cnblogs.com/shanyou/p/12536988.html

时间: 2024-11-09 10:29:12

给 ABP vNext 应用安装私信模块的相关文章

ABP vNext模块系统初试 - 创建留言板模块

上次翻译的ABP vNext介绍发布后,引起了很多ABP好爱者的关注. 那么就趁热打铁,体验一下新ABP. 新的ABP中我最感兴趣的是它的模板系统,所以这次就利用模块系统做了留言板的例子,分享给大家. 留言板模块 我们的留言板模块功能很简单,就是提供用户留言的功能(废话),为了简单起见,功能都非常简陋: 通过菜单进入留言板 显示留言一览,显示的项目有:标题,作者和时间 任意用户可创建留言,修改或删除自己的留言 管理员可修改或删除任何留言 留言只有标题和正文,均为纯文本(不支持富文本). 使用AB

用abp vNext快速开发Quartz.NET定时任务管理界面

今天这篇文章我将通过实例代码带着大家一步一步通过abp vNext这个asp.net core的快速开发框架来进行Quartz.net定时任务调度的管理界面的开发.大伙最好跟着一起敲一下代码,当然源码我会上传到github上,有兴趣的小伙伴可以在文章底部查看源码链接. 作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10444060.html 写在前面 有几天没更新博客了,一方面因为比较忙,另一方面是因为最近在准备组织我们霸都合肥的.NET技术社区首次

ABP vNext

一.简要介绍# ABP vNext 是 ABP 框架作者所发起的新项目,截止目前 (2019 年 8 月 20 日) 已经拥有 1400 多个 Star,最新版本号为 v 0.19.0,可以尝试用于生产环境.新的 ABP vNext 框架完全是基于 ASP .NET Core 进行开发,其完全模块化的组件库能够让开发人员拥有更多的选择空间. ABP vNext 框架核心库比 ABP 框架更加精简,因为将原有许多的组件从其核心库抽离成独立的组件.这样开发人员可以更加灵活的选择自己需要的功能进行集成

安装第三方模块

python安装第三方模块 方法1:使用软件管理工具(pip,pip2,pip3) python2和python3都自带了pip,而pip就仿佛有一个仓库,将我们需要安装的第三方模块都收纳其中,使用简 单的安装命令即可完成安装. 注意事项:用python3自带的pip或者pip3安装的第三方模块就只能为python3的编译器使用,这对于python2 的pip和pip2是同理的. 所以在我们需要对某一版本的python安装第三方模块的时候,就将原先的路径删除,增加对应的路径至环境变量. 个人推荐

python3.6 安装 xlrd 模块---Mac

要用Excel将数据和代码分离,需要import xlrd, 使用前需要先安装xlrd模块. 说明:通过在google中搜索"xlrd Mac",下载xlrd.py模块(下载地址:http://mac.softpedia.com/progDownload/xlrd-Download-48230.html),  但是只有0.7.1版本的,可能因为版本比较低,安装之后可以正常import xlrd,但是运行报错有问题,然后我就用了之前在windows上安装的xlrd1.0.0版本,安装成功

关于npm安装全局模块,require时报Error: Cannot find module &#39;XXX&#39;的解决办法

系统环境:centos 下午使用npm安装"cheerio",想搞爬虫玩玩. npm安装有两种模式: 本地 # npm install cheerio 全局 # npm install cheerio -g 如果想要全局安装,你首先要先设置个全局路径 我在"node的安装位置/lib/node_modules/"目录下新建了文件夹node_global专门用来存放新安装的全局包 # npm config set cache "node的安装位置/lib/n

查看npm全局安装的模块

1.查看所有高级的npm moudles npm list --depth=0 2.查看所有全局安装的模块 npm list --depth=0 -global

linux系统上安装paramiko模块

Linux系统上安装paramiko模块要求python要是2.7以上的,所以在安装模块之前应该安装python2.7(这里的安装过程略去) 在安装setuptools的时候突然报错了,RuntimeError:Compression requires the (missing) zlib module原因是因为没有安装zilb和zlib-devel包. yum install zlib yum installzlib-devel 安装完成后,重新编译 python2.7[不需要删除,只需要重新

学习搭建一个小网站_3_安装NodeJS模块_建立express

nodejs安装这些模块: express, express-generator, mongodb, mysql 简单步骤:建立目录 d:\js\BlogWebSite cmd->cd d:->mkdir js->cd js->mkdir BlogWebSite->cd BlogWebSite cmd下首先安装全局模块:( -g 参数是全局安装 ) 1. npm install express -g 2. npm install express-generator -g 在j