Did you know that by default LINQ to SQL defines your connection string in more than one place if you define your LINQ to SQL classes out from a web app, such as a data access layer class library?
Produce Cleaner Code with Aspects: Encapsulate common support behavior, such as exception handling, into classes that can be applied using .NET attributes.
Remove Boilerplate Code: Stop duplicating code in and across systems. Build a support framework that your team can leverage across multiple apps.
Focus on What Matters: Reduce system knowledge required across your team by factoring complex issues, such as multithreading, into aspects.