日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

给 ABP vNext 应用安装私信模块

發布時間:2023/12/4 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 给 ABP vNext 应用安装私信模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在上一節五分鐘完成 ABP vNext 通訊錄 App 開發?中,我們用完成了通訊錄 App 的基礎開發。

這本章節,我們會給通訊錄 App 安裝私信模塊,使不同用戶能夠通過相互發送消息,并接收新私信的通知。在章節的最后,筆者將演示模塊的“改裝”,實現禁止用戶發私信給自己的定制化需求。

什么是“模塊”?

使用 Abp 框架,你可以提前制作一些功能模塊,例如微信登錄、私信、博客、論壇等模塊,將它們打包備用。在開發具體的 App 應用時,你可以輕松將模塊安裝到你的工程中,節省了大量的重復性工作。除了自己造輪子,你還可以在 NuGet 上安裝由開源社區維護的模塊,當然,社區也在等待你的貢獻。

安裝私信模塊

筆者用到的私信應用模塊(EasyAbp.PrivateMessaging)由 EasyAbp 組織開發并持續維護,你甚至可以在商業項目中免費使用它。現在,筆者將帶你一步步給通訊錄 App 安裝此模塊。

第一步:使用 NuGet 安裝模塊包

  • 將 NuGet 包?EasyAbp.PrivateMessaging.Application,安裝到?AddressBook.Application?項目。

  • 將 NuGet 包?EasyAbp.PrivateMessaging.Application.Contracts,安裝到?AddressBook.Application.Contracts?項目。

  • 將 NuGet 包?EasyAbp.PrivateMessaging.Domain,安裝到?AddressBook.Domain項目。

  • 將 NuGet 包?EasyAbp.PrivateMessaging.Domain.Shared,安裝到?AddressBook.Domain.Shared?項目。

  • 將 NuGet 包?EasyAbp.PrivateMessaging.EntityFrameworkCore,安裝到?AddressBook.EntityFrameworkCore?項目。

  • 將 NuGet 包?EasyAbp.PrivateMessaging.HttpApi,安裝到?AddressBook.HttpApi?項目。

  • 將 NuGet 包?EasyAbp.PrivateMessaging.HttpApi.Client,安裝到?AddressBook.HttpApi.Client?項目。

  • 將 NuGet 包?EasyAbp.PrivateMessaging.MongoDB,安裝到?AddressBook.MongoDB?項目。

  • 將 NuGet 包?EasyAbp.PrivateMessaging.Web,安裝到?AddressBook.Web?項目。(如果你不需要 UI,可以跳過這一步)

  • 第二步:添加配置

  • 分別在以上項目的 Module 類中添加私信模塊的依賴,例如:在 AddressBookApplicationModule.cs 中添加特性?[DependsOn(PrivateMessagingApplicationModule)],以此類推。

  • 在 AddressBookApplicationModule.cs 中找到?Configure<AbpAspNetCoreMvcOptions>(options => { ... });,在里面加一行配置?options.ConventionalControllers.Create(typeof(PrivateMessagingApplicationModule).Assembly);,這一步是為了私信模塊 WebAPI 的自動生成。

  • 在 AddressBookMigrationsDbContext.cs 中找到 OnModelCreating 方法,在里面加一行?builder.ConfigurePrivateMessaging();,使私信模塊的 EF Core 遷移能夠進行。

  • 第三步:創建 EF Core 遷移并更新數據庫

    不熟悉這塊操作的同學可以參考 Abp 官方手冊的介紹。

    第四步:安裝完畢

    啟動 AddressBook.Web 項目,可以看到私信模塊已經安裝成功了。

    進一步了解 EasyAbp 私信模塊:https://github.com/EasyAbp/PrivateMessaging

    改進模塊:禁止用戶發私信給自己

    Abp vNext 框架支持應用對模塊代碼的重寫,在 AddressBook.Application 項目中新建 MyPrivateMessageAppService.cs

    [Dependency(ReplaceServices = true)]public class MyPrivateMessageAppService : PrivateMessageAppService{public MyPrivateMessageAppService(IDataFilter dataFilter,IExternalUserLookupServiceProvider externalUserLookupServiceProvider,IPrivateMessageRepository privateMessageRepository,IPrivateMessageNotificationManager notificationManager,IPrivateMessageSenderSideManager privateMessageSenderSideManager,IPrivateMessageReceiverSideManager privateMessageReceiverSideManager) : base(dataFilter,externalUserLookupServiceProvider, privateMessageRepository, notificationManager,privateMessageSenderSideManager, privateMessageReceiverSideManager){}public override Task<PrivateMessageDto> CreateAsync(CreateUpdatePrivateMessageDto input){if (input.ToUserName == CurrentUser.UserName){throw new UserFriendlyException("請勿給自己發消息");}return base.CreateAsync(input);}}

    效果展示

    基于 Abp 的高可擴展性,甚至 JS 和 CSS 等靜態文件也能夠被重寫,請閱讀官方文檔以了解更多用法:Customizing the Existing Modules

    后記

    等到不久的將來 Abp 官方模塊商城 market.abp.io 上線,文中手動安裝模塊的方式將成為歷史,你只需要按一個鍵,模塊就自動安裝好了。在此之前,AbpHelper 可能會先開發一個簡易的模塊安裝器,如果你有需要,請關注我們的進展:https://github.com/EasyAbp/EasyAbpGuide

    下一節

    在下一節中,筆者將會介紹,如何通過一個改動,讓我們的通訊錄 App 升級為多租戶 SaaS 系統。

    總結

    以上是生活随笔為你收集整理的给 ABP vNext 应用安装私信模块的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。