WEBAPI NET CORE NF-E

 Tópico anterior Próximo tópico Novo tópico

WEBAPI NET CORE NF-E

C#

 Compartilhe  Compartilhe  Compartilhe
#485071 - 25/10/2018 14:18:26

MRSILVA
MARINGA
Cadast. em:Julho/2015


Olá pessoal.
Estou verificando a viabilidade de desenvolver uma WEBAPI  para disponibilizar recursos para emissão da nota fiscal eletrônica,  ou seja, disponibilizar todos aqueles recursos que WEBSERVICE da nota fiscal eletrônica disponibiliza. Alguém sabe me dizer se é viável desenvolver em NET CORE, ou seja, já tem todos os recursos para esse tipo de aplicação ou é melhor desenvolver uma WEBAPI utilizando NET FRAMEWORK tradicional.

Fiz algumas pesquisas na internet más não consegui chegar em uma conclusão.

Desde já agradeço.





#485074 - 25/10/2018 16:15:24

LAMPIAO
SAO CAETANO DO SUL
Cadast. em:Setembro/2004


Última edição em 25/10/2018 16:18:19 por LAMPIAO

Rapaz, eu até comecei a migrar o meu, mas parei por falta de tempo, e quando falo migrar, é migrar minha api hoje feita no .Net Framework 4.6.2 para .Net Core.
Hoje eu tenho uma web api, que é a minha aplicação com todos os recursos da NF-e com suporte para certificado A1 e A3, mas esta no .Net Framework 4.6.2, e esta tão redonda que talvez eu nem migre, posso sim separar, criando uma api apenas para essa finalidade, ai uma web api (aplicação ERP) feita no.Net Core se comunicaria com a web api (NF-e) feita .Net tradicional ou qualquer outro tipo de tecnologia suportada as possibilidades são varias, mas a NF-e no .Net Core acredito que sim, é só fazer conexão com os webservices, com certeza deve funcionar., agora voce precisa tentar, ficar só pesquisando sem por a mão na massa não vai funcionar.




#485077 - 25/10/2018 17:24:20

MRSILVA
MARINGA
Cadast. em:Julho/2015


Lampião obrigado por responder.

Então já estou desenvolvendo um WEBAPI NET CORE para operações normais (ERP) ainda está no começo, más  logo vou precisar de algumas funcionalidades disponibilizadas pela WEBSERVICE da NF-e, ai fiquei na dúvida porque se precisar de duas WEBAPI o meu custo vai aumenta para publicar  em um servidor externo (nuvem AZURE) como estou começando seria bom se não tivesse esse custo adicional agora.

Falar nisso você publica sua WEBAPI em algum serviço de aplicativo como AZURE, AWS etc? Você conhece alguma confiável com o preço melhor?

Desde já agradeço.



#485078 - 25/10/2018 17:53:56

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


MRSILVA,

O resultado final será praticamente o mesmo nas duas plataformas, mas com o .net core você tem a vantagem de hospedar em um linux, e trazer um desempenho melhor, aliado a segurança.
Sobre hospedagem, sinceramente, procure fazer seu próprio servidor, é a melhor coisa que você pode fazer para as suas aplicações.




#485079 - 25/10/2018 18:14:14

MRSILVA
MARINGA
Cadast. em:Julho/2015



Obrigado Guimoraes.

Citação:
  O resultado final será praticamente o mesmo nas duas plataformas, mas com o .net core você tem a vantagem de hospedar em um linux, e trazer um desempenho melhor, aliado a segurança.


Sim, inclusive estou apreendendo Net. Core por esses motivos. (E pelos puxões de orelha do Kerplunk rsss).

Citação:
  Sobre hospedagem, sinceramente, procure fazer seu próprio servidor, é a melhor coisa que você pode fazer para as suas aplicações.


Mas será que é o caminho mesmo?  Para manter sempre disponível  terei que gastar um bom dinheiro para criar uma boa estrutura (Servidor, licenças, Internet (pelo menos duas), manutenção  etc).

Você teve alguma experiencia negativas com esses serviços?

Desde já agradeço.




#485080 - 25/10/2018 18:28:41

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


