Maxsys.Core 7.3.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Maxsys.Core --version 7.3.0                
NuGet\Install-Package Maxsys.Core -Version 7.3.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="Maxsys.Core" Version="7.3.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Maxsys.Core --version 7.3.0                
#r "nuget: Maxsys.Core, 7.3.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.
// Install Maxsys.Core as a Cake Addin
#addin nuget:?package=Maxsys.Core&version=7.3.0

// Install Maxsys.Core as a Cake Tool
#tool nuget:?package=Maxsys.Core&version=7.3.0                

<div align="center"> <img src="maxsys-core.png" alt="drawing" width="256" /> <h1>Maxsys Core</h1> </div>

Nuget License

Maxsys.Core é uma biblioteca desenvolvida em C# contendo itens básicos para criação de aplicações Maxsys. O framework de destino utilizado é o .NET 7.0.

Esse pacote contém interfaces e classes bases como IRepositoryBase, EntityBase, além de classes helpers e extensions como GuidGen para gerar Guids sequenciais e ValidationResultExtensions que possui métodos de extensão para a classe FluentValidation.ValidationResult.

Essa biblioteca auxilia no desenvolvimento de minhas aplicações Windows Forms, WPF e ASP.NET.

⛓ Dependências

🛠 Release notes

7.3.0

  • Estrutura do projeto alterada (pastas físicas).
  • Namespaces de todas classes de extensão (exceto FluentValidation) movidos para Maxsys.Core.Extensions.
  • Refatoração de IUnitOfWork, IService, IRepository, ServiceBase, InfoDTO (Id para Key).
  • Refatoração em IQueryableExtensions:
    • Adicionado método .LeftOuterJoin() para Inner List.
    • Assinatura de .ApplySort() alterada.
  • Adicionadas classes Helpers (HashHelper e ReflectionHelper).
  • Refatoração de Entity e EntityBase (guid Id).
  • ValueObject e IDialogService removidos.
  • Atualização de pacotes NUGET (AutoMapper e FluentValidation).

7.2.0

  • Adicionado método de extensão ApplyCriteria em IQueryableExtensions. É um atalho para queryable.ApplySort(...).ApplyCriteria(...).
  • Ordem dos genéricos em IRepository alterada. Agora TKey vem antes de todos.
  • IRepository de TKey=object removido.

7.1.2

  • Refatoração e alteração de nome de IRepositoryBase para IRepository.
  • Alteração de namespaces:
    • IRepositoryBase: Maxsys.ModelCore.Interfaces.Repositories para Maxsys.DataCore.Interfaces (IRepository).
    • IDialogService: Maxsys.ModelCore.Interfaces.Services para Maxsys.ModelCore.Services.
  • Refatoração de ValueObject.
  • Adicionados métodos em JsonExtensions.
  • Adicionadas classes para Obtenção de dados (DTOS), Filtragem, Ordenação e Listagem de dados utilizadas em implementações de Repositório e Service.
    • DTOS:
      • IDTO, InfoDTO, ListDTO.
    • Filtering:
      • IFilter, ActiveTypes, FilterBase e RangeFilter.
    • Sorting:
      • ISortColumnSelector, SortDirection e SortFilter.
    • Listing:
      • Criteria e Pagination.
  • Adicionado método de extensão para IServiceCollection que registra automaticamente todas as implementações de ISortColumnSelector.
  • Adicionado IQueryableExtensions com métodos para aplicar paginação, ordenamento via ISortColumnSelector e LeftOuterJoin.
  • Pacote Nuget adicionado:
    • AutoMapper.Extensions.Microsoft.DependencyInjection: 12.0.0
  • Adicionadas interfaces e implementações para service:
    • IService e ServiceBase.

7.0.0

  • TargetFramework alterado para .net7.0.
  • Pacotes Nuget atualizados:
    • FluentValidation: 11.5.1
    • Microsoft.Extensions.DependencyInjection.Abstractions: 7.0.0
    • System.Drawing.Common: 7.0.0
  • Objetos MVVM (MVVMObject, NotifiableObject e ViewModelBase) excluídos. Existem muitas bibliotecas por aí para isso.
  • Refatoração da implementação de IEquatable<T> em EntityBase<TKey>.
  • Refatoração de IUnitOfWork.
  • Refatoração de ValidationResultExtensions.
    • Método de extensão em AddErrorMessage() removido. Utilizar sobrecarga AddError().
    • Adicionada opção de passar Severity como parâmetro.
  • Adicionado JsonExtensions.

6.2.1

  • ApplicationServiceBase removido.
  • IUnitOfWork reescrito.
  • Adicionado CountAsync() e ContextId em IRepositoryBase.
  • ValidationResultExtensions reescrito.
  • IServiceCollectionExtensions adicionado.

