BKS.Back 8.1.0-beta-26s41-1-e6789912

BKS.Back

Este documento complementa o README.md do repositório e cobre apenas a biblioteca lib/BKS.Back.csproj.

Papel da biblioteca

BKS.Back.csproj é a biblioteca de domínio do produto BackOffice.

Hoje ela concentra principalmente:

  • regras de negócio compartilhadas entre os fluxos de BackOffice
  • acesso e orquestração de persistência
  • recursos SQL embarcados usados pelos dispatchers
  • integrações com bibliotecas compartilhadas do ecossistema BKS
  • superfície reutilizável pelo app/WebAppBackOffice.csproj e pelo pacote NuGet

Em termos práticos, o projeto app/WebAppBackOffice.csproj é o host ASP.NET Web Forms, mas a lógica reutilizável e grande parte do contrato técnico do produto ficam nesta biblioteca.

Target e estratégia de versionamento

O projeto usa:

  • netstandard2.0
  • LangVersion 12.0

O AssemblyVersion está fixado em 8.0.0.0, acompanhando a próxima linha major do pacote após 7.11.0-beta-26S40-1-32eaf340.

Isso existe para evitar problemas de binding em consumidores .NET Framework, enquanto:

  • PackageVersion varia pela pipeline
  • FileVersion acompanha a versão gerada
  • InformationalVersion leva versão + commit

Na prática, quem evolui semanticamente no dia a dia é o pacote NuGet, não o AssemblyVersion.

Os metadados do pacote ficam no próprio BKS.Back.csproj. O empacotamento não depende de arquivo .nuspec separado e inclui este README no .nupkg.

Dependências

Dependências por pacote

O projeto consome, entre outras:

  • BKS.Clientes
  • BKS.Dados
  • BKS.Padrao
  • BKS.Util

Diferente de cenários híbridos como BKS.Cartao, aqui o projeto hoje usa PackageReference direto para BKS.Padrao, sem troca dinâmica entre ProjectReference e PackageReference.

Estrutura interna relevante

