Frage

Bei der Verwendung von MVC und Ihre Daten in Viewmodel Umwandlung, die die zulässige Art und Weise, dies zu tun?

Im Moment bin ich AutoMapper mit, dies zu tun und sein gut funktioniert. Allerdings habe ich in einem Blog-Artikel (ich glaube, es war Rob C) einen Konstruktor auf der Ansichtsmodell, welches die Anzahl der erforderlichen params nimmt und dann erzeugt das Ansichtsmodell

Eg var RetViewModel = new ViewModel(MyObject);

Dies scheint eine anständige Art und Weise, es zu tun, Gedanken?

War es hilfreich?

Lösung

Die „akzeptierte Art und Weise“ ist in der Regel die Art und Weise, die am besten für Sie.

Ich habe noch nie von AutoMapper gehört und als ich in sie sah, was ich bekam, war, dass es schafft magisches Objekt-Mapping durch eine bestimmte Konvention folgen.

Screen unter: http://www.dnrtv.com/default.aspx? showNum = 155

. Hinweis: Ich habe nur etwa die Hälfte dieser Screencasts beobachtet, so meine Gedanken über AutoMapper sind etwas unvollständig

Ich persönlich möchte nicht, es zu benutzen, weil es erfordert, dass ich zusätzlichen Code schreiben zu kartieren / „abzuflachen“ zwischen Objekteigenschaften (Code, IMO, besser in Konstruktor Logik links). Im Screencasts Beispiel wird dieser Code in der Regel in den Aktionsmethoden einer Steuerung gelegt, die zu Blähungen führen können. (Ich mag dünne Controller / Aktionen)

Ich verwende die Methode, die Sie in Ihrem Beitrag gaben, den Konstruktor des Modells ein Objekt nehmen zu müssen und die ganze Arbeit machen.

Darüber hinaus habe ich immer einen leeren Konstruktor erstellen, die keine Parameter, so dass ich manuell die Eigenschaftswerte des Viewmodel-Objekt festlegen können.

Beispiel:

CustomViewModel myModle = new CustomViewModle
{
    Property1 = "Something",
    Property2 = 3,
    //etc..
};

Um es zusammenzufassen, versuchen beide Richtungen und sehen, was für Sie arbeitet. AutoMapper ist eine großartige Idee und ich kann es sehen, in vielen Situationen helfen, aber ich denke, an einigen Stellen, wenn Sie es verwenden Sie so viel Code werde schreiben sie verwenden, wenn Sie Objektkonstruktoren verwenden waren.

Andere Tipps

Nun, die „offiziell empfohlen“ -Ansatz ist das Modell Bindungsmechanismus behandeln, die für Sie zu lassen. Das ist einfacher und automatisiert den Prozess. Das Modell wird seine Eigenschaften aussetzen read-write zu sein für das Bindemittel um es initialisieren zu können.

Die zweite Option Sie sprechen sind wahrscheinlich Vorteile machen Ihre Modelle unveränderliche Objekte nehmen. Das heißt, Sie machen alle Eigenschaften schreibgeschützt und initialisieren sie einmal über Konstruktorparameter. Dies erfordert, dass Sie Formcollection Blick in direkt die vorgelegten Werte zu ziehen. Das ist mehr Arbeit, sondern hat seine eigenen Vorteile, wie eine Art von defensiver Programmierung zu sein.

Ich kann nicht sagen, welche Art und Weise besser ist, sind beide Optionen. Ich persönlich bevorzuge den zweiten Stil für jetzt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top