title: Class design for an app that reads data from Active Directory
body: <p>I am hoping someone can help me regarding design and architecture for an application. </p>
  
  <p>The application is basically a service written in C#. The purpose of this service is mainly to read data from Active Directory and Save it to a local database (that data is later going to be used for reporting purpose but that's not in the scope of this application). </p>
  
  <p>The attributes for an Active Directory object and my database fields doesn't always have one to one mapping. So for example, let's say I read 3 attributes of a User AD object and based on those 3 attributes I set a flag in database column (so here in this case it's 3-1 mapping between AD attribute and database field). </p>
  
  <p>I am also going to collect the extended attributes from Active Directory (those attributes I am going to read from an XML file and I will pass it to Active Directory API query). </p>
  
  <p>There could also be custom AD objects (not necessary AD object like User, Contacts, Groups etc. But they can be a completely new custom object that is not present in AD by default OR could be an extended object like a special user extending from standard User AD object). For reading AD attributes I am using System.DirectoryServices API of .Net.</p>
  
  <p>Initially I was exploring Domain Driven Design to implement this application, but I don't have much business logic and there could be a lot of unknown entities (custom AD objects). </p>
  
  <p>I was wondering what is the best way to design such an application? </p>