Toon posts:

[.Net] WCF interface uit WSDL genereren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben bezig met het overzetten van een asmx webservice naar wcf.
Nu bestaat er voor de asmx webservice een tool genaamd wsdl.exe waarmee je voor die webservice
een infterface kan genereren. Maar deze tool is niet bedoelt voor .net 3.0
Nu wil ik het wsdl bestand gebruiken om een interface te genereren die dan weer gebruikt kan worden in de webservice. Maar in de svcutil.exe bestaat er geen optie om dit te doen. Alleen om client proxies etc. aan te maken. Is er een andere manier om het wsdl bestand te gebruiken om een server side interface te genereren ?

  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 31-10 11:58
Bij het aanmaken van de client proxies worden toch ook de interfaces uitgegenereerd die door de proxies geïmplementeerd worden?

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10 10:47
in het kort: nee.

Het wsdl is juist bedoeld om clients te vertellen hoe er met dat ding geinterfaced moet worden. Je kunt er geen compleet nieuwe server interface mee laten genereren.

EDIT: ok het kan dus wel :)

Maar ik snap niet waarom je het zo moeilijk zou willen doen? Ik neem aan dat je toegang hebt tot de code? Indien je visual studio gebruikt kun je volgens mij in je webservice klasse de refactor optie "extract interface" gebruiken om daaruit een interface te genereren, waarop je je wcf service weer kunt implementeren. (of ik vergis me en het is een resharper feature, en ben ik verwend :+)

Maar dan nog, zelfs al heb je dat niet, zo moeilijk is het niet om een interface voor wcf te definiëren. Indien je webservice heel groot is, is het alleen wat typ werk. (als hij heel groot is, moet je zowiezo eens gaan nadenken of dat ding niet teveel doet).

Verwijderd

Topicstarter
D-Raven schreef op dinsdag 17 juni 2008 @ 23:26:
in het kort: nee.

Het wsdl is juist bedoeld om clients te vertellen hoe er met dat ding geinterfaced moet worden. Je kunt er geen compleet nieuwe server interface mee laten genereren.

Maar ik snap niet waarom je het zo moeilijk zou willen doen? Ik neem aan dat je toegang hebt tot de code? Indien je visual studio gebruikt kun je volgens mij in je webservice klasse de refactor optie "extract interface" gebruiken om daaruit een interface te genereren, waarop je je wcf service weer kunt implementeren. (of ik vergis me en het is een resharper feature, en ben ik verwend :+)

Maar dan nog, zelfs al heb je dat niet, zo moeilijk is het niet om een interface voor wcf te definiëren. Indien je webservice heel groot is, is het alleen wat typ werk. (als hij heel groot is, moet je zowiezo eens gaan nadenken of dat ding niet teveel doet).
Het wsdl kan ook worden gebruikt als uitgangspunt voor een service het zogenaamde contract first. En in wsdl.exe was er dus wel een optie om de interface voor de server te genereren en ik vroeg mij dus af of ik mischien de verkeerde tool gebruikte binnen wcf. Vandaar de vraag in principe is het ook mogelijk om op de door jouw beschreven manier een service te maken. Maar in dit geval is dat veel meer werk.

