A SUCCESSFUL GENERAL-PURPOSE framework must be designed for a broad range of developers with different requirements, skills, and backgrounds. One of the biggest challenges facing framework designers is to offer both power and simplicity to this diverse group of customers.
Another important goal of a managed framework designer must be to offer a unified programming model regardless of the kind of application1 a developer writes or the programming language the developer uses.
1. For example, a framework component should have the same programming model whether it is used in a console, Windows Forms, or ASP.NET application, if at all possible.
By using widely accepted general software design principles and following ...