Situatie
We hebben een WebService die datasets teruggeeft aan de ene kant, en een (random) aantal aanroepende applicaties aan de andere kant. Omdat we de datasets die in de webservice gebruikt worden typed willen kunnen gebruiken en door moeten kunnen geven binnen verschillende lagen van onze applicaties, hebben we de datasets in een common DLL gezet welke gereferenced wordt zodra de webservice in een applicatie gebruikt gaat worden.
Een aantal basisopmerkingen:
- De webservice wordt alleen intern (binnen het bedrijf) gebruikt
- De keuze voor een webservice voor deze applicatie ligt vast
Probleem
Zodra een webreference gelegd wordt naar de webservice welke de datasets teruggeeft, worden de datasets aangemaakt aan de aanroepende kant. Binnen reference.cs wordt veel code gegenereerd voor de datasets en ook de XSD's zijn allemaal terug te vinden bij de web references. De datasets kunnen echter niet gecast worden naar hun originele vorm: de vorm die opgeslagen zit in de common DLL welke (dus) wel gereferenced is!
Oplossing
We hebben reference.cs aangepast zodat de gegenereerde datasets niet meer beschikbaar zijn, en een referentie naar de common DLL met de 'juiste' datasets toegevoegd, waardoor binnen de aanroepende applicatie de datasets gewoon gebruikt kunnen worden. Ook de gegenereerde XSD's zijn verwijderd. De situatie werkt!
Vraag
En dan heb je toch een vraag
??? Ja. Omdat de applicatie die we aan het maken zijn (de webservice) zeer waarschijnlijk generiek gaat worden voor het gehele bedrijf, zullen in de toekomst meer applicaties deze webservice gaan gebruiken. Het is nu geen enkel probleem om dit werkend te krijgen, maar in de toekomst moeten bij gebruik van de webservice dezelfde acties uitgevoerd worden die wij nu hebben uitgevoerd. Het zou een stuk netter zijn om de datasets niet automatisch te laten genereren... Heeft iemand hier ervaring mee? Wellicht dat een van de vele handige tooltjes bij Visual Studio ons hierbij uit de brand kan helpen?
Disclaimer
Ja, ik heb best wel een en ander opgezocht op google en hier op GoT. En zelfs MSDN is voorbij gekomen op mijn scherm. Misschien heb ik op de verkeerde termen gezocht, maar ik kwam dit zo 1-2-3 niet tegen...
We hebben een WebService die datasets teruggeeft aan de ene kant, en een (random) aantal aanroepende applicaties aan de andere kant. Omdat we de datasets die in de webservice gebruikt worden typed willen kunnen gebruiken en door moeten kunnen geven binnen verschillende lagen van onze applicaties, hebben we de datasets in een common DLL gezet welke gereferenced wordt zodra de webservice in een applicatie gebruikt gaat worden.
Een aantal basisopmerkingen:
- De webservice wordt alleen intern (binnen het bedrijf) gebruikt
- De keuze voor een webservice voor deze applicatie ligt vast
Probleem
Zodra een webreference gelegd wordt naar de webservice welke de datasets teruggeeft, worden de datasets aangemaakt aan de aanroepende kant. Binnen reference.cs wordt veel code gegenereerd voor de datasets en ook de XSD's zijn allemaal terug te vinden bij de web references. De datasets kunnen echter niet gecast worden naar hun originele vorm: de vorm die opgeslagen zit in de common DLL welke (dus) wel gereferenced is!
Oplossing
We hebben reference.cs aangepast zodat de gegenereerde datasets niet meer beschikbaar zijn, en een referentie naar de common DLL met de 'juiste' datasets toegevoegd, waardoor binnen de aanroepende applicatie de datasets gewoon gebruikt kunnen worden. Ook de gegenereerde XSD's zijn verwijderd. De situatie werkt!
Vraag
En dan heb je toch een vraag
Disclaimer
Ja, ik heb best wel een en ander opgezocht op google en hier op GoT. En zelfs MSDN is voorbij gekomen op mijn scherm. Misschien heb ik op de verkeerde termen gezocht, maar ik kwam dit zo 1-2-3 niet tegen...