[ Voor 30% gewijzigd door Verwijderd op 18-06-2008 08:38 ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Ik heb zelf geen ervaring met WCF, maar volgens deze post op een blog kun je met svcutil wel degelijk contract-first een webservice definieren en benodigde classes genereren. Ik zou dus toch nog even blijven zoeken als ik jou was.

Verwijderd

Topicstarter
bigbeng schreef op woensdag 18 juni 2008 @ 11:14:
Ik heb zelf geen ervaring met WCF, maar volgens deze post op een blog kun je met svcutil wel degelijk contract-first een webservice definieren en benodigde classes genereren. Ik zou dus toch nog even blijven zoeken als ik jou was.
Die website heb ik ook bekeken en inderdaad die persoon heeft het gevonden maar ik kan nergens vinden hoe hij het dan voor elkaar heeft gekregen.

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Verwijderd schreef op woensdag 18 juni 2008 @ 11:26:
[...]


Die website heb ik ook bekeken en inderdaad die persoon heeft het gevonden maar ik kan nergens vinden hoe hij het dan voor elkaar heeft gekregen.
Helaas heeft hij blijkbaar een .Net app geschreven die een Java webservice consumeert. Er is nog geen volledige functionaliteit voor contract-first in svcutil. Hier kun je een oerlelijke work-around vinden:
http://connect.microsoft....ck.aspx?FeedbackID=124245

Er komt dus nog wat handwerk bij kijken. Je genereert in feite een client proxy en vervolgens ga je met de gegenereerde code (waar blijkbaar de types en calls en wat al niet meer in verstopt zitten) aan het stoeien om het om te zetten naar een service.

Een beetje jammer dit, want binnenkort mogen we bij mijn bedrijf ook een omzetting van een webserivice naar .Net 3.5 doen. Contract-first. Mocht ik meer te weten komen zal ik mijn bevindingen hier delen.

Verwijderd

Topicstarter
bigbeng schreef op woensdag 18 juni 2008 @ 11:53:
[...]

Helaas heeft hij blijkbaar een .Net app geschreven die een Java webservice consumeert. Er is nog geen volledige functionaliteit voor contract-first in svcutil. Hier kun je een oerlelijke work-around vinden:
http://connect.microsoft....ck.aspx?FeedbackID=124245

Er komt dus nog wat handwerk bij kijken. Je genereert in feite een client proxy en vervolgens ga je met de gegenereerde code (waar blijkbaar de types en calls en wat al niet meer in verstopt zitten) aan het stoeien om het om te zetten naar een service.
De pagina van Microsoft Connect had ik idd ook al gelezen via een verwijzing van msdn. Maar dat is wat mij betreft geen oplossing die de mensen van Microsoft aandragen

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Voldoende om de feedback van de status "Closed" te voorzien :) Dus microsoft lijkt het als voldoende opgelost te zien. Ik ben het overigens met jou eens, dit is geen oplossing.

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10 10:47
Verwijderd schreef op woensdag 18 juni 2008 @ 14:21:
[...]


De pagina van Microsoft Connect had ik idd ook al gelezen via een verwijzing van msdn. Maar dat is wat mij betreft geen oplossing die de mensen van Microsoft aandragen
Hoezo is het geen oplossing? Wat verwacht je dan precies van die tool?
In principe genereert hij toch de service interface met zijn attributen? Als ik svcutil gebruik om een client proxy te genereren van een service, en ik open de cs file die hij genereert dan zit ik tegen een exacte copie te kijken van mijn server interface. Dus tjah, wat bedoel je dan?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 18-11 08:25

Janoz

Moderator Devschuur®

!litemod

@Deathraven: Wat hier wordt bedoeld is dat je uit een WSDL natuurlijk ook een server skeleton/implementatie zou kunnen genereren. Zeker in een omgeving waar een nieuwe implementatie van de server gemaakt moet worden voor een al bestaande WSDL is dat uitermate handig. Dat jij dat nog niet tegen gekomen bent betekent natuurlijk niet dat het zeldzaam is of nooit voorkomt..

En nee, een oplossing waarbij je handmatig nog van alles moet lopen omvrotten in gegenereerde code is geen oplossing.

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


  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10 10:47
Janoz schreef op donderdag 19 juni 2008 @ 10:22:
@Deathraven: Wat hier wordt bedoeld is dat je uit een WSDL natuurlijk ook een server skeleton/implementatie zou kunnen genereren. Zeker in een omgeving waar een nieuwe implementatie van de server gemaakt moet worden voor een al bestaande WSDL is dat uitermate handig.
Dat begrijp ik
Dat jij dat nog niet tegen gekomen bent betekent natuurlijk niet dat het zeldzaam is of nooit voorkomt..
Dat heb ik ook niet gezegd.
En nee, een oplossing waarbij je handmatig nog van alles moet lopen omvrotten in gegenereerde code is geen oplossing.
Je hoeft ook niks om te vroeten. Je kunt direct de interface uit die gegenereerde code gebruiken.
Enigste wat hij nu doet is naast de server interface en toebehoren ook een client proxy erbij genereren.
Ik zie nog steeds het probleem niet.

[ Voor 12% gewijzigd door D-Raven op 19-06-2008 14:11 ]

Pagina: 1