title: Circular dependency best practice
body: <p>What is the best way to solve this.</p>
  <p>I have projects the following projects:</p>
  <blockquote>
  <p>Model</p>
  <p>Logic (references model)</p>
  <p>Synchronization (references both model and logic)</p>
  <p>Web (references all projects)</p>
  </blockquote>
  <p>All runs fine, the web project fires the synchronization project, which uses model and logic, and does it's work.
  But now, some times, the logic project also has to call a method in the synchronization project, but this reference cannot be added because of the circular dependency that is not allowed.</p>
  <p>What would be the easiest way to make this whole thing work?</p>
  <p>A bit more on the synchronization project.
  Synchronization works on it's own. It runs processes that bring data from an external database to the database in my application. It does this by creating objects based on the model and saves them by using the logic.
  This works fine, and gives us the ability to simply create another synchronization project/assembly that could do the same thing, but targeted at a completely different type of database.</p>
  <p>The problem is, that we now, from time to time, want to call a method in the sychronization project to update some data in the other direction / to the external database.</p>