給 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 的自動生成。/<abpaspnetcoremvcoptions>
  3. 在 AddressBookMigrationsDbContext.cs 中找到 OnModelCreating 方法,在裡面加一行 builder.ConfigurePrivateMessaging();,使私信模塊的 EF Core 遷移能夠進行。
第三步:創建 EF Core 遷移並更新數據庫

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

第四步:安裝完畢

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

給 ABP vNext 應用安裝私信模塊

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

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

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

給 ABP vNext 應用安裝私信模塊

效果展示

給 ABP vNext 應用安裝私信模塊

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

來源:https://www.cnblogs.com/shanyou/p/12536988.html


分享到:


相關文章: