[VB.net] API Programma tutorial

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 01-10 10:45

Armageddon_2k

Trotse eigenaar: Yamaha R6

Topicstarter
Hey mensen,

Ik ben bezig met mn programeer skills wat bij de vijzelen. Nu wil ik graag een test programma gaan maken met een API. Dit om later mijn programma's via API te kunnen aanroepen.

Het probleem is dat ik geen goeie tutorial kan vinden, want als je google't naar de "VB.net" "API" en nog wat losse steekwoorden. Dat je 3.000.000 hits krijgt over het gebruiken van API's van derden.

Mij idee was om als test "Hello world" via een API beschikbaar te maken.
Nu gok ik dat het iets zal zijn als:

[API_Caller]---[API]---[Hello World App]

Maar ik heb geen idee hoe ik dit op moet zetten. Weet iemand hier een voorbeeld/Tutorial van?

Ik kan uiteraard de API(dll) wel een instance laten maken van de Hello World App en dan de code aan te roepen, maar mijn idee is om de HWA, alsvast te laten draaien. En als de caller dan bijvoorbeeld "ShowHelloWorld()" aanroept, dat de HWA de uiteindelijike messagebox laat zien.

[ Voor 17% gewijzigd door Armageddon_2k op 07-03-2011 12:15 ]


Acties:
  • 0 Henk 'm!

  • steffex
  • Registratie: Augustus 2003
  • Laatst online: 12-08 00:24
Wikipedia: Application programming interface

kijk eerst maar eens wat een API is, want een API is er niet voor om messageboxes te laten zien. API's worden over het algemeen alleen gebruikt om data uit te wisselen, het weergeven van die data gebeurt dan door de client app die de API aanroept.

offtopic:
als je je programmeer skills wilt verbeteren, kun je beter naar een andere taal gaan kijken... >:) :Y)

Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 01-10 10:45

Armageddon_2k

Trotse eigenaar: Yamaha R6

Topicstarter
steffex schreef op maandag 07 maart 2011 @ 12:27:
[kijk eerst maar eens wat een API is, want een API is er niet voor om messageboxes te laten zien. API's worden over het algemeen alleen gebruikt om data uit te wisselen, het weergeven van die data gebeurt dan door de client app die de API aanroept.
Beetje useless opmerking, ik weet prima wat een API is. Ik wil het op deze manier als test app maken.
Of ik nou data heen en weer stuur of dat ik een functie aanroep die een messagebox laat zien.
Je zal toch altijd ergens een event moeten afhandelen dat je nieuwe data hebt.

Maar om op jou manier te gaan:
Dan stuurt mn [Calling class] "Hello world" als data naar de [API], en dan laat de laatste [App] dit zien doormiddel van een popup. (precies het zelfde, maar dan in jou woorden)

Acties:
  • 0 Henk 'm!

  • Gimmeabrake
  • Registratie: December 2008
  • Laatst online: 29-09 10:16
Denk je dat het toeval is dat je weinig toepasselijke hits vindt op google? Paar tips:
  • In desktop programmeertalen wordt er in het algemeen over libraries gesproken, niet over APIs.
  • Vraag je eerst eens af hoe je de API wilt aanspreken, en formuleer dat duidelijker. Wil je een webservice? Wil je gewoon een dll hebben die je in andere projecten weer kunt gebruiken? Of wil je iets anders wat ik nog niet heb genoemd?
steffex schreef op maandag 07 maart 2011 @ 12:27:
offtopic:
als je je programmeer skills wilt verbeteren, kun je beter naar een andere taal gaan kijken... >:) :Y)
offtopic:
Naast dat dit helemaal niks bijdraagt aan de vraag van de TS, slaat het dus ook helemaal nergens op. Mocht je echt van mening zijn dat VB.Net een inferieure taal is, stuur je me maar een bericht met uitleg. Ik weet vrij zeker dat ik elk argument kan weerleggen.

Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 01-10 10:45

Armageddon_2k

Trotse eigenaar: Yamaha R6

Topicstarter
Het wordt een normale app, dus niet webbased. De API wil ik bij voorkeur als .dll beschikbaar maken.
Verder geen wilde idee oid, het is gewoon een test.

Plaatje van het idee.

Afbeeldingslocatie: http://img836.imageshack.us/img836/7125/apiqv.jpg

Acties:
  • 0 Henk 'm!

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
Wat al is geprobeerd je wijs te maken is dat een API geen GUI moet bevatten. De API zou wel een string kunnen openbaren welke je applicatie in zijn GUI laat zien.

Misschien geen rare vraag, wat voor een API is het? Welke functionaliteiten wil je beschikbaar stellen? Wat is je probleem, waar loop je op vast?

