Eaf.Middleware.Core 9.1.0

Prefix Reserved
dotnet add package Eaf.Middleware.Core --version 9.1.0
                    
NuGet\Install-Package Eaf.Middleware.Core -Version 9.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Eaf.Middleware.Core" Version="9.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Eaf.Middleware.Core" Version="9.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Eaf.Middleware.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Eaf.Middleware.Core --version 9.1.0
                    
#r "nuget: Eaf.Middleware.Core, 9.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Eaf.Middleware.Core@9.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Eaf.Middleware.Core&version=9.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Eaf.Middleware.Core&version=9.1.0
                    
Install as a Cake Tool

Eaf.Middleware.Core

Descrição Técnica

O Eaf.Middleware.Core é a camada de domínio central do Enterprise Application Foundation (EAF). Este módulo fornece as entidades, serviços, configurações, autorização, auditoria e funcionalidades base do framework, servindo como fundação para todos os outros módulos do EAF.

Este módulo implementa os padrões de Domain-Driven Design (DDD) e segue a arquitetura em camadas do ASP.NET Boilerplate (ABP).

Relação com o EAF e ASP.NET Boilerplate

Integração com ABP

  • Abp.ZeroCore: Fornece infraestrutura para multi-tenancy, usuários, roles e permissões
  • Abp.AutoMapper: Configuração automática de mapeamento de objetos
  • Abp.MailKit: Integração para envio de emails
  • Abp.HangFire.AspNetCore: Processamento de jobs em background

Dependências do EAF

  • Eaf.Middleware.AzureActiveDirectory: Integração com Azure AD para autenticação externa
  • Eaf.Middleware.Ldap: Autenticação via LDAP/Active Directory

Principais Componentes

Autorização
  • Gerenciamento de permissões e roles
  • Autorização baseada em claims
  • Integração com Azure AD e LDAP
Auditoria
  • Rastreamento automático de operações
  • Logs de alterações de entidades
  • Histórico de ações dos usuários
Configurações
  • Sistema de configurações multi-tenant
  • Definições de features
  • Gerenciamento de edições
Chat e Amizades
  • Sistema de chat em tempo real
  • Gerenciamento de amizades entre usuários
  • Integração com SignalR
Hangfire
  • Configuração avançada de jobs com seleção automática de storage
  • Suporte a SQL Server, Redis (Hangfire.Redis.StackExchange) e InMemory
  • Enum HangfireStorageType para identificação do tipo de armazenamento
  • Logging aprimorado com Hangfire.Console
  • Heartbeat para monitoramento

Guia de Instalação

Pré-requisitos

  • .NET 10.0 SDK ou superior
  • ASP.NET Boilerplate 10.4.0

Instalação via NuGet

dotnet add package Eaf.Middleware.Core --version 10.4.0

Instalação via Referência de Projeto

Adicione a referência ao seu arquivo .csproj:

<ProjectReference Include="..\Eaf.Middleware.Core\Eaf.Middleware.Core.csproj" />

Exemplo Básico de Uso

1. Registrando o Módulo

No seu módulo principal, herde de MiddlewareCoreModule:

[DependsOn(
    typeof(MiddlewareCoreModule),
    typeof(AbpAutoMapperModule),
    typeof(AbpHangfireAspNetCoreModule)
)]
public class MyApplicationModule : AbpModule
{
    public override void Initialize()
    {
        IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
    }
}

2. Usando Serviços de Domínio

public class MyService : ApplicationService
{
    private readonly ISettingManager _settingManager;
    private readonly IPermissionManager _permissionManager;

    public MyService(
        ISettingManager settingManager,
        IPermissionManager permissionManager)
    {
        _settingManager = settingManager;
        _permissionManager = permissionManager;
    }

    public async Task<string> GetSettingValueAsync(string settingName)
    {
        return await _settingManager.GetSettingValueAsync(settingName);
    }

    public async Task<bool> CheckPermissionAsync(string permissionName)
    {
        return await _permissionManager.IsGrantedAsync(permissionName);
    }
}

3. Usando Configurações de Chat

public class ChatService : ApplicationService, IChatService
{
    private readonly IChatMessageManager _chatMessageManager;

    public ChatService(IChatMessageManager chatMessageManager)
    {
        _chatMessageManager = chatMessageManager;
    }

    public async Task SendMessageAsync(SendChatMessageInput input)
    {
        await _chatMessageManager.SendMessageAsync(
            Session.UserId,
            input.TenantId,
            input.TargetUserId,
            input.Message
        );
    }
}

4. Configurando Hangfire com Console

O módulo já inclui configuração aprimorada para Hangfire:

public override void PreInitialize()
{
    Configuration.BackgroundJobs.UseHangfire(configuration =>
    {
        configuration.UseSqlServerStorage("Default");
        configuration.UseConsole(); // Logging aprimorado
        configuration.UseHeartbeat(); // Monitoramento
    });
}

Estrutura do Módulo

Eaf.Middleware.Core/
├── Auditing/              # Configurações de auditoria
├── Authorization/         # Sistema de autorização e permissões
├── Cache/                 # Configurações de cache
├── Chat/                  # Sistema de chat
├── Configuration/         # Sistema de configurações
├── Editions/              # Gerenciamento de edições
├── Features/              # Sistema de features
├── Friendships/           # Gerenciamento de amizades
├── Hangfire/              # Configuração de Hangfire
├── Identity/              # Configurações de identidade
├── Localization/          # Arquivos de localização
├── MultiTenancy/         # Configurações multi-tenant
├── Net/                   # Utilitários de rede
└── Extensions/            # Extensões do framework

Configurações Opcionais

Configuração de Serilog

public override void PreInitialize()
{
    Configuration.BackgroundJobs.UseHangfire(configuration =>
    {
        configuration.UseSerilogLogProvider(); // Integração com Serilog
    });
}

Configuração de Email

public override void PreInitialize()
{
    Configuration.ReplaceService<IEmailSender, CustomEmailSender>(DependencyLifeStyle.Transient);
}

Testes

Os testes para este módulo estão localizados em:

test/Eaf.MiddlewareCore.Tests/

Para executar os testes:

dotnet test test/Eaf.MiddlewareCore.Tests/Eaf.MiddlewareCore.Tests.csproj

Licença

Este projeto faz parte do Enterprise Application Foundation (EAF) e está licenciado sob os mesmos termos do projeto principal.

Suporte

Para issues e perguntas, consulte o repositório principal do EAF: https://github.com/afonsoft/EAF

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Eaf.Middleware.Core:

Package Downloads
Eaf.Middleware.Application

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
9.1.0 97 6/12/2026
Loading failed