<p>I've read about and dabbled with some including active record, repository, data transfer objects.  Which is best?</p>

'Best' questions are not really valid.  The world is filled with combination and variations.  You should start with the question that you have to answer:  What problem are you trying to solve.  After you answer that you look at the tools that work best with the issue.