66020 members! Sign up to stay informed.

Sponsored Links


Resources

.NET Research Library
Get .NET related white papers, case studies and webcasts

News News News Messages: 0 Messages: 0 Messages: 0 Printer friendly Printer friendly Printer friendly Post reply Post reply Post reply XML XML XML

Framing the framework conversation

Posted by: Jack Vaughan on October 12, 2006 DIGG
By Jack Vaughan
UPDATED - Application frameworks have been around for a while now, but accepted best practices in application framework building still seem to be something of a new thing. The idea of the application framework emerged along with object-oriented software, when developers began to use high-level APIs to create and manage reusable component libraries.

Best practices are often best described in terms of worst practices, of course, and frameworks are no different.

One worst practice to avoid in framework creation is to look at the application framework in the same way as a typical IT application. So said Jonathan Wanagel, software development engineer, Microsoft, at this week’s Patterns & Practices West Conference in Redmond, Wash.

Wanagel, who has worked as a consultant, cataloged best practices for the Patterns & Practices group, and is now part of the team working on Codeplex, Microsoft's framework-oriented community development site, said he regularly sees people try to approach IT Application Frameworks in the same way as an IT application. When they do this, they start tripping themselves right away, he adds.

There are different classes of frameworks, said Wanagel. “There are some that make sense for IT shops and some that make sense for [Independent Software Vendors].” He said companies should think about having a specific framework team if they haven’t one already. Or they should consider implementing an internal “open-source” model around a framework. This could include a repository for tracking changes and fixes.

“Using frameworks is one of the tools that helps you deal with legacy issues,” he said. “Your framework code can act as a buffer. The underlying application code doesn’t have to change.”

According to Wangagel, keys to “getting it right” reside in how you think of the consumers of your framework. An obvious but sometimes overlooked point: Developers are the people that will be “using” this framework software.

“If you are not using a framework, you are not using a potential tool,” Wanagel told TheServerSide.NET. “It has challenges. It’s something you have to be able to learn how to do effectively. You have to practice applying it.”

Among “anti-patterns” to avoid when working with frameworks, said Wanagel, is adding to an already complicated API. As an example he cites sub-classing the ADO.NET connection class to add more methods.

Seeking too much flexibility can be an anti-pattern too. In this regard he describes a Contortionist pattern that is unnecessary flexibile. That means adding extension points or variables that are not necessary. The resulting framework is more complicated but with no added value.

He agreed that frameworks sometimes have incomplete definition.

Wanagel said: “'Framework' is a pretty overloaded term. It can be libraries, templates, and patterns - usually it is a combination of those elements that is reusable over applications. And it may have a domain focus.” He cites communications as an example of a domain on which frameworks may focus.

How are Wanagel’s framework ideas playing out on the Codeplex site? "With Codeplex itself, we have framework pieces we use that we apply in the building of the site,” he said “What may be more interesting is that, on Codeplex, which is an open-source site, people are building frameworks."

Good examples of such framework activity, he said, include TheBeerHouse CMS/e-commerce website, Ajax.NET Professional, and the SubSonic Data Access Layer (DAL) builder.

Related Patterns & Practices information
Patterns & Practices home page
http://msdn.microsoft.com/practices/
Patterns & Practices Western Summit 2006 agenda pages
http://www.pnpsummit.com/west2006.aspx
Codeplex
http://www.codeplex.com/
SubSonic Project
http://www.codeplex.com/Wiki/View.aspx?ProjectName=actionpack
TheBeerHouse Project
http://www.codeplex.com/Wiki/View.aspx?ProjectName=TheBeerHouse
AjaxPro Project
http://www.codeplex.com/Wiki/View.aspx?ProjectName=AjaxPro
 
New content on TheServerSide.NETNew content on TheServerSide.NETNew content on TheServerSide.NET

DSLs and language interop

Language "mashups" will become more prominent, and developers will become polyglots, one programmer suggests.

VS 2008 Resources

SearchWinDevelopment.com offers an introduction to the language, performance, testing and data management improvements in VS 2008.

VB code downloads home

VBCode.com code snippets cover all aspects of application development, from data binding to security to the user interface.

XAML Learning Guide

Get up to date on XAML best practices with a variety of articles, tutorials and webcasts. [SearchWinDevelopment.com]

Company uses VSTS DB edition to tame workflow

One team's experience with the VSTS DB edition suggests that it can improve workflow for dev teams. It also enhanced Agile efforts. (June 24, Article)

Book: Intro to DSL Tools

Microsoft has begun to include DSL tools in the VSTS kit. A new book by Steve Cook and other VSTS team members helps set the stage. (June 24, Article)

I See the Silverlight Shining!

Cartoon: Be it ever so humble there is no place like your home after you get a Microsoft Home Server . (June 18, Cartoon)

A look at .NET 3.5

Microsoft's Thom Robbins says new technology to highlight in NET 3.5 includes AJAX, LINQ for both C# and VB, as well as tooling enhancements intended to ease the task of building WPF, WF and WCF apps. (June 29, Podcast)

Venkat Subramaniam on AJAX

Venkat Subramaniam discusses AJAX bottlenecks, the tenets of Agile development and more. He spoke at the Ajax Experience. (June 25, Tech Talk)

Building a Claims-Based Security Model in WCF - Part 2

In the second of a two-part series, Michele Leroux Bustamente discusses design decisions related to the claims-based security model. Read the story and walk through the process for creating a set of claims-based utilities to encapsulate claims authorization at the service tier. (May 24, Article)

Introducing the Entity Framework

Understanding why the Entity Framework exists and learning where it can fit into your projects can get you prepared for the eventual release early next year. (May 10, Article)

WCF Security Learning Guide

Resource: This learning guide gives you quick access to useful links on Windows Communication Foundation security information. (April 24, Article)

Brad Abrams: Patterns for successful ASP.NET AJAX development

TSS.NET's Jack Vaughan spoke recently spoke with Microsoft's Brad Abrams to find out what he is seeing in the field and what the chefs in Redmond are cooking. Along the way he discusses patterns of AJAX frameworks. (April 11, Article)

Building a Claims-Based Security Model in WCF

In a two-part series, Michele Leroux Bustamente explains how claims-based security is supported by WCF, and how you can implement a claims-based security model for your services. (March 29, Article)

Authoring workflow using XAML

Windows Workflow Foundation is a new technology that many developers will need to get their heads around. In a brief excerpt adapted from Programming Windows Workflow Foundation: Practical WF Techniques and Examples using XAML and C#, K.Scott Allen considers aspects of workflow definition. (March 22, Chapter Excerpt)

News | Blogs | Discussions | Tech talks | Patterns | Reviews | White Papers | Downloads | Articles | Media kit | About
All Content Copyright ©2007 TheServerSide Privacy Policy
Site Map