ZeusAutomacao / DFe.NET

Biblioteca para Geração de NFe(2.0, 3.10 e 4.0) e NFCe(3.10 e 4.0) e consumo dos serviços necessários à sua manutenção, conforme descritos em http://www.nfe.fazenda.gov.br/portal/principal.aspx
GNU Lesser General Public License v2.1
755 stars 479 forks source link

Proposta de mudança na biblioteca. #490

Closed marcosgerene closed 7 years ago

marcosgerene commented 7 years ago

Boa tarde a todos,

Hoje a solução é separada várias partes cada projeto, para quem usa os 3 projetos sem usar as impressões temos 15 dlls: dlls

A separação faria sentido se os projetos "funcionassem" de forma separada, ou seja, alguém que use somente a NFe.Classes ou NFe.Wsdl, mas isso não existe hoje, basicamente tem-se que usar 5 dlls de NFe e mais as 2 da DFe para ter um único componente.

A minha proposta se resume em "juntar" os projetos maiores tendo assim basicamente 4 dlls, as duas do DFe virariam uma e uma para cada projeto, ficando algo assim:

Zeus.DFe Zeus.NFeNFCe Zeus.CTe Zeus.MDFe

Com isso teriamos 4 pacotes nuget, um Zeus.DFe sendo base e os outros 3 dependendo dele.

Isto claro sem falar das impressões, hoje os projetos como o NFe.Danfe.Base (e iguais) são completamente desnecessários, no caso da NFe para impressão poderiamos ter algo assim:

Zeus.MDFe.Damdfe.Fast Zeus.NFeNFCe.Danfe.Fast Zeus.NFeNFCe.Danfe.Nativo

Assim como citado os de cima um pacote nuget para cada um com dependência dos "pais".

Acredito que isto tornaria até a estrutura no visual studio mais limpa do que hoje:

visual_studio

Att, Marcos Gerene

robertorp commented 7 years ago

Para min, ta de boa, criaria as pastas, não se vai usar nada da NFe em outro projeto. Unicas DLL que são usadas uma na outra são as DFe que pode também unificar criando somente uma DFe.

Mas existe também uma alternativa que é a mesma que o AcbrFramework.dll usa, cria uma dll que embute todas as outras e quando a aplicação abrir manda elas para a pasta AppData e fica sem ninguém saber que esta lá.

Negocio e ver oque o @adeniltonbs acha afinal chefe rsrs.

marcosgerene commented 7 years ago

@robertorp Eu acredito que a mudança pensando em tempo seja simples, em 2 dias eu mesmo faço isso se for o caso, a questão é chegar num consenso... hoje meu sistema usa 19 dlls só do Zeus... haha

Dessas 19 podemos baixar para algo em torno de 7 para manter o projeto bem separado...

No meu caso eu teria: Zeus.DFe Zeus.MDFe Zeus.MDFe.Damdfe.Fast Zeus.CTe Zeus.CTe.Dacte.Fast (estou fazendo este cara neste momento) Zeus.NFeNFCe Zeus.NFeNFCe.Danfe.Fast

Agora basta aguardar a "benção" do @adeniltonbs haha

Abraços

leandrossantos commented 7 years ago

@marcosgerene e @robertorp aqui na empresa onde trabalho usamos a biblioteca Zeus como referencia, fizemos o que o @marcosgerene esta propondo, unificamos tudo referente a NFe/NFCe em um única DLL, e agora estamos concluindo CTe e MDFe. Fizemos uso pois nossas aplicações são em VB6 ainda, então tivemos que montar uma DLL para conseguir referenciar no VB6.