• 给 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 项目,可以看到私信模块已经安装成功了。

    image

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

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

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

    image

    效果展示

    image

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

    后记

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

    下一节

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

  • 相关阅读:
    VS2015安装QT插件
    Kubernetes 与 Helm:使用同一个 Chart 部署多个应用
    Ubuntu 安装 k8s 三驾马车 kubelet kubeadm kubectl
    k8s 安装 prometheus 过程记录
    预渲染 Blazor Wassembly 客户端应用程序
    使用Jexus 容器化您的 Blazor 应用程序
    ABP vNext 应用安装私信模块
    五分钟完成 ABP vNext 通讯录 App 开发
    分布式应用框架 Dapr
    使用.NET Core 构建现代化的桌面应用
  • 【推广】 阿里云小站-上云优惠聚集地(新老客户同享)更有每天限时秒杀!
    【推广】 云服务器低至0.95折 1核2G ECS云服务器8.1元/月
    【推广】 阿里云老用户升级四重礼遇享6.5折限时折扣!
  • 原文地址:https://www.cnblogs.com/shanyou/p/12536988.html
走看看 - 开发者的网上家园