2010-12-09 9 views
1

Bei der Verwendung des Assistenten für konsumierte WCF/generierte Elemente enthalten generierte Elemente die Schemas, Bindungen und auch ODX-enthaltende Porttypdefinitionen, um den Service zu nutzen.Hinweise zur Trennung von Schema- und Orchestrierungsassemblys für WCF-generierte Elemente

Und es ist üblich/empfehlen, Schemas von Orchestrierungen in separate Assemblys zu trennen. Im Falle von WCF-generierten Artefakten ist der Aufwand zur Trennung dieser Ports jedoch beträchtlich, da jeder Porttyp dann so bearbeitet werden muss, dass er auf die Referenzbaugruppe zeigt. Dies kann bei einem Service mit vielen Operationen (und einer Anforderung) mühsam sein/Antwort für jeden). Und das wird schlimmer, wenn sich der WCF-Dienst ändert und neu generiert werden muss.

Also, wenn ich fragen darf:

  1. Was tun Sie betrachten hier best practice? Ich möchte die Port-Typen und Dummy-ODX in der Schema-Assembly behalten.
  2. Verschieben Sie die generierten Port-Typen aus dem Dummy ODX generiert und löschen Sie dann die Dummy ODX?

Vielen Dank!

Antwort

3

I was du versuchst zu schwer.

Was ich tun würde, ist die Service-Referenz des konsumierten WCF-Dienstes in einer eigenen Orchestrierung (ohne Logik). Nur eine einfache nackte Orchestrierung mit nur den dort definierten Porttypen. Diese Orchestrierung kann dann in einer separaten Assembly erfolgen.

Auf diese Weise können Sie diese Orchestrierung aus anderen Projekten beziehen.

Sie sollten nicht versuchen, die generierten Schemas von den Porttypen zu trennen. Diese sind untrennbar miteinander verbunden, denn sie sind alle Teil des "Dienstleistungsvertrags".

+0

Danke - Ihr Rat ist gut gemacht. Das Hinzufügen von generiertem Code allein/unberührt überschreibt andere Probleme. Um es Kontext zu geben, entstand die Notwendigkeit, das allgemeine WCF-Schema zwischen mehreren Orchestrierungen in mehreren BizTalk-Anwendungen zu teilen. Im Nachhinein wäre eine Alternative, ein zusätzliches kanonisches Schema für das Triggern zu verwenden, und auf diese Weise würden die WCF-generierten Elemente nur von der "primären" Anwendung benötigt. – StuartLC

+1

Um zu bestätigen, dass Maxines Modell gut funktioniert, lassen Sie die generierten Artefakte an einer Stelle - das Token ODX mit den generierten Port-Typen und MultiPart-Schemas - und in einer separaten Assembly. Löschen Sie auf diese Weise einfach alles und erstellen Sie die generierten Elemente erneut, wenn sich die Peer WCF-Dienstschnittstelle ändert. Ein Nachteil der separaten Assembly besteht darin, dass Sie den Typmodifikator (Scope-Sichtbarkeit) für den Port und die Schemas manuell von "Intern" auf "Öffentlich" ändern müssen, bevor auf sie über eine Orchestrierungsassembly zugegriffen werden kann. – StuartLC