Wat jij vergeten bent, hoeft voor mij geen spoed te zijn.
http://www.w3.org/TR/SOAP/
http://xml.apache.org/soap/
http://www.develop.com/soap/
We adore chaos because we like to restore order - M.C. Escher
Java.NET is van Remotesoft: http://www.remotesoft.com/javanet/index.html
Waarschijnlijk bedoel je Visual J#. Maar daar zit ik niet aan te denken. Gewoon de API van de serverside Java-applicatie aanroepen en de teruggekeerde waarden gebruiken in een .NET applicatie.
Ik vraag me dan af of het gemakkelijk in .NET gedaan kan worden omdfat Microsoft zegt dat je alle talen kan gebruiken. Waarschijnlijk zal je dus eerst de API moeten parsen naar XML/SOAP zodat deze gebebruitk kan worden in .NET. Rechtstreeks de API aanspreken kan waarschijnlijk niet.
Wat jij vergeten bent, hoeft voor mij geen spoed te zijn.
Je kunt mijn linkje naar RemoteSoft volgen, maar daar word je vast niet blijer van. Je zult inderdaad de hele zut naar SOAP/XML moeten parsen, maar dat is niet zo heel veel werk, en kan vrijwel geheel geautomatiseerd gebeuren. (Zie eerste set linkjes)Stimpy001 schreef op 18 september 2002 @ 16:37:
[...]
Waarschijnlijk bedoel je Visual J#. Maar daar zit ik niet aan te denken. Gewoon de API van de serverside Java-applicatie aanroepen en de teruggekeerde waarden gebruiken in een .NET applicatie.
Ik vraag me dan af of het gemakkelijk in .NET gedaan kan worden omdfat Microsoft zegt dat je alle talen kan gebruiken. Waarschijnlijk zal je dus eerst de API moeten parsen naar XML/SOAP zodat deze gebebruitk kan worden in .NET. Rechtstreeks de API aanspreken kan waarschijnlijk niet.
Verwijderd
Taal != Platform. De Java API is geen taal.Stimpy001 schreef op 18 September 2002 @ 16:37:
omdfat Microsoft zegt dat je alle talen kan gebruiken.
Als je dit zo goed weet misschien kan je dan ook eens een antwoord bedenken op de gestelde vraag ipv je druk te maken over of Java APi nou wel of niet een taal is.
Wat jij vergeten bent, hoeft voor mij geen spoed te zijn.
Verwijderd
Ik wijs de topicstarter op een lees/denkfout, als je daar problemen mee hebt dan ga je maar bij een moderator klagen.Stimpy001 schreef op 18 September 2002 @ 16:55:
Als je dit zo goed weet misschien kan je dan ook eens een antwoord bedenken op de gestelde vraag ipv je druk te maken over of Java APi nou wel of niet een taal is.
Daarvoor kan je JNI gebruiken. Dat is wel erg op C gericht, maar met .NET moet het ook wel mogelijk zijn denk ik.Stimpy001 schreef op 18 september 2002 @ 16:11:
Wie weet of het mogelijk is om om met behulp van Microsoft Visual Studio .NET gebruik te maken van een bestaande Java API.
Voorbeeld: Stel ik heb een serverside-applicatie die geschreven is in Java en ik wil de API gebruiken in een .NET-applicatie. Is dit dan mogelijk?
JNI docs: http://java.sun.com/j2se/1.4.1/docs/guide/jni/index.html
Dit heeft verschillende oorzaken en eigenlijk heb je bij alle oorzaken een vervelend gevoel omdat het zo voor de hand ligt dat je dit gewoon zou moeten kunnen doen zonder al te veel moeite. SOAP is hier niet echt een optie omdat het om het gebruik van libraries gaat, niet van software componenten die data uit moeten wisselen. JNI is ook een veel te zware oplossing voor het eenvoudige wat je wilt.
Je kan de zaak vanuit twee kanten bekijken. Bij de eerste kant is het de schuld van Java. Als Java volledig open source en gratis (als in bier) zou zijn, zou je alle Java libraries namelijk redelijk eenvoudig naar IL kunnen omzetten en dus bruikbaar maken in .NET. Het probleem is alleen dat Java niet open is. Zaken als GNU Classpath zijn ook niet echt een reeel alternatief op dit moment.
Bij de tweede kant kom je op gebreken in .NET en trek je het nut van het hele fenomeen .NET in twijfel. Deze kant is al vaak besproken. Uitgaande van de het feit dat .NET er is, is de tweede kant eigenlijk zinloos en kom je dus sowieso op de eerste kijk op de zaak.
Dat Java niet open is, is dus in feite de oorzaak van de problemen.
Zie ook dit topic op Javahova:
.NET + Java + .... : dubbele codebases
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
mbravenboer schreef op 18 september 2002 @ 19:21:
Bij de tweede kant kom je op gebreken in .NET en trek je het nut van het hele fenomeen .NET in twijfel. Deze kant is al vaak besproken. Uitgaande van de het feit dat .NET er is, is de tweede kant eigenlijk zinloos en kom je dus sowieso op de eerste kijk op de zaak.
doel je hier op het feit dat een van de mooie dingen van .NET is dat je 1 API hebt, die in alle .NET talen gelijk is, en dat gebruik maken van de java API dus redelijk zinloos zou zijn?
zo niet: kun je dan even toelichten wat je bedoelt?
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
De situatie is op .NET is hetzelfde als op het Java Platform: alle talen die op de JVM draaien kunnen gebruik maken van de Java API. Dat is alleen een heel oud discussie-punt waar je niet echt een duidelijke punt achter kan zetten.oisyn: doel je hier op het feit dat een van de mooie dingen van .NET is dat je 1 API hebt, die in alle .NET talen gelijk is
Zeker niet, .NET api's zal je ook in een bepaalde taal moeten implementeren (C# bijvoorbeeld). Waarom zou je dan geen libraries willen gebruiken die in Java geimplementeerd zijn? Het Java Platform kent een heleboel uitermate interessante bibliotheken die menigeen maar wat graag op .NET zou willen zien draaien (Xalan, Xerces, Jing, FOP, Batik, Corba implementatied, JDBC drivers om maar eens wat te noemen). Als de 'basis' libraries van Java 2 Standard Edition volledig op .NET zouden kunnen draaien zouden vrijwel ale deze libraries direct kunnen draaien op .NET omdat compilatie van Java naar IL niet echt een punt is. Het beschikbaar maken van deze libraries zou dus als een enorme katalysator kunnen werken en eigenlijk is het doodzonde en een kleine ramp voor de ontwikkelaar dat hier niet direct uitzicht op is. Dat het mogelijk is, heeft Microsoft al laten zien omdat de antieke Java versie die Microsoft nog mocht distribueren al wel aangeboden wordt om J++ klanten niet al te veel te naaien.en dat gebruik maken van de java API dus redelijk zinloos zou zijn?
Deze standaard libraries (en de native code die erbij hoort) is echter niet open. Als deze wel open was, zou een andere partij vrij eenvoudig een port kunnen maken naar .NET. Hiervoor moeten enkele vervelende problemen worden opgelost (reflectie, primitieven, classloader), maar dit gaat maar om een hele kleine kern. Java Collections en Swing zullen bijvoorbeeld vrijwel geen aanpassing van de code vereisen. Sun zal dit natuurlijk nooit doen, maar handelt hiermee absoluut niet in belang van de ontwikkelaar, die gewoon sommige extreem goede Java libraries in .NET wil gebruiken.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
* PoohBear , als liefhebber van SOAP, durft dit wel openlijk te betwijfelen.mbravenboer schreef op 18 september 2002 @ 19:21:
SOAP is hier niet echt een optie omdat het om het gebruik van libraries gaat, niet van software componenten die data uit moeten wisselen.
Het ging om 't volgende:
Hij heeft de serverside-applicatie zelf geschreven. Dan is SOAP als tussenoplossing best te doen. Hoewel 't zeker geen ideale oplossing is, en aardig ten koste kan gaan van je performance (hoewel je met compressie e.d., of door iets anders dan XML te gebruiken, aardig wat overhead kunt kwijtraken), is SOAP voor een client/server oplossing erg leuk. Het grote voordeel is dat je je absoluut niet druk hoeft te maken om de omgeving waarin je 't draait. Een webserver en -client is genoeg.Stel ik heb een serverside-applicatie die geschreven is in Java en ik wil de API gebruiken in een .NET-applicatie. Is dit dan mogelijk?
overigens: is er iemand die weet waar dit over gaat?
HahaPoohbear: * PoohBear , als liefhebber van SOAP, durft dit wel openlijk te betwijfelen.
Het hangt er vanaf wat hij precies wil. Als ik het goed begrijp wil hij gewoon een library gebruiken die in Java geschreven is. Het hangt het een beetje van de aard van de library af of het nuttig is om deze met SOAP aan te gaan spreken.Hij heeft de serverside-applicatie zelf geschreven. Dan is SOAP als tussenoplossing best te doen.
Als het een library is die duidelijk fungeert als een software component waarmee je data uit wilt wisselen, kan SOAP een prima oplossing zijn als de overhead van deze vorm van communicatie tussen een Java VM en .NET geen probleem is.
Veel libraries fungeren echter niet bepaald als software component en bieden met name functionaliteit aan aan andere code (denk aan Java Collections, Corba, JDBC, Swing, JAXP, TrAX bijvoorbeeld). Ik zou niemand aan willen reden om met dergelijke libraries te gaan gebruiken via SOAP.
Dit gaat precies over datgene waar ik het hierboven over heb. Ik geloof alleen niet dat ik dat project erg serieus moet nemen als ik het zo bekijk. Allereerst is de naam Java .NET kansloos dus het wordt duidelijk niet gedaan door mensen die goed nadenken en ik zie nog weinig concreets. Er zijn wel interessantere initiatieven op dit punt denk ik.overigens: is er iemand die weet waar dit over gaat?
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Soms heb ik hier 't idee dat ik nog een aardig groentje ben. Hoewel ik erg gecharmeerd ben door het concept van SOAP, heb ik het slechts eenmaal in de praktijk gebruikt (ok, ook meteen een groot project), en kan ik nog niet zo'n goed oordeel vellen over alle voor- en nadelen. (Is ook niet echt mijn gebied, moet ik eerlijk toegeven.)mbravenboer schreef op 18 september 2002 @ 20:34:
HahaJe zegt het alsof je jezelf erg veel lef vindt hebben
.
Dat zijn we natuurlijk met elkaar eens. Alleen vermoedde ik, door zijn "serverside-applicatie"-opmerking dat het vooral om datauitwisseling en niet zozeer om functionaliteit ging. (Dan lijkt een client-server model me sowieso erg nadelig, daar heeft soap niet zoveel mee te maken).Het hangt er vanaf wat hij precies wil. Als ik het goed begrijp wil hij gewoon een library gebruiken die in Java geschreven is. Het hangt het een beetje van de aard van de library af of het nuttig is om deze met SOAP aan te gaan spreken.
Als het een library is die duidelijk fungeert als een software component waarmee je data uit wilt wisselen, kan SOAP een prima oplossing zijn als de overhead van deze vorm van communicatie tussen een Java VM en .NET geen probleem is.
Veel libraries fungeren echter niet bepaald als software component en bieden met name functionaliteit aan aan andere code (denk aan Java Collections, Corba, JDBC, Swing, JAXP, TrAX bijvoorbeeld). Ik zou niemand aan willen reden om met dergelijke libraries te gaan gebruiken via SOAP.
Mwah, er doen hier aardig wat mensen met veel minder achtergrond hun mond open hoorPoohbear: Soms heb ik hier 't idee dat ik nog een aardig groentje ben.
Idd.Dan lijkt een client-server model me sowieso erg nadelig, daar heeft soap niet zoveel mee te maken.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Verwijderd
maargoed het probleem lijkt me dus nog niet helemaal duidelijkGewoon de API van de serverside Java-applicatie aanroepen en de teruggekeerde waarden gebruiken in een .NET applicatie.
Er draait een server, geschrreven in Java met een aantal specifieke libraries. Nu kun bijvoorbeeld de het volgende aan de server vragen: getGlobalPosition(). De server zal dan een positie (x,y) teruggeven. Natuurlijk gebeurt dit alles in Java.
Nu is dus de vraag of ik de functie: getGlobalPosition() ook vanuit een .NET-applicatie kan aanroepen en dus ook de teruggekeerde waarde hiervan kan gebruiken.
Wat jij vergeten bent, hoeft voor mij geen spoed te zijn.
Hmm... Volgens mij geeft deze draad je genoeg info om er verder zelf uit te komen. Of, om het anders te zeggen: Ja, het kan, maar er zijn veel haken en ogen. Afhankelijk van de manier waarop je je library gebruikt, ligt de keus voor een bepaalde implementatie meer voor de hand dan een andere.Stimpy001 schreef op 19 september 2002 @ 08:36:
Misschien dat het zo wat duidelijker wordt:
Er draait een server, geschrreven in Java met een aantal specifieke libraries. Nu kun bijvoorbeeld de het volgende aan de server vragen: getGlobalPosition(). De server zal dan een positie (x,y) teruggeven. Natuurlijk gebeurt dit alles in Java.
Nu is dus de vraag of ik de functie: getGlobalPosition() ook vanuit een .NET-applicatie kan aanroepen en dus ook de teruggekeerde waarde hiervan kan gebruiken.
Ja dit kan, tenzij je een eigen VM wil maken, loosly coupled. De meest voor de hand liggende oplossing (maar niet die met de beste performance) is SOAP. Door de grote hoeveelheid tools werkt dat ook het lekkerst waarschijnlijkStimpy001 schreef op 19 september 2002 @ 08:36:
Misschien dat het zo wat duidelijker wordt:
Er draait een server, geschrreven in Java met een aantal specifieke libraries. Nu kun bijvoorbeeld de het volgende aan de server vragen: getGlobalPosition(). De server zal dan een positie (x,y) teruggeven. Natuurlijk gebeurt dit alles in Java.
Nu is dus de vraag of ik de functie: getGlobalPosition() ook vanuit een .NET-applicatie kan aanroepen en dus ook de teruggekeerde waarde hiervan kan gebruiken.
Verwacht echter nooit dezelfde performance.. hoe minder de functie doet hoe groter in verhouding het verschil wordt. Bv. een functie aanroepen die simpel weg een variabele returned is in SOAP waarschijnlijk minimaal 10.000 keer zo traag.. maar als je een complexe functie hebt die 10 seconden over z'n berekening doet is het verschil relatief veel kleiner. Hou hier dus rekening mee in je design. Ook functies die een erg grote hoeveelheid data returnen worden trager.
Is performance *wel* heel belangrijk voor je zoek dan liever een andere oplossing als SOAP (1 van die oplossingen is het porten van je code naar .NET).
Opera OpenOffice.org Jabber Psi jabber://llama@mordax.com
JAStimpy001 schreef op 18 september 2002 @ 16:11:
Wie weet of het mogelijk is om om met behulp van Microsoft Visual Studio .NET gebruik te maken van een bestaande Java API.
Voorbeeld: Stel ik heb een serverside-applicatie die geschreven is in Java en ik wil de API gebruiken in een .NET-applicatie. Is dit dan mogelijk?
Je kan de zaak compileren en als interop gebruiken in .NET.
En hoe ga jij het oplossen als er Java libraries worden gebruikt uit Java 2 (1.2, 1.3 of 1.4), wat vrij waarschijnlijk is?paulgielens: JA
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Ik geef antwoord op de vraag binnen deze context:
Voorbeeld: Stel ik heb een serverside-applicatie die geschreven is in Java en ik wil de API gebruiken in een .NET-applicatie. Is dit dan mogelijk?
En ga niet brainstormen over alle andere mogelijke toepassingen. Een wrapper is imo de beste aanpak.
SOAP
JNI
Dat zijn je opties. En JNI is van java naar native code. Niet andersom.
Dat is wel een zeer positieve kijk op de zaak. Allereerst zal het naar native code compileren niet mee vallen, niet voor niets zijn er nog steeds geen native compilers die gewoon goed werken en bovendien alle recente frutsels, reflectie, classloading en GUI code ondersteunen. Reflectie wordt al snel gebruikt, denk bijvoorbeeld maar eens een simpel iets als het gebruik van een JDBC driver. Als je er al in slaagt om native code te krijgen voor je Java applicatie, zal het niet mee gaan vallen om dat op een beschaafde manier aan te gaan roepen als een normale .NET library.paulgielens: Als je je zaken in Java afgerond hebt kun je daar gewoon een assembly uitdraaien
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Ja ben ik wel met je eens, daarom ga ik ook aan dat een wrapper een mogelijk oplossing is. Een goede programmeur heeft natuurlijk altijd een interface aan z'n applicatie hangen, SOAP, XML, COM ofzo. Het blijft dweilen met de kraan open.mbravenboer schreef op 21 september 2002 @ 14:54:
[...]
Dat is wel een zeer positieve kijk op de zaak. Allereerst zal het naar native code compileren niet mee vallen, niet voor niets zijn er nog steeds geen native compilers die gewoon goed werken en bovendien alle recente frutsels, reflectie, classloading en GUI code ondersteunen. Reflectie wordt al snel gebruikt, denk bijvoorbeeld maar eens een simpel iets als het gebruik van een JDBC driver. Als je er al in slaagt om native code te krijgen voor je Java applicatie, zal het niet mee gaan vallen om dat op een beschaafde manier aan te gaan roepen als een normale .NET library.