title: Domain modelling - Implement an interface of properties or POCO?
body: <p>I'm prototyping a tool that will import files via a SOAP api to an web based application and have modelled what I'm trying to import via C# interfaces so I can wrap the web app's model data in something I can deal with.</p>
  
  <pre><code>public interface IBankAccount
  {
      string AccountNumber { get; set; }
      ICurrency Currency { get; set; }
      IEntity Entity { get; set; }
      BankAccountType Type { get; set; }
  }
  
  internal class BankAccount
  {
      private readonly SomeExternalImplementation bankAccount;
  
      BankAccount(SomeExternalImplementation bankAccount)
      {
          this.bankAccount = bankAccount;
      }
  
      // Property implementations
  }
  </code></pre>
  
  <p>I then have a repository that returns collections of IBankAccount or whatever and a factory class to create BankAccounts for me should I need them.</p>
  
  <p>My question is, it this approach going to cause me a lot of pain down the line and would it be better to create POCOs? I want to put all of this in a separate assembly and have a complete separation of data access and business logic, simply because I'm dealing with a moving target here regarding where the data will be stored online.</p>