Freelance Unity3D developer


Acties:
  • 0 Henk 'm!

  • Gimmeabrake
  • Registratie: December 2008
  • Laatst online: 29-09 10:16
Ok, dus je wilt weten hoe je een library kunt maken (dll) en die weer aan een ander project kunt toevoegen.

Kort samengevat (uit het hoofd):
  • Maak een nieuw project aan, van het type class library.
  • Maak daarin een public class met daarin public methods/events die je wilt kunnen aanspreken.
  • Build de class library.
  • Ga naar de project settings van het project dat de dll gaat gebruiken, openhet tabblad references, voeg een reference toe naar het dll bestand dat je gecompiled hebt.
  • Import de namespace van je library in de class waarin je hem wilt gebruiken en begin met coden.
Als je wat gedetaileerdere informatie wilt zou ik eens op termen als "VB.Net" en "Class Library" googlen. Ik denk dat je dan wel het een en ander vindt :)

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
gerrymeistah schreef op maandag 07 maart 2011 @ 15:26:
Ok, dus je wilt weten hoe je een library kunt maken (dll) en die weer aan een ander project kunt toevoegen.

Kort samengevat (uit het hoofd):
  • Maak een nieuw project aan, van het type class library.
  • Maak daarin een public class met daarin public methods/events die je wilt kunnen aanspreken.
  • Build de class library.
  • Ga naar de project settings van het project dat de dll gaat gebruiken, openhet tabblad references, voeg een reference toe naar het dll bestand dat je gecompiled hebt.
  • Import de namespace van je library in de class waarin je hem wilt gebruiken en begin met coden.
Als je wat gedetaileerdere informatie wilt zou ik eens op termen als "VB.Net" en "Class Library" googlen. Ik denk dat je dan wel het een en ander vindt :)
Echter zal je dan nog steeds moeten zorgen dat de calls van de class library ook doorgegeven worden aan het pocess dat er op moet reageren. Je kunt dan kijken naar dingen als IPC, of inderdaad webservices via WCF.

Ik denk dat het het eenvoudigst en flexibels is om gewoon een self-hosted WCF service te maken, en dan eventueel een Client dll die de aanroep van de service voor handen neemt. Op die manier hoeft de gebruiker van de API zich niet in WCF of webservices te verdiepen, maar kan iemand anders, die in een andere taal wat wil maken, er wel gebruik van maken.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Gimmeabrake
  • Registratie: December 2008
  • Laatst online: 29-09 10:16
Woy schreef op maandag 07 maart 2011 @ 15:45:
[...]

Echter zal je dan nog steeds moeten zorgen dat de calls van de class library ook doorgegeven worden aan het pocess dat er op moet reageren. Je kunt dan kijken naar dingen als IPC, of inderdaad webservices via WCF.
Voor zover ik het heb begrepen heb wil TS eerst eens het concept "libraries" onder de knie krijgen. :) Mocht dat niet zo zijn: wat Woy zegt ^^

Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 01-10 10:45

Armageddon_2k

Trotse eigenaar: Yamaha R6

Topicstarter
Libraries zijn het probleem niet. Heb zat dll's geprogrameerd. Ik begrijp ook prima dat je api niet de gui bevat. En het is helemaal leuk dat er hier allemaal krachttermen heen en weer worden gegooid. Maar dat neemt niet weg dat mijn vrag compleet wordt genegeerd.
Ik vraag om een tutorial hoe je dit correct zou moeten opbouwen, dat het niet op de manier moet hoe ik het nu doe snap ik ook wel... Anders had ik de vraag hier niet gepost.

Het moet toch mogelijk zijn om met progamma 1 een bericht naar de api te sturen, en dan met programma 2 events af te vangen oid? En of dat nou allemaal losse programma's dat intereseert me geen donder. Ik zoek een tutorial!

Verhaal van woy ga ik morgen proberen. Sorry dat ik misschien wat gefrustreerd reageer, maar de rest van de reacties zijn echt waardeloos.