6.1.0

  • IServiceBase e ServiceBase removidos.
  • Classe IReadonlyRepositoryBase removida.
  • IRepositoryBase remodelado tendo métodos synchronous em excluídos.
  • EnumExtensions adicionada.
  • Ajustes em GuidGen.
  • Outras correções menores.

6.0.2

  • Correções menores.

6.0.1

  • ViewModelBase agora reescrita para implementar MVVMObject que por sua vez, implementa NotifiableObject. NotifiableObject é a implementação de INotifyPropertyChanged.
  • TargetFramework alterado para .net6.0.
  • Versionamento alterado para coincidir com o a versão do .net para o TargetFramework.
  • Métodos obsoletos removidos.

1.2.0

  • Interface IDialogService totalmente reescrita.
  • Refatoração da interface IServiceBase e da classe ServiceBase:
    • Os métodos Add()/AddAsync() e Update()/UpdateAsync() agora permitem a passagem de um IValidator como parâmetro. Nos métodos sem IValidator, nenhuma validação será realizada.

1.1.4

  • Adicionada referência para System.Threading.Tasks.Extensions.
  • Alterações em IOHelper:
    • Documentação xml adicionada. Adicionados métodos assíncronos para operações com arquivos (MoveFileAsync(), MoveOrOverwriteFileAsync(), CopyFileAsync() e DeleteFileAsync()).
  • Alterações em IEnumerableExtensions:
    • Adicionados métodos de extensão ToObservableCollection() e ToReadOnlyObservableCollection().
  • Adicionado método DateTimeToUID_64Bits() em GuidGen.

1.1.3

  • Alterações em ValidationResultExtensions:
    • ErrorsToString() foi descontinuado.
    • Adicionado método ErrorMessagesAsEnumerable() para substituir ErrorsAsEnumerable() que foi descontinuado.
    • Adicionado sobrecarga em método ValidationResult.AddFailure() que agora aceita Exeception como parâmetro.
  • Alterações em ImageHelper:
    • Documentação xml adicionada ao código.
    • SavePicture() foi descontinuado.
    • Corrigido bug em ImageFromBytes().
    • Adicionados métodos SaveByteArrayImageIntoJpgFile(), SaveImageIntoJpgFile(), bem como suas versões async para .net5.0 ou maior.

1.1.2

  • Ajuste em IEnumerableExtensions para compatibilidade com .net5.0.

1.1.1

  • IReadonlyRepositoryBase adicionado ao projeto.
  • Ajustes em .csproj:
    • Mudança de TargetFramework para .net5.0.
    • Inserção de tags xml.
  • ViewModelBase alterada para permitir comparação de valores nulos.

1.0.0

  • Primeiro lançamento.

✒️ Autores

Aqui uma menção à Jeremy H. Todd, autor de uma das features usadas nesse projeto (geração de guid sequencial).

🧐 Aprendizagem

Através desse projeto, tenho a oportunidade de por em prática parte do conhecimento adquirido. Obviamente, ainda é limitado, mas a intenção é sempre buscar a melhora.

🗝 Licença

Este código possui licença MIT e está liberado para uso da maneira que se desejar.

📧 Feedback

Quaisquer sugestões ou outro contato, escreva-me em [email protected].

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

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Maxsys.Core:

Package Downloads
Maxsys.Core.Data

Biblioteca Maxsys Core para acesso a dados utilizando Entity Framework, Repository Pattern e UnitOfWork Pattern.

Maxsys.Core.Web

Biblioteca Maxsys Core para utilização de recursos Web.

Maxsys.Core.Excel

Biblioteca Maxsys Core para acesso a arquivo Excel.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
12.0.0 108 9/2/2024
11.0.0 93 7/28/2024
10.1.0 125 3/29/2024
10.0.0 220 2/12/2024
9.0.0 319 8/20/2023
7.3.0 316 5/1/2023
7.2.0 371 3/12/2023
7.1.2 433 2/27/2023
6.2.1 528 8/21/2022
6.1.0 488 8/20/2022
6.0.2 544 1/14/2022
1.2.0 410 9/23/2021
1.1.4 445 9/20/2021
1.1.3 452 9/13/2021
1.1.2 445 8/29/2021
1.1.1 406 8/28/2021
1.0.0 403 8/20/2021

7.3.0
- Estrutura do projeto alterada (pastas físicas).
- Namespaces de todas classes de extensão (exceto FluentValidation) movidos para Maxsys.Core.Extensions.
- Refatoração de IUnitOfWork, IService, IRepository, ServiceBase, InfoDTO (Id para Key).
- Refatoração em IQueryableExtensions:
   - Adicionado método LeftOuterJoin para Inner List.
- Assinatura de ApplySort alterada.
- Adicionadas classes Helpers (HashHelper e ReflectionHelper).
- Refatoração de Entity e EntityBase (guid Id).
- ValueObject e IDialogService removidos.
- Atualização de pacotes NUGET (AutoMapper e FluentValidation).