title: Proper initialization of assemblies in n-tier application
body: <p>I have a multi tier desktop application with the following layers: UI, UI Logic, BLL and DAL. My BLL layer has a couple of entry points that are public. I want my application to run some synchronization methods. I think this should take place in the BLL layer as it does not have anything to do with the UI and I may change out the UI at a later date. Should I have all of my public entry points into the BLL require an instance of an object called AssemblyInitialized (a singleton) that makes sure the assembly has been initialized correctly and timers started. If one of my sync timers error I can throw an exception up to the next layer and stop the application. If not, I'd like to know what others might be doing in similar situations.</p>