.NET
  Home arrow .NET arrow Page 5 - Introduction to Application Frameworks
ASP Free Forums 
.NET  
ASP  
ASP Code  
ASP.NET  
ASP.NET Code  
BrainDump  
C#  
Code Examples  
Database  
Database Code  
IIS  
Microsoft Access  
MS SQL Server  
Visual Basic.NET  
Windows Scripting  
Windows Security  
XML  
ASP Web Hosting  
ASP.NET Web Hosting 
Mobile Linux 
App Generation ROI 
Windows Web Hosting
 
IBM® developerWorks 
Sun Developer Network 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
.NET

Introduction to Application Frameworks
By: Apress Publishing
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 5 stars5 stars5 stars5 stars5 stars / 12
    2005-01-18

    Table of Contents:
  • Introduction to Application Frameworks
  • What Is an Application Framework?
  • A History of Application Frameworks
  • Why Use an Application Framework?
  • The Economics of Application Frameworks

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
    ADVERTISEMENT


    Introduction to Application Frameworks - The Economics of Application Frameworks


    (Page 5 of 5 )

    You have just seen what wonderful things frameworks can do for our applications; however, while application frameworks are the best choice in many circumstances, that doesn’t mean they are always the right choice. In exploring the possibilities offered by application frameworks, we must not lose sight of what we are trying to accomplish with the application we are developing. There are two areas in developing and using application frameworks that you need to consider in determining whether an application framework will help achieve your objectives: framework development and user training.

    Framework Development

    Developing an application framework is not an easy and inexpensive effort. In order to develop a highly usable and extensible framework, you need first to find individuals who are not only expert in the business domain, but also expert in software design and development. It is important that those who are developing the framework be competent in both business knowledge and software development. Without business expertise, you cannot create the business-domain–specific framework layers that developers rely on to offset their lack of knowledge of the business domain. Without the technical expertise in software development, you cannot transfer the concept of the framework from theory to the concrete framework code that developers can reuse and extend. Finding people who have expertise in both the business domain and software development is the first hurdle to leap over in the development of a high-quality framework.

    Clearly, the design and implementation of the framework demands a significant amount of human resources. Developing the application framework requires different skills from those used in developing an application. The framework designer must determine how developers can benefit from the services and architecture provided in the framework, how to abstract certain common logic in the application so that developers can reuse such logic throughout the framework, and how to provide the hot spots, or flexibility points, at the right place in the framework so that developers can plug in their code to achieve specific results.

    Some of the work involved in creating a framework is abstract and relies heavily on assumptions about how developers will use the framework to build the application. It is difficult to get everything right on the first try, since the design can only guess at how the final application will look and how it will be built to solve the business problem. Certain framework components that were originally thought of as shared by multiple parts of the application may turn out not to be, and they should be taken out of the framework. Certain bits of application code that were originally supposed to be unique in different scenarios may turn out to share certain common abstractions, and they should be added to the framework to be shared throughout the application. After the framework has been deployed, new business requirements or changed requirements may result in the addition of new components to the framework and a modification of the existing framework components. As you may imagine, it takes a series of iterations to get the framework right for the applications that are built on top of it. The development cycle for a framework is similar to that of a regular application, namely, Analysis, Design, Development, and Stabilization in a reiterative fashion. Framework development is very much an evolving task, and it demands continual development and support efforts to ensure its relevance.

    User Training

    Because the users of the framework are the developers who are building the application, user training for the framework means training the developers to use the application framework. In order to take advantage of what the framework offers, developers must have sufficient knowledge about the application framework and how to use it in their development. However, learning about a framework can be a time-consuming process. There are several factors that contribute to the difficulties in learning an application framework.

    By its nature, the application framework is an incomplete application. Many missing parts of the framework will need to be filled in with application code written by the developers. However, before the application is complete, the framework itself may look obscure to many developers, since not every piece in the framework is well connected from beginning to end.

    Application frameworks also contain much wiring needed to control the process flow throughout the framework. Although one of the goals of the framework is to hide such complex wiring from the developer, during training, developers may have a harder time understanding how the framework works as it does, because much of this wiring and the dependencies among classes in the framework are indirect and complex.

    As with any new product and programming model, an application framework contains many APIs, services, and configuration settings that are strange to developers, and it will take some time for developers to work with the framework before they become fluent with it and fully productive in developing applications based on it.

    Despite this learning curve, we can speed up developers’ adaptation of the framework by creating well-written documentation and samples that show developers how the framework is used in various scenarios. In the case of programming, an example is worth a thousand words and pictures.

    With the potential development cost and efforts in mind, we can weigh whether we need an application framework. Not every application needs to be built on an application framework, and many applications have been successfully developed without one. There are situations in which you want a quick solution produced on a limited budget, and thus the savings on the development effort through the framework may not cover the extra development effort invested in creating the framework. In contrast, there are situations in which an application framework is shared by multiple applications and would significantly reduce the overall development effort. There are also situations in which you want to invest in the application framework today so that it can provide an extensible and reusable foundation for future development. What it comes down to is whether an application framework will help you achieve the objective you set for your project. Developing an application framework is like investing in the stock market; good investments are not judged on whether they are making money today, but on whether they support your investment objectives.

    Summary

    In this introduction to application frameworks, you have learned the definition of the application framework and have read a brief history of it. We then looked at how we can leverage a framework in application development to reduce the overall development effort. We discussed the benefits of using an application framework as a starting point for the business application we are developing: modularity, reusability, extensibility, simplicity, and maintainability. We also discussed some of the cost of developing and using a framework, such as additional development effort and developer training issues. Knowing both the benefits and costs of developing an application framework helps us make the right choice whether one should be used in a particular scenario. In the next chapter, we will look at what is inside a framework, and see how to develop an application framework that is both reusable and extensible through the use of object-oriented techniques. 

    This chapter is from Developing Application Frameworks in .NET by Xin Chen (Apress, 2004, ISBN: 1590592883). Check it out at your favorite bookstore today. Buy this book now.


    DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.

     

    .NET ARTICLES

    - Using CrystalReportViewer to Display Crystal...
    - Creating Summary .Net Crystal Reports
    - More on Commands, Input and the WPF
    - Grouping and Aggregating When Querying LINQ ...
    - Commands, Input and the WPF
    - Keyboard and Ink Input with WPF
    - Mouse Input and the WPF
    - Input with Windows Presentation Foundation
    - Introducing LINQ with XML and Databases
    - An Introduction to LINQ
    - Querying LINQ to SQL: Basics
    - Completing a Simple Storefront with LINQ
    - Knowing Your Environment: the System.Environ...
    - Creating the Home Page for a Simple Storefro...
    - LINQ Quickly with Language Integrated Queries

     
    Best Practices for Windows Vista Migration Presentation
    Dell and Microsoft recently held a series of face-to-face seminars entitled, &qu....

     
    Creating a Culture for Code Reuse
    If you oversee development teams you know that like it or not proprietary and ex....

     
    Keys to Web Application Acceleration: Advances in Delivery Systems
    Accelerate Web apps by up to 5x. Ensure significantly faster access to the Web a....

     
    Optimizing Application Monitoring
    Tired of finding out from your customers that you're offline? This white paper e....

     
    Solaris to Solaris Migration -- Migrating applications from Sun SPARC to Dell PowerEdge R900
    This comprehensive Migration Guide reviews the approach that Principled Technolo....

     




    © 2003-2009 by Developer Shed. All rights reserved. DS Cluster 4 hosted by Hostway
    Stay green...Green IT