I recently worked through Jens Mikkelsen's excellent series on building a Sitecore site. In his article on architecture, he makes an argument that the classic N-Tier approach of separate presentation, business, and data layers is not well suited to Sitecore development: