Two-tier applications have long been the source of inflexibility and brittleness because data access logic is intermingled with the UI. Using the N-tier pattern has been a known solution to this problem for many years. So why do we still have data and UI mixed, even in new applications? Primarily because it is too complex to avoid it. The .NET Business Logic Layer provides a lightweight pattern that makes it easy to write and test your business logic, provides a non-leaky abstraction of the Data Access layer, and makes it a joy to consume directly from the client--whether across a network boundary as with Silverlight or in the space process as with ASP.NET.