Dignite.NotificationCenter.Domain.Shared
10.7.1
dotnet add package Dignite.NotificationCenter.Domain.Shared --version 10.7.1
NuGet\Install-Package Dignite.NotificationCenter.Domain.Shared -Version 10.7.1
<PackageReference Include="Dignite.NotificationCenter.Domain.Shared" Version="10.7.1" />
<PackageVersion Include="Dignite.NotificationCenter.Domain.Shared" Version="10.7.1" />
<PackageReference Include="Dignite.NotificationCenter.Domain.Shared" />
paket add Dignite.NotificationCenter.Domain.Shared --version 10.7.1
#r "nuget: Dignite.NotificationCenter.Domain.Shared, 10.7.1"
#:package Dignite.NotificationCenter.Domain.Shared@10.7.1
#addin nuget:?package=Dignite.NotificationCenter.Domain.Shared&version=10.7.1
#tool nuget:?package=Dignite.NotificationCenter.Domain.Shared&version=10.7.1
Dignite.Abp.Notifications
Part of dignite-projects/abp-modules — see the repository README for the other modules, and CONTRIBUTING.md for the build, versioning, and release process shared across them. Formerly developed at
dignite-projects/abp-notifications; no package ID changed in the move.
An extensible, event-driven notification framework for the ABP Framework, plus an optional Notification Center (persistent inbox, subscriptions, read/unread state, REST API) with MVC and Angular UI libraries.
- Event-driven, pluggable notifiers. The core publishes one
NotificationDeliveryRequestedEtoper recipient and channel; SignalR, email and device push (Expo) ship as separate packages, and a new channel needs no change to the core. - Two operation modes, one framework. Run the in-process pipeline alone, with no database, or install the Notification Center for a persistent inbox, subscriptions, read/unread state and a REST API.
- Split deployment. A service that only publishes hands its notifications to a notification service through its outbox, and shares its definitions through the definition store.
- Dual persistence. EF Core and MongoDB implement the same inbox and the same definition store.
- Contract-driven & headless. Every payload carries a stable type discriminator, so any consumer — .NET, JS/TS, or the shipped UI libraries — can deserialize and render it.
- Multi-tenant & permission-aware — ABP
IMultiTenantthroughout, with recipient permission and feature checks.
.NET 10 · ABP 10.7 · LGPL-3.0-only
Documentation
Read the documentation — getting started, defining and publishing notifications, routing, the SignalR, email and push channels, writing your own channel, the Notification Center (subscriptions, REST API, delivery guarantees, retention and GDPR erasure), the MVC and Angular UIs, and split deployment.
Packages
Core framework (core/):
| Package | Purpose |
|---|---|
Dignite.Abp.Notifications.Abstractions |
Every contract and its null default: definitions, routing, INotificationPublisher, payload types, the distributed events, the notifier contract. Business modules depend on only this. |
Dignite.Abp.Notifications |
The default, in-process implementation: publisher, distributor, distribution job, event handlers. |
Dignite.Abp.Notifications.Client |
Remote publishing to a notification service. |
Dignite.Abp.Notifications.Domain.Shared / .Domain / .EntityFrameworkCore / .MongoDB |
The definition store shared by the services of a split deployment. |
Dignite.Abp.Notifications.SignalR |
Real-time notifier (hub at /signalr-hubs/notifications). |
Dignite.Abp.Notifications.Emailing / .Emailing.Identity |
Email notifier, and account email addresses from ABP Identity. |
Dignite.Abp.Notifications.Push / .Push.Expo |
Device push notifier, and the Expo Push Service provider. |
Dignite.Abp.Notifications.Identity |
Recipient permission checks through ABP authorization. |
Optional Notification Center (notification-center/):
| Package | Purpose |
|---|---|
Dignite.NotificationCenter.Domain.Shared / .Domain |
Notification, UserNotification, NotificationSubscription, PushDevice. |
Dignite.NotificationCenter.Application.Contracts / .Application |
Inbox, subscription and push device app services. |
Dignite.NotificationCenter.HttpApi / .HttpApi.Client |
REST API at /api/notification-center, and C# client proxies. |
Dignite.NotificationCenter.EntityFrameworkCore / .MongoDB |
Database providers. |
Dignite.NotificationCenter.Web |
MVC UI: notification bell, inbox page, subscription settings. |
Dignite.NotificationCenter.Push / .Push.Identity |
Push device registry, and push that follows the ABP login session. |
@dignite/ng.notification-center (npm) |
Angular UI: bell, inbox page, subscriptions, API proxies. |
The NuGet and npm packages always use the same version.
Quick start
A monolith with the Notification Center on EF Core and the SignalR channel:
dotnet add package Dignite.Abp.Notifications.SignalR
dotnet add package Dignite.NotificationCenter.Application
dotnet add package Dignite.NotificationCenter.HttpApi
dotnet add package Dignite.NotificationCenter.EntityFrameworkCore
[DependsOn(
typeof(AbpNotificationsSignalRModule),
typeof(AbpNotificationCenterApplicationModule), // brings AbpNotificationsModule
typeof(AbpNotificationCenterHttpApiModule),
typeof(AbpNotificationCenterEntityFrameworkCoreModule))]
public class MyHostModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<NotificationRoutingOptions>(options =>
options.ForNotification("MyProject.OrderShipped", SignalRNotifier.ChannelName));
}
}
Add builder.ConfigureNotificationCenter() to your migration DbContext, define the notification in a
NotificationDefinitionProvider, and publish it:
await _notificationPublisher.PublishAsync(
"MyProject.OrderShipped",
new MessageNotificationData($"Your order {order.Number} has shipped."),
userIds: [order.CustomerId]);
The documentation's Getting Started walks through each step.
Development
dotnet build Dignite.Abp.Notifications.slnx
dotnet test Dignite.Abp.Notifications.slnx # EF Core tests on in-memory SQLite, MongoDB tests on an embedded mongod
dotnet run --project host/Dignite.NotificationCenter.Web.Host # runnable MVC demo host
host/ and angular/ are local-dev demos only and are never packed. The demo host's appsettings.json contains no
certificate or encryption passphrases: in Development it uses ABP's development signing certificate; outside
Development it requires AuthServer:CertificatePassPhrase and StringEncryption:DefaultPassPhrase (user-secrets,
environment variables or a secret store) and fails fast at startup without them.
License
Licensed under LGPL-3.0-only.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Dignite.Abp.Notifications.Abstractions (>= 10.7.1)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.12)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.13)
- System.Text.Json (>= 10.0.12)
- Volo.Abp.Authorization.Abstractions (>= 10.7.0)
- Volo.Abp.Core (>= 10.7.0)
- Volo.Abp.EventBus.Abstractions (>= 10.7.0)
- Volo.Abp.Features (>= 10.7.0)
- Volo.Abp.Json.SystemTextJson (>= 10.7.0)
- Volo.Abp.Localization (>= 10.7.0)
- Volo.Abp.MultiTenancy.Abstractions (>= 10.7.0)
- Volo.Abp.Timing (>= 10.7.0)
- Volo.Abp.Validation (>= 10.7.0)
- Volo.Abp.VirtualFileSystem (>= 10.7.0)
-
.NETStandard 2.1
- Dignite.Abp.Notifications.Abstractions (>= 10.7.1)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.12)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.13)
- System.Text.Json (>= 10.0.12)
- Volo.Abp.Authorization.Abstractions (>= 10.7.0)
- Volo.Abp.Core (>= 10.7.0)
- Volo.Abp.EventBus.Abstractions (>= 10.7.0)
- Volo.Abp.Features (>= 10.7.0)
- Volo.Abp.Json.SystemTextJson (>= 10.7.0)
- Volo.Abp.Localization (>= 10.7.0)
- Volo.Abp.MultiTenancy.Abstractions (>= 10.7.0)
- Volo.Abp.Timing (>= 10.7.0)
- Volo.Abp.Validation (>= 10.7.0)
- Volo.Abp.VirtualFileSystem (>= 10.7.0)
-
net10.0
- Dignite.Abp.Notifications.Abstractions (>= 10.7.1)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.12)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.13)
- Volo.Abp.Authorization.Abstractions (>= 10.7.0)
- Volo.Abp.Core (>= 10.7.0)
- Volo.Abp.EventBus.Abstractions (>= 10.7.0)
- Volo.Abp.Features (>= 10.7.0)
- Volo.Abp.Json.SystemTextJson (>= 10.7.0)
- Volo.Abp.Localization (>= 10.7.0)
- Volo.Abp.MultiTenancy.Abstractions (>= 10.7.0)
- Volo.Abp.Timing (>= 10.7.0)
- Volo.Abp.Validation (>= 10.7.0)
- Volo.Abp.VirtualFileSystem (>= 10.7.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Dignite.NotificationCenter.Domain.Shared:
| Package | Downloads |
|---|---|
|
Dignite.NotificationCenter.Application.Contracts
DTOs and application service interfaces for the Dignite Notification Center's inbox and subscription features. |
|
|
Dignite.NotificationCenter.Domain
Aggregates for the Dignite Notification Center: Notification, UserNotification, and NotificationSubscription. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.7.1 | 71 | 10/29/2026 |
| 10.7.0 | 240 | 10/15/2026 |
| 10.0.0-rc.29 | 111 | 10/12/2026 |
| 10.0.0-rc.28 | 114 | 10/12/2026 |
| 10.0.0-rc.27 | 111 | 10/10/2026 |
| 10.0.0-rc.26 | 105 | 10/10/2026 |
| 10.0.0-rc.25 | 107 | 10/10/2026 |
| 10.0.0-rc.24 | 106 | 10/9/2026 |
| 10.0.0-rc.23 | 101 | 10/9/2026 |
| 10.0.0-rc.22 | 113 | 10/9/2026 |
| 10.0.0-rc.21 | 142 | 10/7/2026 |
| 10.0.0-rc.20 | 113 | 10/7/2026 |
| 10.0.0-rc.19 | 106 | 10/4/2026 |
| 10.0.0-rc.18 | 106 | 10/4/2026 |
| 10.0.0-rc.17 | 116 | 9/23/2026 |
| 10.0.0-rc.16 | 140 | 9/6/2026 |
| 10.0.0-rc.15 | 111 | 9/5/2026 |
| 10.0.0-rc.14 | 122 | 9/4/2026 |
| 10.0.0-rc.13 | 120 | 9/3/2026 |
| 10.0.0-rc.11 | 116 | 8/30/2026 |