Unlike many other languages, C# lacks a modern problem decomposition mechanism to cope with features like logging or caching, design patterns like INotifyPropertyChanged, or threading models like immutable or thread affine.
Therefore, developers must write tons of low-level repetitive code that requires little ingenuity but is highly error-prone: the notorious boilerplate.
It is like building a huge warehouse with bricks and mortar,
because we don't have concrete panels yet.
Boilerplate leads to increased development time; boredom and frustration; and writing it is a waste of time.
Boilerplate causes too many bugs; makes the code hard to fit in your brain; and makes hardening features unaffordable.
Boilerplate makes your business logic unreadable; is often inconsistently implemented across the team; and is difficult to refactor.
Aspects are like custom attributes that alter the way your code executes. They are special classes that describe how the compiler should enhance your source code. Aspects can also validate that hand-written code complies with predefined rules.
You can think of PostSharp as a next-generation aspect-oriented framework that includes the best from static analysis and metaprogramming.
At run time, your application is fast because the hard work was done at build time.
Your source code remains crystal clear.
PostSharp moves your implementation workloads from the team to the compiler; helps you focus on meaningful and inventive tasks; and makes the most of your team
PostSharp leads to less boilerplate which means fewer bugs; helps coding at a right level of abstraction and hardening becomes affordable
PostSharp helps in writing crystal-clear code; improves code consistency and compliance; and improves architecture