2016-03-24 3 views
0

Die Rückgabe von JSON-Daten über eine Web-Anfrage hat uns dazu gebracht, es leichter und schneller zu machen. Also habe ich mich gefragt, was ist besser zurückzugeben: ein anonymer Gegenstand oder ein DTO?Ist der anonyme Typ eine bessere Wahl für DTO/POCO?

ich einige Bedenken über Architektur gelesen haben: http://www.codeproject.com/Articles/1018716/Replacing-DTO-with-Anonymous-object und die Verwendung von DTOs: Entity Framework is Too Slow. What are my options? Aber es ist nicht mein Fokus, möchte ich wissen, was bei der Rückkehr eine Web-Anfrage leichter und schneller ist.

Danke!

+0

Ich würde nicht viel Gewicht in diesen CodeProject Artikel legen. Es ist von einem Mann geschrieben und hat kein Feedback. Er geht nicht wirklich in den Nachteil, zeigt nur, wie es gemacht werden kann. –

Antwort

2

Es sollte keinen signifikanten Unterschied hinsichtlich "Gewicht" oder Leistung geben. Anonyme Objekte sind Klassen wie DTOs, sie sind nur nicht zur Entwurfszeit definiert, sie sind vom Compiler definiert.

Die disadvangates der Verwendung anonymer Typen ist, dass sie außerhalb der Methode, die es definiert, nicht typsicher sind. Es "funktioniert" beim Zurückgeben von JSON, da es Reflektion verwendet, um alle Eigenschaften des Typs wie eine "normale" Klasse zu erhalten.

Der Vorteil des anonymen Typs ist die reine Codierungseffizienz - Sie müssen keinen "Typ" für die Verwendung innerhalb einer einzigen Methode definieren. Wenn dieser Typ jedoch von der Methode (entweder direkt oder über JSON) verfügbar gemacht wird, sollten Sie einen Typ dafür definieren.