Code Monkey home page Code Monkey logo

Comments (30)

igorocampos avatar igorocampos commented on August 15, 2024

Talvez este issue esteja também relacionado com #3

from boletonetcore.

olavorn avatar olavorn commented on August 15, 2024

@igorocampos sim, talvez fechemos os dois assim.

O BoletoNetCore como dependência do BoletoNetCore.Pdf, no Nuget quando se vc faz o Install-Package do BoletoNetCore.Pdf ele já traz o BoletoNetCore.dll, creio eu. Então pra quem vai usar o BoletoNetCore.Pdf, só precisa referenciar ele mesmo.

from boletonetcore.

igorocampos avatar igorocampos commented on August 15, 2024

Faz sentido

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@olavorn @igorocampos O pacote do PDF tem aproximadamente 5mb e o BoletonetCore tem 552mb, sincetamente não faz sentido separar, pois o ganho em tamanho é muito pequeno. O que acham ?

from boletonetcore.

igorocampos avatar igorocampos commented on August 15, 2024

Como eu disse antes 5MB pra mim já é um divisor de águas. Além disso você vai perder as outras vantagens descritas (que não necessáriamente tem a ver com o peso extra).

E por fim, como @olavorn disse, quem for usar o PDF nem vai precisar instalar os 2 pacotes, apenas o do PDF, pois o outro virá automaticamente por dependência.

Agora quanto aos tamanhos citados, não sei dizer exatamente a maneira que você está medindo (Talvez você tenha confundido KB com MB?), mas deve ser avaliado o tamanho total da DLL gerada e todas as suas dependências. Acredito que foi isso que foi feito aqui.

A dll BoletoNetCore.dll tem 481 KB no meu repo forkado (não é a ultima versão, então por isso a diferença pra menor) e a BoletoNetCore.Pdf.dll tem 6 KB, porém é necessário somar a isso o peso da wkhtml que são 44077 KB para linux e 29280 KB para windows.

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@igorocampos Sim, KB nao MB, eu errei.
image
Deverão ser criados dois build e duas publicações.

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@igorocampos Então retificando, o pacote tem 5k e o principal tem 277k, Dividir,mesmo que incluindo no mesmo pacote pode confundir que usa, pois ao invest de instalar o BoletoNetCore eu devo instalar o BoletoNetCore.PDF, que instala o BoletoNetCore. Se eu instalar somente o BoletoNetCore nao consigo gerar PDF, certo ?

from boletonetcore.

igorocampos avatar igorocampos commented on August 15, 2024

Se eu instalar somente o BoletoNetCore nao consigo gerar PDF, certo ?

Correto.

Se o problema é a confusão com nomes, então isso pode ser mitigado da seguinte maneira:

  • o pacote que é a base para todo o funcionamento pode ser chamado algo como BaseBoletoNetCore
  • o pacote que tem a base como dependencia pode ter o nome BoletoNetCore

Quem não quiser a impressão de PDF (e talvez outros módulos opcionais) utiliza apenas a base.

Mas na minha humilde opinião, isso tudo é desnecessário desde que documentado (como está) corretamente. Estamos falando de programadores e não usuários finais, caso alguém tenha dúvida de qual usar, olhará na documentação.

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@igorocampos Analisando o codigo, existe apenas um metodo neste pacote, chamado MontaBytesPDF() e este projeto ainda referencia o BoletoNetCore, isto nao faz sentido. Se vocês querem realmente isolar o pacote PDF e torná-lo reutilizável em outros projetos, sugiro remover a dependencia do BoletoNetCore e passar para o metodo o arquivo HTML. Desta maneira faz mais sentido e permite que qualquer projeto que precise gerar um PDF a partir de um HTML possa utilizá-lo.
Faz sentido ?

from boletonetcore.

olavorn avatar olavorn commented on August 15, 2024

Prefiro BoletoNetCore.Pdf mesmo. My 2 cents..

Até pq fica tudo com namespaces alinhados.

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@olavorn Namespace separado ok, mas pacote separado ? Nao acho necessário, a não ser que faça o isolamento do código.

from boletonetcore.

igorocampos avatar igorocampos commented on August 15, 2024

Faz sentido ?

Não necessariamente. Você afirmou que a gente quer reutilizar o BoletoNetCore.Pdf em outros projetos, mas isso nunca foi dito, o que queremos é que a instalação de BoletoNetCore não dependa de BoletoNetCore.Pdf e suas dependências (que é o que acontecerá se tudo for um pacote só).

Agora a nova questão levantada de remover a dependência de BoletoNetCore de dentro de BoletoNetCore.Pdf também pode ser feita. Mas isso implica em não ter mais a vantagem falada pelo @Olavo. Além disso eu não conheço a fundo o código (nem o antigo nem o novo) para opinar sobre essa separação.

from boletonetcore.

igorocampos avatar igorocampos commented on August 15, 2024

Prefiro BoletoNetCore.Pdf mesmo. My 2 cents..

Até pq fica tudo com namespaces alinhados.

Eu também não acho que valha a pena mudar

from boletonetcore.

olavorn avatar olavorn commented on August 15, 2024

@carloscds, faz sentido sim. Se vc observar, quem vai usar BoletoNetCore.Pdf nao vai precisar nem se preocupar em instalar mais nada, pois a biblioteca já vem como dependencia. Faz uma grande diferenca pra quem usa só a BoletoNetCore, e é transparente pra quem usa Pdf. Pois no BoletoNetCore nao se baixam as dependencias wkhtmltopdf.