Bom, qualquer Core I5 com 8 GB de memória e um hd ssd será superior a um serviço básico de hospedagem, fora que se você fizer um servidor linux, não terá o custo com licenças.

A internet é a mais complicada, não é todo lugar que tem uma boa disponibilidade com um baixo custo. Aqui na minha empresa tenho um link de 100 MB de download e 50 MB de upload, pelos míseros R$ 99,00, em fibra ótica. Além desse link, tenho outro com 60 MB, todos eles em um broadband, que faz a união das duas bandas, e caso alguma delas caia, a outra assume instantaneamente. É claro que além disso, também tenho um firewall físico.
É um investimento, mas se comparado aos valores que paguei pelo aluguel desses serviços, é um investimento bem baixo.

Já usei o AZURE, nunca tive problemas, mas o seu custo é o que deixa a desejar. Sobre o Amazon, nunca usei, não sei opinar.
Agora, fuja de uol host, locaweb, kinghost, é só dor de cabeça. Depois de apanhar tanto com esses serviços, decidi fazer meu próprio servidor, foi a melhor coisa que fiz.



#485081 - 25/10/2018 18:58:50

MRSILVA
MARINGA
Cadast. em:Julho/2015


Última edição em 25/10/2018 18:59:43 por MRSILVA

Mais uma vez obrigado Guimoraes.

Teria mais o custo da licenças dos bancos de dados, hoje nos meus desenvolvimento utilizo Entity Framework e banco de dados SQLSERVER, você tem experiencias com outro banco de dados que roda em Linux (gratuito)? Daria até para utilizar SQLSERVER EXPRESS mas tem a questão da limitação de utilização da memoria do servidor, acredito que não teria uma resposta positiva por esse motivo, você acha que teria?

Citação:
Aqui na minha empresa tenho um link de 100 MB de download e 50 MB de upload, pelos míseros R$ 99,00

Você pode fornecer o nome dessa empresa?

Desde já agradeço








#485082 - 25/10/2018 19:02:55

LAMPIAO
SAO CAETANO DO SUL
Cadast. em:Setembro/2004


Uso o Azure para alguns serviços que não preciso de banco de dados,
o AWS só fiz uns testes lá mas não uso.

Para mim ambos são bons, porém o Azure oferece uma melhor integração
com os aplicativos baseados no dotnet, possui integração de varios serviços
com o visual studio, entre muitas outras coisas.

A única desvangem é o preço para nós brasileiros com a nossa moeda desvalorizada.

Tenho dois servidores próprios, um ubuntu server e um windows server 2012, onde ficam hospedados a
WEB-API da minha aplicação,
o front-end fica na locaweb, e os serviços de consulta de cep, ncm entre outros
serviços comuns aos clientes ficam no azure.

Em termos de custos para mim hoje é a melhor configuração custo/benefício.

Não sei como pretendes fazer, mas tente alocar uma maquina virtual com 32gb de memória ram
e processador de 4 núcleos no Azure, pode ter certeza que não será barato, nem falei do custo
do sistema operacional e o sql server ou até mesmo o mysql.

Não é barato, se for usar ao invés de máquina virtual usar os serviços de aplicativos, voce provavelmente
terá que configurar autoscale para automativo se não quiser correr o risco de ter a aplicação caindo
por falta de recursos de memória e ou processador.

Enfim depende do número de clientes que deseja ter, para um ou até sei lá uns 5 clientes com 5 acessos simultâneos cada
um e dependendo de como esta aplicação, se foi bem escrita, talvez não precise de nada disso que falei.
Mas talvez, não é uma regra, isso varia muito e depende de como foi projetada a plicação também.

Para uma aplicação comercial, como pretende fazer? Um serviço para cada cliente ou um único serviço para n clientes?

Pense sempre na manutenção, hoje se eu quiser fazer uma manutenção no serviço de um cliente, só preciso parar
o serviço dele, os outros clientes continuam normal sem parar.

Se fosse 1 para 1, real x dólar, seria uma maravilha.

As possibilidade são variadas.



#485084 - 25/10/2018 19:23:14

MRSILVA
MARINGA
Cadast. em:Julho/2015


Obrigado Lampiao.

