Developing Application Frameworks in .NET