[C# / .NET] Naming van webreference

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Dit is niet zozeer een onoplosbaar probleem, maar meer een irritatie die de purist in mij graag opgelost ziet worden. Stel ik heb twee webservices draaien op hetzelfde domein:

http://domein/Service1.asmx
http://domein/Service2.asmx

Als ik deze als web reference vervolgens toevoeg aan een project moet ik beiden (uiteraard) een andere naam geven. Als ik ze daar dan iets als A.B.Service1 en A.B.Service2 noem dan zitten ze allebei in dezelfde namespace (wat je verwacht als ze ook op hetzelfde domein draaien, en serverside horen ze ook gewoon in dezelfde namespace).

Maar, om de services nu te gebruiken moet je A.B.Service1.Service1 en A.B.Service2.Service2 respectievelijk instantieren. Hoe noemen jullie normaliter jullie webservices zodat je niet dit soort rare dingen krijgt?

(oh, mocht het nog uitmaken, gaat hier om .NET 2.0, weet niet of dit in 3.0/3.5 anders werkt.)

[ Voor 5% gewijzigd door Grijze Vos op 27-03-2009 09:15 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
In die situatie ziet het er misschien raar uit, maar als je webservice aanroepen gebruik maken van eigen objecten, dan wordt het ineens weer logisch. Stel:

Ik heb een webservice om iets mee te bestellen, genaamd OrderingService, die een order object gebruikt om bijvoorbeeld orders mee aan te maken en op te slaan.

Dit zou kunnen leiden tot de volgende code:
C#:
1
2
3
4
OrderingService.OrderingService service = new OrderingService.OrderingService();
OrderingService.Order order = new OrderingService.Order();

service.CreateOrder( order );


Hoewel je dus altijd een redundant lijkende naamgeving hebt, is er wel degelijk een zinvol verschil tussen de naam van de webreference en de naam van je service class.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Het is helemaal niet 'normaal' dat ze in dezelfde namespace zitten. Beide webservices kunnen bijvoorbeeld "Persoon" objecten declareren. Als ze in dezelfde namespace zouden zitten zou je een conflict krijgen.

Als het het exact dezelfde service is moet je gewoon 1 instances maken van hetzelfde object, maar verbinding leggen naar de andere service.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • dotcode
  • Registratie: Augustus 2003
  • Laatst online: 08:42

dotcode

///\00/\\

Hydra schreef op vrijdag 27 maart 2009 @ 13:09:
Het is helemaal niet 'normaal' dat ze in dezelfde namespace zitten. Beide webservices kunnen bijvoorbeeld "Persoon" objecten declareren. Als ze in dezelfde namespace zouden zitten zou je een conflict krijgen.

Als het het exact dezelfde service is moet je gewoon 1 instances maken van hetzelfde object, maar verbinding leggen naar de andere service.
Conflicten kun je alleen krijgen als je niet op de juiste manier je services genereerd. In 2005 en eerder kan je gewoon vanaf de commandline verschillende services met gedeelde objecten genereren (WSDL.exe). En in 2008 kan je dat doen bij de instellingen van de services (hoe er op bestaande object moet worden gemapped).