Sem repetir toda a árvore, os diretórios mais importantes são:

  • BLL/: regras de negócio e orquestração
  • DAL/: dispatchers, acesso a dados e recursos SQL
  • DAL/Dispatchers/**/SQL/**: scripts SQL embarcados como recurso
  • DML/: contratos e estruturas de domínio usadas pelo BackOffice

O volume de EmbeddedResource é alto e faz parte do contrato atual da biblioteca.

Recursos SQL embarcados

A biblioteca carrega um conjunto grande de .sql como EmbeddedResource.

Isso significa que a lib não é só código C#: ela também empacota artefatos SQL usados em runtime pela camada de acesso e pelos dispatchers.

Existe inclusive um target de validação no projeto:

  • CheckSqlFilesAreEmbedded

Esse target falha o build se existir .sql dentro da árvore do projeto que não esteja marcado como EmbeddedResource.

Implicações:

  • adicionar um .sql novo exige registrar no .csproj
  • mover scripts entre pastas pode quebrar build se a lista não for atualizada
  • este é um ponto importante de manutenção e de custo de merge

Relação com o pipeline

Os jobs de biblioteca são acionados a partir do .gitlab-ci.yml do WebAppBackOffice, mas usam templates compartilhados.

Jobs diretamente relacionados à BKS.Back:

  • validate_lib_version_impact
  • package_nuget
  • publish_nuget

validate_lib_version_impact

Valida se uma alteração realmente impacta a biblioteca e, em MR, exige marcador de versão quando necessário.

O foco desse job é evitar geração de pacote sem mudança relevante em:

  • lib/**
  • dependências que afetem a lib
  • Directory.Packages.props, quando a seção alterada impacta BKS.Back

package_nuget

Empacota a biblioteca BKS.Back como NuGet.

Esse job:

  • usa o template de versionamento compartilhado
  • roda dotnet pack dentro de lib
  • injeta PackageVersion, FileVersion e InformationalVersion via pipeline

publish_nuget

Publica o .nupkg gerado no feed corporativo.

Esse job depende de package_nuget e não deveria recompilar a biblioteca.

Feed do pacote:

Observação:

Hoje o feed costuma ser a forma mais rápida de identificar a última beta gerada da biblioteca. A futura geração automática de tag Git para betas deve reduzir essa dificuldade de rastreio.

Testes da biblioteca

No estado atual do repositório, não existe um job dedicado de testes_unitarios_lib equivalente ao do WebAppCartao.

Isso significa que:

  • a esteira já empacota e publica a lib
  • mas ainda não expõe um job específico de testes automatizados da BKS.Back
  • também não existe badge de cobertura específico desta biblioteca neste diretório

Esse é um ponto de evolução natural caso a lib passe a ter suíte própria de testes.

Regras atuais de geração de versão da lib

O pacote da BKS.Back segue o fluxo comum de versionamento da esteira NuGet:

  • alpha em feature/*, fix/*, hotfix/*
  • beta em dev
  • stable em tag vX.Y.Z

Além disso, a geração depende de marcador explícito de impacto:

  • #major
  • #minor
  • #patch

Esse modelo existe para impedir que qualquer merge gere pacote novo sem intenção explícita de versionamento.

Pontos de atenção para manutenção

1. Tamanho e acoplamento do projeto

BKS.Back hoje mistura:

  • domínio
  • persistência
  • SQL embarcado
  • integrações

Isso funciona, mas aumenta:

  • tempo de build
  • custo de restore/load do workspace
  • impacto de mudanças pequenas

2. Custo de edição no .csproj

O arquivo do projeto é grande porque precisa declarar muitos EmbeddedResource.

Qualquer automação futura de CI/CD ou refactor deve tratar esse .csproj com cuidado, porque ele não é um projeto SDK simples com convenções implícitas para SQL.

3. Dependência direta de pacotes compartilhados

Como BKS.Back depende diretamente de pacotes como BKS.Dados, BKS.Util e BKS.Padrao, mudanças em Directory.Packages.props podem ter efeito imediato na biblioteca mesmo sem alteração direta em lib/**.

Por isso a validação de impacto da pipeline considera tanto a árvore da biblioteca quanto dependências centralizadas.

Quando editar este diretório

Atualize este README.md quando houver mudança em:

  • estratégia de versionamento do pacote
  • estrutura principal de BLL/DAL/DML
  • política de EmbeddedResource
  • forma como dependências compartilhadas são resolvidas
  • jobs específicos de package_nuget / publish_nuget / validate_lib_version_impact

Showing the top 20 packages that depend on BKS.Back.

Packages Downloads
BKS.Contabil
Package Description
103
BKS.Consig
Package Description
82
BKS.Cartao
Package Description
51
BKS.Cartao
Package Description
45
BKS.Cartao
Package Description
44
BKS.Cartao
Package Description
42
BKS.Consig
Package Description
41
BKS.Cartao
Package Description
39
BKS.Consig
Package Description
38
BKS.Cartao
Package Description
37
BKS.Contabil
Package Description
36
BKS.Consig
Package Description
35
BKS.Consig
Package Description
33
BKS.Cartao
Package Description
32
BKS.Consig
Package Description
32

.NET Standard 2.0

Version Downloads Last updated
9.0.0-beta-26S44-3-89534190 12 10/30/2026
8.3.0-beta-26S44-2-6fb5354b 6 10/29/2026
8.2.2 7 10/26/2026
8.2.2-beta-26S44-1-f55b7309 4 10/26/2026
8.2.2-alpha-26S44-2-624221ea 4 10/26/2026
8.2.2-alpha-26S44-1-843e0c92 3 10/26/2026
8.2.1-beta-26S43-1-3e8d3c21 6 10/21/2026
8.2.0-beta-26S43-1-1b2ffb96 8 10/20/2026
8.1.1-beta-26S43-1-db8d8db0 8 10/19/2026
8.1.1-alpha-26S43-1-60bd7460 4 10/19/2026
8.1.0-beta-26S41-1-e6789912 12 10/09/2026
8.0.0-beta-26S41-1-43bba5a3 8 10/08/2026
8.0.0-alpha-26S41-1-6fc4c1b2 5 10/08/2026
7.12.0-alpha-26S40-1-9e13482c 12 10/02/2026
7.11.0-beta-26S40-1-32eaf340 6 10/02/2026
7.10.0-beta-26S39-1-aa6c534a 14 09/24/2026
7.9.0-beta-26S39-1-58c3cc69 7 09/23/2026
7.8.0-beta-26S39-1-6fc356e8 6 09/23/2026
7.7.0-beta-26S39-1-b0318927 6 09/21/2026
7.7.0-alpha-26S38-1-9769a2c6 7 09/16/2026
7.7.0-alpha-26S38-1-7864e1d6 8 09/20/2026
7.6.0-beta-26S38-1-d2e590a7 5 09/15/2026
7.5.0-beta-26S37-1-9b10bde3 19 09/11/2026
7.4.1-alpha-26S36-1-169a659a 11 09/01/2026
7.4.0-beta-26S36-1-fe68fedc 12 09/02/2026
7.4.0-alpha-26S36-1-b05a9322 5 09/02/2026
7.4.0-alpha-26S36-1-a5bb8cd2 8 09/01/2026
7.3.0-beta-26S34-1-ba5c0a3e 17 08/21/2026
7.2.0-beta-26S31-1-48244ffc 20 07/29/2026
7.1.2-beta-26S31-1-0158e8fe 12 07/28/2026
7.1.1-beta-26S31-1-0748bc8c 9 07/28/2026
7.1.0-beta-26S30-1-84f75ac4 8 07/24/2026
7.0.1-beta-26S28-1-81ef9ce0 24 07/07/2026
7.0.0-beta-26S28-1-c6b8f7ea 11 07/07/2026
6.6.0-beta-26S27-1-9550b78c 17 07/03/2026
6.6.0-alpha-26S36-1-b9a5e69d 4 09/01/2026
6.6.0-alpha-26S27-1-56bf66c0 11 06/30/2026
6.5.3-beta-26S26-3-9750d770 23 06/24/2026
6.5.2-beta-26S26-1-e9bf406e 14 06/22/2026
6.5.1-beta-26S26-1-78b635b1 9 06/22/2026
6.5.1-alpha-26S26-1-312abc3b 10 06/22/2026
6.5.1-alpha-26S25-1-e82e9d39 12 06/19/2026
6.5.1-alpha-26S25-1-22d50ae3 12 06/19/2026
6.5.0-beta-26S25-1-4706ea75 11 06/19/2026
6.4.0-beta-26S25-1-a2ca2591 12 06/17/2026
6.3.1-beta-26S24-1-e6bccb4b 186 06/12/2026
6.3.0-beta-26S24-1-edf87202 9 06/11/2026
6.3.0-alpha-26S24-1-2921eda7 11 06/11/2026
6.2.1-beta-26S24-1-682d8493 53 06/11/2026
6.2.0-beta-26S24-1-c0b95454 12 06/08/2026
6.2.0-alpha-26S38-1-5bedeb79 6 09/16/2026
6.2.0-alpha-26S23-1-7d977e75 15 06/05/2026
6.1.0 20 06/03/2026
6.1.0-beta-260515-145418-256e 23 05/15/2026
6.1.0-beta--79af 15 05/15/2026
6.0.0-beta-260514-110029-8982 156 05/14/2026
6.0.0-alpha-260514-094550-e772 12 05/14/2026
6.0.0-alpha-260512-090912-866e 12 05/12/2026
5.24.3-alpha-26S19-1-036be45b 10 06/19/2026
5.23.1-beta--f777 14 05/15/2026
5.23.0-beta--487a 13 05/15/2026
5.22.0-beta-260512-144011-78f8 12 05/12/2026
5.22.0-beta-260424-092708-e515 24 04/24/2026
5.21.4 85 04/28/2026
5.21.4-alpha-260415-164334-a407 14 04/15/2026
5.21.3 36 04/15/2026
5.21.3-beta-260415-090534-8eb3 21 04/15/2026
5.21.2 14 04/14/2026
5.21.2-beta-260414-115850-4a2f 14 04/14/2026
5.21.1 32 04/10/2026
5.21.1-alpha-260324-105705-8caa 16 03/24/2026
5.21.0 27 04/07/2026
5.21.0-alpha-260320-144702-8ad1 19 03/20/2026
5.20.4 19 04/01/2026
5.20.3 31 03/25/2026
5.20.2 23 03/19/2026
5.20.1 30 03/19/2026
5.20.0 23 03/16/2026
5.19.3 25 03/13/2026
5.19.2 21 03/12/2026
5.19.1 15 03/12/2026
5.19.0 36 03/12/2026
5.18.1 27 02/27/2026
5.18.0 22 02/26/2026
5.18.0-alpha-260225-153501-33bc 15 02/25/2026
5.18.0-alpha-260223-155817-9e4b 16 02/23/2026
5.17.0 31 02/20/2026
5.16.0 28 02/05/2026
5.13.0 26 02/04/2026
5.12.0 46 01/16/2026
5.11.0 36 01/13/2026
5.10.2 44 01/09/2026
5.10.1 21 01/09/2026
5.10.0 25 01/05/2026
5.9.0 18 12/30/2025
5.8.0 23 12/18/2025
5.7.2 37 12/11/2025
5.7.1 22 12/09/2025
5.7.0 38 12/09/2025
5.6.5 23 12/06/2025
5.6.4-alpha-251205-162533-9599 20 12/05/2025
5.6.3 21 12/05/2025
5.6.3-alpha-251205-012527-40e6 19 12/05/2025
5.6.2 19 12/04/2025
5.6.1 34 11/21/2025
5.5.5-alpha-251114-135206-22ba 18 11/14/2025
5.5.4 26 11/06/2025
5.5.3 36 10/28/2025
5.5.2 47 10/23/2025
5.5.0 27 10/23/2025
5.4.0 21 10/18/2025
5.4.0-alpha-251016-091559-b625 19 10/16/2025
5.3.0 44 10/09/2025
5.2.0 25 10/08/2025
5.1.0 28 10/03/2025
5.0.0 20 09/30/2025
4.3.2 46 09/23/2025
4.3.1 32 09/18/2025
4.3.0 44 09/17/2025
4.2.1 38 09/12/2025
4.2.0 17 09/12/2025
4.1.0 37 09/12/2025
4.0.1-alpha-250709-183008-ecbb 17 09/12/2025
4.0.1-alpha-250709-171428-156f 17 09/12/2025
4.0.0-alpha-250214-135907-075c 20 09/12/2025
3.15.0 20 09/12/2025
3.14.0 17 09/12/2025
3.13.1 19 09/12/2025
3.13.0 17 09/12/2025
3.12.0 22 09/12/2025
3.11.0 35 09/12/2025
3.11.0-alpha-250625-122221-35a8 20 09/12/2025
3.10.0 21 09/12/2025
3.9.4 18 09/12/2025
3.9.3 19 09/12/2025
3.9.2 14 09/12/2025
3.9.1 19 09/12/2025
3.9.0 17 09/12/2025
3.8.2 16 09/12/2025
3.8.1 28 09/12/2025
3.8.0 18 09/12/2025
3.7.1 35 09/12/2025
3.7.0 19 09/12/2025
3.6.3 23 09/12/2025
3.6.2 23 09/12/2025
3.6.1 19 09/12/2025
3.6.0 18 09/12/2025
3.5.0 16 09/12/2025
3.4.0 18 09/12/2025
3.3.0 17 09/12/2025
3.2.1 26 09/12/2025
3.2.0 16 09/12/2025
3.1.2 18 09/12/2025
3.1.2-alpha-250217-135842-edbc 17 09/12/2025
3.1.1 16 09/12/2025
3.1.0 17 09/12/2025
3.0.6 16 09/12/2025
3.0.5 18 09/12/2025
3.0.4 32 09/12/2025
3.0.3 16 09/12/2025
3.0.2 21 09/12/2025
3.0.1 22 09/12/2025