2017-07-29 3 views
0

Wir beginnen ein neues Projekt und versuchen, einige Konzepte aus Domain-driven Design zu implementieren. Wir planen folgende Schichten haben:Anwendung Service-Code in WebAPI

  1. Web Interface (WebAPI)
  2. Application Services (Bibliothek)
  3. Domain Services (Bibliothek)
  4. Data Access Services (Bibliothek)

Wir denken darüber nach, Web-Interface und Application Service miteinander zu verbinden. Unser webAPI wird also mit Repositories, Domain-Model- und Domain-Services kommunizieren.

Ist das in Ordnung oder sollten wir separate Projektformular-Anwendungsdienste haben und WebAPI sollte nur mit Anwendungsdiensten kommunizieren?

Dank

+1

Es ist wahrscheinlich nichts falsch daran, grobkörnige Anwendungsdienste zu haben, die als Vermittler fungieren, aber ich tendiere dazu, ohne diese zu beginnen, bis ich sie brauche. Manchmal ist die Delegation einfach zu dünn, um mich damit zu beschäftigen, z. B .: 'SomeService.Find (id)' vs. 'SomeQuery.Find (id)' ... nicht viel drin :) –

Antwort

2

HTTP sollte als eine potenziell viele Access-Ports zu sehen Ihre Anwendungsdienste zu erreichen. Wenn Sie ganz sicher sein können, dass Sie nie mit einem anderen Kommunikationskanal als HTTP zu Ihrer Anwendung sprechen müssen, würde ich sagen, dass es keine separate Anwendungsschicht gibt.

Ich würde jedoch auch sagen, dass es sehr schwierig ist, vorherzusagen, wie sich die Anwendungsbedürfnisse entwickeln werden und dass das Hinzufügen einer zusätzlichen indirekten Schicht, um die Anwendungsschicht sofort zu trennen, nicht sehr kostspielig sein sollte (es ist nur Delegation) Ja, würde ich.