Frage

Ich bin mit MSMQ als eine Möglichkeit, asynchrone SOA zur Verfügung zu stellen. Bitte beachten Sie den Code unten, da es ziemlich schwer zu erklären. Ich versuche, den besten Weg, um herauszufinden, es zu tun.

//another method reads off MSMQ and passes the Message into this method
public void ReadMSMQAndAction(Message m)
{
  var e = m.Entity;

  /* this is really bad, but i some how still need some 
   * kind of traffic cop to direct action */
  switch typeof(m.Entity)
    case Order.GetType()
      switch e.Action
        case "SAVE"
          //todo OrderRepo Save
}

//Message gets searlized and put into MSMQ
public class Message<T>
{
  public T Entity { get;set; }

  /* should this be string?
   * or some kind of rule i.e. "ClassName:MethodName" etc? */
  public string Action { get;set; } 
}

public class OrderRepo
{
  public void Save(Order o) { /* todo */ }
  public void Delete(Order o) { /* todo */ }
  public void Update(Order o) { /* todo */ }
}

Wie der Code komplexer wird wird es wirklich schwer zu verwalten. Alle Vorschläge sind willkommen!

War es hilfreich?

Lösung

Schauen Sie in die Delegierten verwenden. Sie ermöglicht es Ihnen, den aktuellen Methodenaufruf in das MSMQ zu übergeben, so dass Sie dann die Delegaten / Aktion abfeuern können, wenn man es aus der Warteschlange abgerufen werden.

Andere Tipps

Verwenden Sie WCF. Microsoft hat es eingewickelt, so dass der Service (im Sinne von SOA) als Methodenaufruf präsentiert, der Transport MSMQ zu sein.

Der Vertrag ist zwangsläufig eine Art und Weise, und die Tatsache, dass der Transport MSMQ sein geschieht ist völlig nebensächlich zu dem Dienst und seine Kunden (außer soweit diese Wahl zwingt einen Einwegvertrag).


Auf einer anderen Anmerkung, ich fühle mich gezwungen, zu kommentieren: bis Sie klar und prägnant die Absicht und Umsetzungsstrategie auszudrücken, Sie haben nicht eine klare und vollständige Vorstellung davon, was Sie erstellen, und Ihre Chancen auf Erfolg sind gering besten .

Software-Entwicklung beginnt mit der vagen maunderings von Management und Vertriebsmitarbeiter zu nehmen und die Anwendung gesunden Menschenverstand in ihrem Namen, mit Zyklen von Feedback, bis eine Seite das Interesse verliert, läuft das Budget aus, oder Sie produzieren, was die Projektträger als betrachten klare und präzise Wiedergabe von, was sie sich vorstellen, dass sie während der ersten angeregten Arm winken.

Wenn Sie kann nicht erklären, was Sie tun, dann müssen Sie nicht wissen , was Sie tun. Zeit zu stoppen und zu denken, bis Sie tun.

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