c# .net more detailed three-tier architecture