[ Voor 9% gewijzigd door Armageddon_2k op 08-03-2011 23:39 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als je met WCF aan de gang wil (en dat is maar één manier om een API te maken) kan ik je deze pagina aanraden. Makkelijk te volgen video's en in 10 minuten heb jij je aapie ;)

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!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 01-10 10:45

Armageddon_2k

Trotse eigenaar: Yamaha R6

Topicstarter
RobIII schreef op dinsdag 08 maart 2011 @ 23:59:
Als je met WCF aan de gang wil (en dat is maar één manier om een API te maken) kan ik je deze pagina aanraden. Makkelijk te volgen video's en in 10 minuten heb jij je aapie ;)
Thanks d:)b , gaan we denk ik thuis eventjes mee aan de slag.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Armageddon_2k schreef op dinsdag 08 maart 2011 @ 23:36:
Het moet toch mogelijk zijn om met progamma 1 een bericht naar de api te sturen, en dan met programma 2 events af te vangen oid?
"Naar de API" is nogal een vaag begrip. Een API is niets meer dan een afspraak tussen een applicatie en de buitenwereld. In die afspraak word vastgelegd hoe er met de applicatie gepraat kan worden. Of dat nou via een speciaal stukje hardware, files in een directory, (named) pipes, Sockets of wat anders gaat is afhankelijk van wat je precies wil aanbieden.
En of dat nou allemaal losse programma's dat intereseert me geen donder. Ik zoek een tutorial!
Het probleem is dat je vraag veel te generiek is. Je zult niet snel een tutorial vinden om een "API" te maken, want een API is niet veel meer dan een afspraak die je maakt om tegen een applicatie te praten. Je API is dus altijd afhankelijk van de functionaliteit die je wil aanbieden.

Je zult je dus eerst goed af moeten vragen welke functionaliteit je wilt aanbieden, en dan kiezen hoe je die aan gaat bieden. Als je die keuze gemaakt hebt kun je wat specifieker zoeken op tutorials. Als je op WCF tutorial had gezocht, dan had je bijvoorbeeld al een stortvloed aan materiaal kunnen vinden.

Ik denk dat WCF een goede keuze kan zijn, aangezien het enorm veel mogelijkheden heeft, maar in beginsel ook erg makkelijk onder de knie te krijgen is.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • keesdewit
  • Registratie: December 2003
  • Laatst online: 19-06 20:46
Een dll is op zichzelf geen api, maar een code libary die je bijvoorbeeld als referentie kunt opnemen om daar instances van op te nemen in je code en de methods, functies etc te gebruiken die binnen jouw scope van gebruik liggen.

Een dll kan wel classes bevatten waarmee je via webservices kunt communiceren met een extern software pakket. Zie bijvoorbeeld de adwords api van Google.

Acties:
  • 0 Henk 'm!

  • Gimmeabrake
  • Registratie: December 2008
  • Laatst online: 29-09 10:16
Armageddon_2k schreef op dinsdag 08 maart 2011 @ 23:36:
Het moet toch mogelijk zijn om met progamma 1 een bericht naar de api te sturen, en dan met programma 2 events af te vangen oid?
Je hebt het erover dat je tweede programma op events moet reageren. Dit is zeker mogelijk, maar alles behalve makkelijk. Ik weet niet hoe bekwaam jij bent met het .Net Framework en verschillende programmeerconcepten, maar ik zou er als ik jou was over nadenken om een tussenstapje te maken door eerst een API te schrijven die niet met events werkt. :)

Mocht je het willen googlen denk ik dat je met de zoekterm "event-driven api", eventueel aangevuld door de technologie die je voor de API wilt gebruiken, een heel eind zult komen.
Armageddon_2k schreef op dinsdag 08 maart 2011 @ 23:36:
Verhaal van woy ga ik morgen proberen. Sorry dat ik misschien wat gefrustreerd reageer, maar de rest van de reacties zijn echt waardeloos.
offtopic:
Is het wel eens in je opgekomen dat die waardeloze reacties eventueel ook wel eens zouden kunnen komen door een slecht geformuleerde vraag? Zo vaak slaan de mensen in PRG de plank niet mis hoor. ;)

Acties:
  • 0 Henk 'm!

  • Ellos
  • Registratie: Oktober 2008
  • Laatst online: 17-09 17:22
Openrasta is ook zeer goed geschikt hiervoor, daar het in het leven geroepen is voor lightweight api's dus geen SOAP omvang maar gewoon REST

https://github.com/openrasta/openrasta-stable/wiki

offtopic:
ik vond zijn vraag anders prima duidelijk, vandaar ook dat ik dit antwoord geef, en niet die BS die mijn vorige medetweakers erop geklapt hebben, uitzonderingen daargelaten

[ Voor 34% gewijzigd door Ellos op 09-03-2011 21:40 ]


Acties:
  • 0 Henk 'm!

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 01-10 08:34

sopsop

[v] [;,,;] [v]

@Ellos: volgens mij was de vraag voor jou ook niet duidelijk. Openrasta is een webtoepassing en ik zie zo even doorbladerend weinig overeenkomsten met de windows API's

[ Voor 4% gewijzigd door sopsop op 10-03-2011 15:49 ]

Pagina: 1