Então no inicio terei poucos clientes (6)  e minha aplicação não será tão grande no inicio, fiz alguns testes com azure utilizando o serviço de aplicativo Standard (+ - 3,70 de memoria não lembro certo) e um banco de dados SQLSERVER com 250 Gb 20 DTUS, tive uma boa resposta, com essa configuração teria um custo inicial aproximando de  R$ 350,00 reais, com aumento dos clientes e da aplicação conseguiria aumentar os recursos rapidamente. Será que essa configuração é muito fraca até mesmo para começar?

Desde já agradeço.



Resposta escolhida #485086 - 26/10/2018 01:52:45

LAMPIAO
SAO CAETANO DO SUL
Cadast. em:Setembro/2004


Então, depende de como você vai montar sua estrutura de aplicativo + banco de dados.
250Gb é um único banco de dados ok, você vai colocar todo mundo em um único banco de dados?, tipo multi-cliente? É bastante complicada essa abordagem.
Comparando com o meu serviço Rest (web-api), uma única aplicação começa a funcionar consumindo uns 70mb de memória, quando começam a fazer pesquisa de registros, gerar relatório, gerar nota, criar pedido, muitas requisições simultaneas, etc, fica na casa dos 600mb +-.

E olha que já otimizei bastante, utilizando cache de informações que não mudam muito, ou que demora pra mudar. Então fazendo uma conta rápida, 10 clientes fazendo bastante requisições simultaneamente consumiriam em torno de 6GB de memória. Isso só a aplicação, sem falar no consumo de memória do sql server, que deve, ou deveria estar em outro servidor separado.
É claro que depende do tamanho e do que a aplicação faz, minha api gera sincronização de dados para o POS,  cada cupom SAT ou NFC-e gerada no cliente uma cópia do xml é transmitida na hora para o serviço, a aplicação mantem conexão permanente com os aplicativos do certificado A3 e o aplicativo da impressora térmica além do POS, tudo isso consome recurso mesmo usando (SignalR), tudo isso fica alocado em memória. Se sua aplicação for simples, os 4gb que vc citou talvez de pra alocar alguns clientes, mas na medida em que a aplicação for crescendo os recursos que ela precisará pra funcionar bem, serão maiores e por mais enxuta que seja a aplicação, 4gb de memória ram se transformará rapidamente em vaga lembrança.

Eu citei "os recursos que ela precisará pra funcionar bem, serão maiores", isso porque você pode se tiver acesso ao IIS configurar para consumir menos memória, mas sua aplicação ficará uma carroça, vai acontecer como eu já vi, do usuário passar o leitor de códigos de barras pra pegar um produto e a aplicação demora pra responder, imagine isso numa loja cheia, é só stress e xingamentos.
Mas você só saberá o quanto a sua configuração é suficiente ou não, quando começar realmente a colocar clientes pra usar, por mais testes que você faça, simulações etc, nada substitui o cliente final, o usuário final, a forma como ele usará sua aplicação, definirá o quão suficiente é ou não a sua infra-estrutura, além de que tem coisas que só acontecem quando está lá na mão do cliente, e ajuda a gente a otimizar e melhorar a aplicação.

Abraços



#485089 - 26/10/2018 09:13:53

MRSILVA
MARINGA
Cadast. em:Julho/2015


Mais uma vez obrigado pela orientação Lampiao foram de grande valia para mim, está me ajudando a me planejar para minha estrutura inicial.

Conforme Lampiao orientou acredito que o grande vilão é o servidor da aplicação pelo motivo do consumo de memoria e esse serviço  no Azure é muito caro  é 80% do valor que passei de custo inicial mensal,  por esse motivo estou analisando e montar uma estrutura com servidor OS em linux somente para aplicação  (hospedar minhas WEBAPI) e os bancos de dados  utilizar o serviço do AZURE, no momento não tem como eu testar dessa forma, Alguém sabe me dizer se teria uma boa performance já que o meu banco de dados não estaria na mesma rede do servidor da aplicação? Acredito que dessa forma não teria problemas com licenças de banco de dados SQLSERVER.

Outra alternativa é mudar de banco de dados (gratuito) mas não queria mais mudanças pelo motivo que o projeto já está atrasado e não tenho experiencias com outros bancos de dados.

Desde já agradeço.




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por MRSILVA em 30/10/2018 14:20:47