Jounce Part 10: Visual State Manager

One of the most common questions I get about Jounce is how to handle transitions, since the ContentControl immediately swaps out content. There are some third-party solutions, such as the TransitioningContentControl from the Silverlight toolkit, but Jounce can also handle this right out of the box. Take a look at an example: View example in…

Jounce Part 9: Static and Dynamic Module Management

One popular feature in the widely used Prism Framework is the concept of “modules.” A prism module is a functional unit that represents a set of related concerns. These concerns can be coded and tested independently and then composed into larger applications. They can also handle dependencies with other modules and be discovered and dynamically…

Jounce Part 8: Raising Property Changed

This will be a shorter bit for an interesting topic. I’ve noticed a few posts and discussion around raising the property changed notification. This continues to be the sore spot for MVVM. It creates quite a bit of ceremony for what is a fairly common piece of functionality that shouldn’t be so hard to create.…

A Silverlight MVVM Feed Reader from Scratch in 30 Minutes

I thought it might be useful for users (and potential users) of Jounce, MVVM, and Silverlight in general if I were to show the full process of building an application. When people ask me about how complicated MVVM is, I reply “it’s easy when you know it and use the right framework.” I hope this…

Lessons Learned in Personal Web Page Part 2: Enter the Matrix

This is the second part in the post of more “fun” effects and challenges I worked through in Silverlight when building my personal web page. One effect I really wanted to work out is the Matrix-style effect you can see on my blog page. After looking at the video I determined the main characters seemed…

Lessons Learned in Personal Web Page Part 1: Dynamic XAML

Recently I undertook the effort to rewrite my personal web page for a few reasons. I always like side projects for learning so I wanted to explore some “fun” ideas such as three dimensional objects and plasma (I blogged about those here) but also some more practical ideas like dynamic content and custom list boxes.…

Jounce Part 7: Validation and Save/Confirm/Cancel Operations

Line of business applications are full of what we call “CRUD” screens for Create, Read, Update, and Delete. Jounce addresses common concerns that are found in these types of transactions: Is Dirty and Commit It is common to check the status of a record and only apply changes when changes actually exist. Once a user…

Jounce Part 6: Visual States and Multiple Views per ViewModel

I knocked out quite a few items for the next release of Jounce, the primary being explicit support for multiple views bound to the same view model. In the previous version, the visual state binding would only reflect the most recent view (and a bug prevented the actual binding of the view model, but that’s…

Jounce Part 5: Navigation Framework

One common request I get is how Jounce can work with the Navigation Framework. My first reply is always, “Why do you want to use that?” As you can see in previous posts, the Jounce navigation works perfectly fine with region management to manage your needs. If you want the user to be able to…

Jounce Part 4: Region Management

Now that we’ve explored the concept of Jounce navigation, the next logical step is to examine region management. This concept was introduced by the Prism framework and is very powerful and functional for both WPF and Silverlight applications. Region management deals with a few moving pieces. A region is simply an area of the display…

Jounce Part 3: Basic Navigation

Navigation is always an interesting topic and something I often see people struggle with in Silverlight applications. I am not a fan of navigation methods that force you to change the way your views behave, which is why I am not a fan of the navigation framework that is built into Silverlight (you suddenly have…

Jounce Part 2: Getting Started (Tagging and Binding)

In this second installment about the Jounce framework, I’ll share how to get started with Jounce and wire your first view bound to a view model. The Jounce project is available online at http://Jounce.Codeplex.com. Jounce injects itself as a service to the application. In my opinion, using IApplicationService is the right way to handle start…