2012-08-17 6 views
12

Seit 2011sp1 kommt Tridion mit einem vorkompilierten Core-Service-Client. Gibt es noch einen Grund, einen eigenen Proxy zu erstellen, indem Sie eine Service-Referenz hinzufügen? Oder ist diese ältere Methode jetzt offiziell veraltet?Vorkompilierter Core-Service-Client im Vergleich zur Generierung eines eigenen Proxys

+0

Vielleicht konfiguriert dringend etwas setzen könnte „offiziell veraltet“, aber wir fangen sicherlich einige Konsens zu sehen. :-) –

+0

Das war der Punkt der Frage, ich denke .. – Quirijn

Antwort

13

Lassen Sie sich an Vorteilen von kompilierten DLL vs Service Referenz einen Blick:

  • Core-Service wächst und es ist ein ziemliches Problem Dienstverweis Bezug auf langsameres Netzwerk zu erzeugen. Je größer der Kerndienst, desto schwieriger wird es, eine Servicereferenz zu generieren (es gibt natürlich Umgehungslösungen)
  • Kompilierte DLL wird mit "korrekten" Einstellungen kompiliert. Es gibt einige Optionen, die Sie beim Generieren von Servicereferenzen festlegen können, z. B. Rückgabetypen und Typen, die von anderen Assemblys wiederverwendet werden sollen. Durch die Verwendung kompilierter DLL sind Sie sicher, dass Sie alles richtig machen.
  • Sie können mit Ihrer app.config ziemlich verwirren, wenn Sie die Servicereferenz aktualisieren. Ich denke, das Aktualisieren von DLL und Config ist ein bisschen einfacher.
  • Es ist schwierig, Service Referenz zu erzeugen, wenn Sie LDAP oder SSO haben oder HTTPs
+1

Danke für die Erklärung. Ich habe gerade einige Tests durchgeführt und festgestellt, dass der vorkompilierte Client (zumindest für Read-Aktionen) um 8% schneller war. Das versiegelt es :) – Quirijn

+1

Ich würde hinzufügen, dass die Verwendung des "versendeten" Proxy auch einen Vorteil der Standardisierung bietet. Ich kann Code gegen den Proxy schreiben, den Code anderen zur Verfügung stellen und sie können ihn einfach benutzen. –

8

Der vorkompilierte CoreService-Client wird standardmäßig verteilt, um Implementierern zu helfen. Das Erzeugen des eigenen Proxys ist etwas schwierig (Sie müssen möglicherweise einige Konfigurationseinstellungen in SVCutil ändern).

Der vorkompilierte Core-Service-Client verwendet immer den neuesten Endpunkt. Abhängig von Ihrer Situation müssen Sie möglicherweise Ihren eigenen Proxy generieren, wenn Sie immer eine Verbindung mit dem alten Endpunkt herstellen möchten.

Andernfalls können Sie den vorkompilierten Client verwenden, der sicherstellt, dass Sie eine Verbindung mit dem neuesten Endpunkt herstellen, aber möglicherweise Ihren Client beschädigen (möglicherweise müssen Sie etwas reparieren oder neu kompilieren).