Quanto a referencia, entendo que ela é o desejado, uma vez que a ideia dessa construcao é levar a biblioteca para uma arquitetura mais próxima de IoC.

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@olavorn Sendo bem pratico, colocar uma outra biblioteca esta significando ter apenas um metodo externo, mais os arquivos necessários ao PDF. Pergunta: quem gerra um boleto hoje, o faz em HTML ou PDF ?

from boletonetcore.

igorocampos avatar igorocampos commented on August 15, 2024

Eu faço em HTML

from boletonetcore.

tonborges avatar tonborges commented on August 15, 2024

@olavorn Sendo bem pratico, colocar uma outra biblioteca esta significando ter apenas um metodo externo, mais os arquivos necessários ao PDF. Pergunta: quem gerra um boleto hoje, o faz em HTML ou PDF ?

Nos meus testes estou gerando PDF mais com outra lib a HtmlToPdf, pois preciso enviar o boleto por email, e o método que manda o boleto no corpo do email, na hora da impressão ta ficando meio zoado.

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@igorocampos Ok, mas é muito mais suscetível a fraude, pois dá para alterar o arquivo HTML, aqui na empresa já tivemos problemas com isto.

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@igorocampos MAs ok se quiserem manter um pacote separado, tem que criar uma estratégia para atualizar os dois pacotes no build. Eu até criei o pacote e comecei mudar o build.

from boletonetcore.

olavorn avatar olavorn commented on August 15, 2024

@olavorn Sendo bem pratico, colocar uma outra biblioteca esta significando ter apenas um metodo externo, mais os arquivos necessários ao PDF. Pergunta: quem gerra um boleto hoje, o faz em HTML ou PDF ?

Eu faço em HTML. A questão de fraudes por manipulação de linha digitável é algo bastante mitigável em função de atualmente só atuarmos com cobranças registradas. Nosso entendimento é esse. Além do mais, edição de PDF também é algo extremamente popular atualmente, e certamente não é impedimento hoje para fraudadores. Na contramão disso, muitos bancos tem popularizado o uso e compartilhamento direto da linha digitável para pagamento de boletos.

O Método externo se justifica pelo tamanho da aplicação com e sem o PDF, e pelo fato de o PDF ser simplesmente um meio, e não necessariamente o fim da Biblioteca, conhecimento esse agregado nas classes do BoletoNetCore. Certamente se tivessemos falando de alguns Kbs a mais, talvez eu pendesse pra um pacote único.

Criar dois pacotes nuget na mesma build entendo que é o desejado mesmo.

from boletonetcore.

olavorn avatar olavorn commented on August 15, 2024

Como fechamento da discussão, resumo os pontos aqui resolvidos de forma bem simplificada:

  • Quer instalar e usar somente o BoletoNetCore e usar outras bibliotecas pra imprimir PDF ou mesmo usar em HTML?
    Install-Package BoletoNetCore

  • Quer usar o BoletoNetCore com Pdf?
    Install-Package BoletoNetCore.Pdf

  • Já tem o BoletoNetCore instalado, e agora quer usar o PDF?
    Install-Package BoletoNetCore.Pdf (mesma coisa, ele vai verificar as dependências instaladas e apenas aplicar as diferenças)

from boletonetcore.

igorocampos avatar igorocampos commented on August 15, 2024

tem que criar uma estratégia para atualizar os dois pacotes no build. Eu até criei o pacote e comecei mudar o build.

Atualmente com a PR que fiz, que já foi dado merge no master, qdo a solution sofre build, ambos pacotes já são gerados na respectiva pasta bin. Fora isso, tem mais alguma coisa que você gostaria que o projeto fizesse?

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@igorocampos Sim, precisamos criar um myget para cada pacote.

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@igorocampos Você atualizou o processo de build em Build.ps1 e no yaml ou esta falando apenas doVisual Studio ?

from boletonetcore.

igorocampos avatar igorocampos commented on August 15, 2024

Não sei como o CI/CD vai se comportar, mas a alteração que fiz está diretamente no csproj, eu acho que se o CI/CD utiliza o MSBuild é para criar os arquivos dos pacotes juntamente com as DLLs

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@igorocampos Ok, eu vou ajustar no CI/CD

from boletonetcore.

olavorn avatar olavorn commented on August 15, 2024
  1. Para o nuget trazer as dependências, é necessário configurar o pacote BoletoNetCore e publicar no nuget também.

  2. Além disso, acho que no nuspec do BoletoNetCore.Pdf tem que trazer a referência da dependência conforme instrução abaixo*:
    https://docs.microsoft.com/en-us/nuget/reference/nuspec#dependencies-element

  • depende de 1) estar publicado, senão vai quebrar os dois pacotes

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@olavorn Vamos entao fazer dois pacotes ?

from boletonetcore.

olavorn avatar olavorn commented on August 15, 2024

Eu entendo que temos que seguir o plano aqui definido:

Só que para isso,
Install-Package BoletoNetCore deve funcionar (no momento não funciona)

e
Install-Package BoletoNetCore.PDF deve instalar BoletoNetCore como dependência (no momento não instala)

from boletonetcore.

carloscds avatar carloscds commented on August 15, 2024

@olavorn Projeto no Nuget esta marcado como beta:
Install-Package BoletoNetCore -Version 1.0.0-beta7

O outro pacote precisa ser criado e colocado no build, talvez tenhamos que criar um build especifico para ele.

from boletonetcore.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.