DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report

.NET Fireside Chats: Christopher Bennage on the 'Getting Started with WPF' Refcard

Alvin Ashcraft user avatar by
Alvin Ashcraft
·
Sep. 29, 09 · Interview
Like (0)
Save
Tweet
Share
5.34K Views

Join the DZone community and get the full member experience.

Join For Free

Yesterday, DZone released it's latest Refcard, Getting Started with Windows Presentation Foundation, co-authored by Christopher Bennage and Rob Eisenberg. Together they also authored Sams' Teach Yourself WPF in 24 Hours. We had a chance to ask Christopher a few questions about the Refcard WPF, and his experiences in general.

 

DZone - Tell us a little about what you do at Blue Spire Consulting.

Christopher Bennage - While we are into all aspects of software development, our focus is generally on user interfaces. We both have a strong interest in game development, and that lends itself readily to exploring user interfaces. We're also heavily influenced by the Agile/Software Craftsmanship community.

DZone - What is WPF? Give us the nickel tour.

Christopher - WPF is a platform for building rich, interactive user interfaces for desktop applications. There are a number significant features such as, a declarative language for composing UI's, a powerful data binding framework, strong animation and media api's, and vector based graphics.

DZone - What are the origins of WPF and XAML?

Christopher - That's an interesting question, and while I haven't asked any of the initial designers of WPF why they choose to build what they did, I do have speculations. I see WPF as the natural consolidation of a number of concepts and technologies that have been growing and maturing independently. I see the influence of HTML and css, as well as technologies like Flash.

DZone - Do you see WPF someday completely replacing WinForms in .NET?

Christopher - "Completely replacing" is a strong phrase. Has WinForms completely replaced older, less agile frameworks for building user interfaces? We know that is hasn't, and I don't think WPF will either. At least not for a long time. However, I do think that it will become the default choice for building new desktop applications. Though this won't happen for many more years. There's a large ecosystem surrounding WinForms, while WPF's is still growing. There is also a significant conceptual shift when it comes to WPF.

DZone - Do you think WPF browser-based applications have a future, or will Silverlight Out-of-Browser apps take over that space?

Christopher - I think that both sides have to mature before a victor can be declared. Silverlight OOB is a beautiful thing, but it is still very primitive in its current form. WPF browser-based apps don't offer much of an advantage over click-once WPF applications. I'm very excited to see where both of these go.

DZone - How are you leveraging WPF in your professional work?

Christopher - As a consulting shop, it's all about bringing value to our clients. WPF has enabled to build solutions quicker, as well as opened up possibilities for interfaces that would have been cost-prohibitive with other technologies.

It is important to note though, that it took us awhile to effectively make use of WPF. One of the breakthroughs for us was discovering how to appropriately use Separated Presentation patterns. I'm little hesitant to call it MVVM, although you could certainly label it that.

DZone - Could you explain the difference between what can be done in Expression Blend vs. Visual Studio when creating a WPF application.

Christopher - In a nutshell, Blend is for XAML and Visual Studio is for code. In practice, I tend to keep both applications open when working on project. I still prefer to write most of my XAML by hand (it is still faster for me) and Visual Studio offers a better experience in that respect. Blend is very good for creating animations and manipulating bits that are more purely graphical (icons, logos, etc.).

DZone - What are some other online resources you would recommend to developers getting into WPF.

Christopher - I highly recommend the tool Kaxaml. It's a free WYSIWYG editor for XAML and it is immensely useful.

There are a lot of great bloggers at WPF Disciples. It's a great place to start for general WPF information. In particular, Josh Smith's blog.

I also recommend reading Jeremy Miller's posts regarding Separated Presentation. Jeremy does not discuss these patterns from a WPF perspective, but they are still excellent reading for trying to get a handle on the general concepts.

Rob Eisenberg's Caliburn framework is also something that I recommend exploring, after a user has become familiar with the basics of WPF. Caliburn is an open source project that grew out of a number of WPF and Silverlight projects that we've had.

DZone - Do you have any best practices or recommended patterns for building WPF applications?

Christopher - I do, but I would probably require several pages to list them all out. For beginners, a good place to start is to research the idea of Separated Presentation and the somewhat more idiomatic MVVM (Model-View-ViewModel). This is an area that the community is still working through. I think that we've only just begun to figure out how to make WPF sing. I would also advise that there is no 'one pattern fits all' practices.

As I mentioned earlier, the Caliburn framework is meant to both embody and facilitate a number of best practice.

DZone - Did you find that writing a book on WPF made your work on the Refcard easier?

Christopher - Yes, it did. However, it presented the interesting problem of not plagiarizing ourselves.

DZone - Do you have any future writing projects in the works?

Christopher - Nothing solid at the moment. Unfortunately, writing technical books is not an activity that pays. In fact, it costs money. Nevertheless, I really enjoy it. There are a few possibilities. One idea that I'd like to see happen is a book on best practices for WPF and Silverlight.

 

 

Rob Eisenberg is a .NET architect and developer working out of Tallahassee, FL. where he is a partner with Christopher Bennage at Blue Spire Consulting. Rob publishes technical articles regularly at devlicio.us and has spoken at regional events and to companies concerning .NET technologies and Agile software practices. He is coauthor of Sam's Teach Yourself WPF in 24 Hours and is the architect and lead developer of the Caliburn Application Framework for WPF and Silverlight.

Christopher Bennage likes to make things. He's particularly fond of computers, WPF, and Silverlight, as well as the glorious and mysterious field of UX. You can follow him on twitter @bennage or through his blog on devlicio.us. He promises not to bite.

Windows Presentation Foundation Application framework DZone

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Host Hack Attempt Detection Using ELK
  • How To Best Use Java Records as DTOs in Spring Boot 3
  • How to Use Buildpacks to Build Java Containers
  • What Is JavaScript Slice? Practical Examples and Guide

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: