66366 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: 1 Messages: 1 Messages: 1 Printer friendly Printer friendly Printer friendly Post reply Post reply Post reply XML XML XML

Inside framework design with author Krzysztof Cwalina

Posted by: Jack Vaughan on July 19, 2006 DIGG
This being summer - and a hot one, hereabouts - we thought we'd look at some stories written during cooler weather. Last October, after PDC, SearchVB.com's Jack Vaughan, yours truly, did an interview with Krzysztof Cwalina, and we re-post it here. Don't think of it as summer re-run, the art of the framework is timeless!


A look inside Microsoft's thinking on framework design comes now via Framework Design Guidelines by Krzysztof Cwalina and Brad Abrams (Addison-Wesley, 2005). While this book may arise out of efforts inside Microsoft to formalize approaches to creating .NET framework architecture, a glance at the flock of people scooping up copies of the book at PDC05 showed that developers too feel they can benefit from looking inside a framework.

In fact, this book is a significant addition to the literature on software development. We were glad to speak recently with author Krzysztof Cwalina, and, naturally, our thoughts turned to VB. We asked how .NET Framework improvements were aimed at Visual Basic developers.

VB had a huge influence on the guidelines of the Framework, Cwalina replied. "The main difficulty for programmers is that frameworks are vast and, if are not designed carefully, they don't give any indication of where you should start and where you should go next. The strength of VB was that it told you very explicitly which are the important APIs," he said.

"The common scenario APIs were right there in your face. As you moved to the more advanced APIs, they were not so 'in your face,'" Cwalina said.

The .NET 2.0. Framework has tried to improve things for VB developers, especially those who are moving from VB 6.0 to VB.NET 2.0.

"The high-level concept is that the core of the framework covers 80% of scenarios. The plan is not to put the other 20% in the face of the developers immediately when they start to work with the framework," Cwalina said.

To the extent that they can be characterized, VB developers are a pragmatic sort, almost impatient to get working on the task at hand, and not in the thrall of technical virtuosity that sometimes marks a C++ or a dyed-in the-wool object developer. Yet Framework Design Guidelines should intrigue VB developers. A clear view on .NET thinking can only help in day-to-day efforts.

Through to VB6, the VB developer had a tool that supported quick development. Take a look at the new version of the framework and see if it doesn't take a few steps toward making VB a top citizen in the .NET world.

More of our interview with Framework Design Guidelines author Krzysztof Cwalina:


JV:Can you give us a picture of the art of framework design?

KC:I think that one of the main problems with frameworks is that they are huge; they contain lots of APIs. Developers can use these APIs efficiently only if they don't have to relearn concepts every time they move from one of these APIs to another.

You may create a GUI, then you may do some messaging with the Windows Communication Foundation. You don't want to have to relearn, for example, how to handle events when you switch what you are working on.Things should be consistent across the framework.

A good rule is: If you learn one part of the framework you should in effect know 80% of the rest of the framework. An analogy we use is the rental car. When you get in a rental car, you don't want to have to read the manual to operate the car.

JV: Can you discuss Framework Design Guidelines as it relates to programmers?

KC: I think the book is equally useful to people you design frameworks and to the people that use the frameworks. If I know some of the "why" behind the design of the framework, I know better how to use this framework. For example, [in the .NET framework], if something is an expensive operation, it should not be a property, it should be a method. If I know that and I see a property, I immediately see that it is not that expensive to call it. I you didn't know the guidelines you might not know that.

JV: How do design patterns often discussed in object-oriented circles relate to framework design?

KC: The Design Patterns community has concentrated on internal implementations, while the .NET Framework design guidelines originators have focused on the public surface of framework APIs. But there are similarities.

Both traditional design patterns and our framework design guidelines contribute to establish a common design language. Now, people have a common language. I think our guidelines continue [the work of design patterns] in the API space. For example, if I hear or read "Async Pattern," I know how it works, because there is a common language and consistency to the framework.

http://www.theserverside.net/tt/articles/showarticle.tss?id=FrameworkDesign
Framework Design Chapter download page on TSS.NET

http://www.awprofessional.com/bookstore/product.asp?isbn=0321246756&rl=1
Framework Design on Addison-Wesley Pearson Education site
  Message #213899 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Inside framework design with author Krzysztof Cwalina

Posted by: bob farmer on July 19, 2006 in response to Message #213880
Designing a good application is difficult.
Designing a good framework is incredibly difficult.
Using a good framework is simply divine.

 
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