I am new in a enterprise level application project and discovered that 99% of everything I've seen in code is static methods, static properties.
The application at hand is a distributed app consisting of about a handful of WCF services that communicate through a business layer with a data access layer. The data access component is a singleton. There are transactions and MSMQ queues and multiple parties calling the WCF Services to notify the DB of changes, updates made in a seperate system and so forth.
First time running a little test project I got a thread related exception using EntLib5 Logging, telling me that some code was called from an unsynchronized code block.
I am curious to know how one should go about and improve an almost-all-static design.
- Are there advantages to the current approach?
- What are the disadvantages?
- Where would you start (besides starting over) and improve all this mess?
Thanks for your opinions!