Hoe methods uit een .DLL bestand gebruiken in JS

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Daffie
  • Registratie: Mei 2009
  • Laatst online: 06-10 12:45
Allereerst: Ik heb weliswaar een opleiding Informatica gedaan maar ben daarna 'terug' gegaan naar systeem/netwerkbeheer. Dus hoewel ik tot op zekere hoogte best een beetje kan programmeren, is het voor mij geen dagelijkse kost. Althans, niet tot voor kort!

Ik heb onlangs van een leverancier een SDK gekregen om te kunnen communiceren met de door hun geleverde apparaten (welke apparaten dat zijn is niet heel interessant voor de vraag). Het gaat om een .DLL bestand, waar ze een demo-applicatie bij hebben gedaan. De demo app is geschreven in C++. Ik ben helemaal niet thuis in C++ maar na erg lang priegelen was ik er voor een groot deel uit hoe de C++ applicatie de .DLL gebruikt. Ik heb toen zelf in C# (waar ik iets meer in thuis ben) de applicatie in simpelere vorm nagebouwd en verhip, het werkte best prima.

Nu wil ik de volgende stap zetten, ik wil namelijk het liefst met web-requests de apparaten kunnen aanspreken. Ik zal dus iets van een API moeten maken (?). Nu heb ik wel wat ervaring met API's met JavaScript/Node.JS, maar ik heb geen idee of en hoe ik vanuit JS methodes uit een .DLL bestand kan aanroepen.

Tegelijkertijd is er tegenwoordig binnen het .NET landschap ook al heel veel mogelijk, ik zag in mijn Visual Studio dat ik ook een API kan maken met een .NET-taal, waarbij de koppeling/referentie naar een .DLL bestand wellicht wat handiger gaat.

Heeft iemand ervaring hiermee? Wat is de beste approach hierin?

Acties:
  • +3 Henk 'm!

  • Davidshadow13
  • Registratie: Oktober 2006
  • Laatst online: 08:50
Je kunt niet direct je .DLL aanroepen vanuit een webapplicatie. Je hebt dan iets van een Web API nodig die over HTTP kan communiceren met een webservice welke dan jouw .DLL aanroept.

Als je thuis bent in .NET zou ik iets van een REST API maken in ASP.NET. Je kunt dan vanuit de JS of JS framework request doen naar je API over HTTP en dan je ASP.NET webservice laten communiceren met de .DLL en de gevraagde acties uitvoeren en opgehaalde data teruggeven via de API naar je webapplicatie. Hier leesvoer voor een simpel voorbeeld.

HD4Life @ Full-HD


Acties:
  • +1 Henk 'm!

  • Salmon
  • Registratie: Juli 2009
  • Laatst online: 23-07 21:55

Salmon

.NET developer

Zoals je laatste alinea al zegt is het handigst om dus een losse API te maken (een ASP.NET (Core) WebAPI in Visual Studio bijvoorbeeld) en met die API te communiceren vanuit JS indien gewenst. In de API laad je de DLL en gebruik je de methodes.

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 27-09 13:03
Node heeft een native interface, zie ook https://medium.com/@marci...ive-c-modules-63294a91ce4

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dat 't kan wil niet zeggen dat je 't ook moet doen :X In dit geval lijkt 't me nou niet bepaald de beste oplossing, ondanks dat 't, technically, een valide antwoord op de vraag is ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Delusion
  • Registratie: Mei 2009
  • Laatst online: 08:34
Voor het gebruik van C# in combinatie met Node.js kun je gebruik maken van edge. Daarin kun je ook .dll's aanroepen. Heb het zelf ook met succes gebruikt. :)

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 27-09 13:03
RobIII schreef op donderdag 24 mei 2018 @ 10:12:
[...]

Dat 't kan wil niet zeggen dat je 't ook moet doen :X In dit geval lijkt 't me nou niet bepaald de beste oplossing, ondanks dat 't, technically, een valide antwoord op de vraag is ;)
Waarom niet?

Dit
Nu heb ik wel wat ervaring met API's met JavaScript/Node.JS, maar ik heb geen idee of en hoe ik vanuit JS methodes uit een .DLL bestand kan aanroepen.
Lijkt me een geldige reden om die kant op te gaan. En waarom zou C#/ASP.NET laten interfacen met native een beter idee zijn? :?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
My bad. Ik had 't stukje dat jij quote gemist (en daarbij interpreteerde ik 't veel meer als client-side laten interfacen met native aan de andere zijde zonder (degelijke) REST (of whatever) interface ertussen). Was nog niet helemaal wakker denk ik :P Again; my bad :>

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 06-10 10:20

Janoz

Moderator Devschuur®

!litemod

Toch ben ik het wel eens met RobIII. Ja, jou antwoord is technisch wel het antwoord op de vraag, maar TS geeft aan dat hij al een werkende oplossing in .NET heeft en een beetje ervaring met Node.js. De Node.js oplossing betekent dat TS helemaal opnieuw moet beginnen om het voor elkaar te krijgen de DLL werkend te krijgen en vervolgens een API implementeren. De .NET route betekent echter dat hij zijn bestaande oplossing kan pakken en daar alleen maar een REST interface voor hoeft te zetten.

Ik denk niet dat je het met mij oneens zult zijn dat er online meer, en beter aansluitende, tutorials en resources te vinden zijn waarin uitgelegd wordt hoe je in .NET een rest interface implementeerd dan dat er dingen te vinden zijn over het native aanroepen van DLL's in Node.js.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Wat zei de leverancier toen je hen hierover contacteerde? Wellicht hebben zij al een kant en klare API die je kan gebruiken?

Aangezien je een vergelijkbare app al hebt gebouwd in C#, kun je dus eventueel ook kijken naar ASP.NET, volgens mij (ik heb zelf geen ervaring en kennis met beide talen), wellicht dat die ook wat mogelijkheden heeft? :)

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 27-09 13:03
Janoz schreef op vrijdag 25 mei 2018 @ 10:44:
[...]
De .NET route betekent echter dat hij zijn bestaande oplossing kan pakken en daar alleen maar een REST interface voor hoeft te zetten.
Hij heeft nu een applicatie dat omgebouwd moet worden naar iets met een REST API; hoe veel werk dat is tov een Node REST API met native koppeling kan ik niet inschatten.
Ik denk niet dat je het met mij oneens zult zijn dat er online meer, en beter aansluitende, tutorials en resources te vinden zijn waarin uitgelegd wordt hoe je in .NET een rest interface implementeerd dan dat er dingen te vinden zijn over het native aanroepen van DLL's in Node.js.
Als ik de pagina die ik link even scan lijkt het me geen rocket science, maargoed YMMV.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 06-10 10:20

Janoz

Moderator Devschuur®

!litemod

farlane schreef op vrijdag 25 mei 2018 @ 12:00:
Hij heeft nu een applicatie dat omgebouwd moet worden naar iets met een REST API; hoe veel werk dat is tov een Node REST API met native koppeling kan ik niet inschatten.
.NET ken ik ook niet, maar het zal niet hel vel verschillen met Java. Het toevoegen van een REST is letterlijk nog geen 10 regels code. Mijn vermoeden is dat dit voor .NET niet heel anders is.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1