Wir bauen unsere erste kleine Implementierung von ServiceStack auf und wir benötigen einige Erläuterungen zu DTOs, die sich in einer separaten Assembly befinden, die sich der Client und der Server teilen.ServiceStack DTO Assembly
The WIKI page for the new API empfiehlt für DTO
In Service Entwicklung Ihre Dienste DTOs Ihre Technologie agnostisch Service Layer zur Verfügung, die Sie sauber und als ‚Abhängigkeit frei‘ wie möglich für maximale Zugänglichkeit und potenziellen Wieder behalten wollen -benutzen. Unsere Empfehlung ist es, Ihre Service-DTOs in einer separaten, weitgehend dep-freien Montage zu halten.
Es gibt auch diese Schnipsel
* Aber lassen Sie uns sagen, dass Sie die normale Route nehmen die DTOs kopieren (entweder als Quelltext binärer Form), so haben Sie so etwas wie dies auf dem Client:
[Route("/reqstars")]
public class AllReqstars : IReturn<List<Reqstar>> { }
The code on the client now just becomes:
var client = new JsonServiceClient(BaseUri);
List<Reqstar> response = client.Get(new AllReqstars());
, die an die/reqstars Route eine GET-Web-Anfrage macht. Wenn eine benutzerdefinierte Route nicht auf dem Client vorhanden ist, greift sie automatisch auf die vordefinierten Routen von ServiceStack zurück.
Meine Frage ist ... ist die „weitgehend dep frei“ Montag erfordert noch eine Abhängigkeit von ServiceStack aufgrund der Strecken Attributs auf den DTO-Klassen?
Danke mythz. Ich bin dafür, die DTOs in einer separaten Versammlung zu halten, ich war mir nur nicht sicher, ob es eine Methode gab, diese Versammlung auf Null zu setzen. –
@mythz Ich bin in Ehrfurcht vor ServiceStack und ein wenig überwältigt von der Menge an Informationen (viele widersprüchlich). Diese Antwort hat mir auf dem richtigen Weg geholfen, eine ServiceModel-DLL mit meinen DTOs zu erstellen, aber ich habe in ServiceStacks Dokument nichts gefunden, was darauf hinweist. Es gibt nirgendwo dort, das besagt, dass die einzige benötigte Referenz ServiceStack.Interfaces ist. Die RESTIntro ServiceModels enthalten Verweise auf viele DLLs, daher ist es auch verwirrend. Gibt es ein nugget-Paket, um nur diesen minimalen Verweis auf ein ServiceModel zu erhalten? – Loudenvier
@Loudenvier ServiceStack.Interfaces befindet sich im ServiceStack.Common NuGet-Paket, NuGet hat im Moment nichts mehr zu tun (es wird nach dem großen NuGet-Re-Faktor geben). In der Praxis ist dies kein Problem, da "ServiceStack.Common" das min-Paket ist, das benötigt wird, damit Clients die [typisierten .NET Clients von ServiceStack verwenden können] (https://github.com/ServiceStack/ServiceStack/wiki/C% 23-Client). Im Allgemeinen sollten Sie danach streben, Ihre Servicemodelle entlastungsfrei zu halten und die von den Kunden benötigten Depressionen/Reibungsverluste zu minimieren. – mythz