Fala Galera! Tudo certo?
Recentemente precisamos utilizar algumas funcionalidades escritas em C# (que foram escritas há alguns anos atrás, e não tínhamos mais o código fonte [os famosos sistemas legados, né…]). A solução menos trabalhosa foi a que vou mostrar aqui, bora?
Sem mais delongas, vou mostrar como fazer para utilizar a dll escrita em C# em nossa aplicação Node.js.
O pacote utilizado foi o edge-js, que faz exatamente o que a gente precisa: lê uma DLL, invoca o método, lê o retorno e nos devolve.
Isso na prática
Imagine que tenhamos uma Class Library em C# que sirva para fazermos operações matemáticas, dentre elas uma soma, parecido com isso aqui:
Essa Class Library vai gerar uma dll chamada Matematica.dll, que é o nome desse projeto.
Em um outro projeto do tipo Console Application, o código ficaria assim:
E o resultado final é esse:
Até aí, tudo certo!
Agora, vamos lá pro nosso projeto em Node.js, a primeira etapa é instalar o pacote com o comando:
npm install --save edge-js
Com o pacote instalado a utilização fica assim:
Vamos para as considerações:
O parâmetro source serve para colocarmos código em C#, vejam que o código fica entre comentários.
Nossa função do C# recebe um parâmetro do tipo dynamic então podemos passar vários parâmetros para ela e acessar posteriormente os atributos dentro de “input”.
Vejam que o código C# é praticamente idêntico ao que fizemos no Console Application.
O parâmetro references serve para colocarmos as dll’s necessárias para o funcionamento do código que está dentro de source, lá colocamos o caminho completo para a dll, e está somente “Matematica.dll” pois a dll está na mesma pasta da aplicação em Node.js.
Depois que executamos o código que está na variável “soma”, temos um callback com um erro ou o resultado na nossa função em C#, que ficou assim:
O resultado veio do nosso método escrito em C#.
Belezura galera? Espero que seja útil!
Os códigos utilizados estão disponíveis no GitHub: https://github.com/vmussak/nodejs-csharp-dll
Por hoje é só isso, qualquer dúvida ou sugestão, estou à disposição! Até mais 😀
Olá, Vinicius! Tudo bem?
Acompanho você no Facebook e ao rodar meu feed veio uma publicação sua sobre Arduino Day 2019.
Sou aluno do Senac de Jaboticabal e desde a nossa visita a SMN venho acompanhando suas publicações.
Parabéns pela iniciativa e peço que sempre publique linha de códigos e explicação para o aprendizado de todos.
Parabéns novamente e um grande abraço.
GostarGostar
Fala Vitor! Obrigado pelo feedback! E espero você no Arduino Day! 😀
Abraços
GostarGostar