Application Architecture Question - C#