Zen of Paraffin

With Paraffin 3.5, I included this document, but thought it would be worth posting as well for those of you that aren’t familiar with Paraffin. You can download the lastest release here: https://training.atmosera.com/CS/files/folders/18310/download.aspx Introduction When building WiX-based installers, you quickly run into the problem of maintaining the list of files you want to install. The…

Paraffin 3.5 – Now with Better Minor Upgrade Support

Slowly but surely I’m getting through the list of feature requests everyone’s been asking for. This release of Paraffin brings support for the trick outline by Vagmi Mudumbai (http://geekswithblogs.net/Vagmi.Mudumbai/archive/2006/06/11/81426.aspx) of allowing minor upgrades (AKA patches) to remove files by setting the transitive bit on the component and adding a conditional element that evaluates to false.…

Fluent Validation with MEF and PRISM

Validation is a topic that comes up quite frequently. One concern is how to honor DRY (don’t repeat yourself) principles and create a framework that is reusable across layers. There are some very robust and tested frameworks out there, but sometimes they might be more than what you are looking for. In this post, I’ll…

Managed Extensibility Framework Quickstart: Hello, MEF

I’ve been working on quickstarts for a community team that I’m a member of. The team is called MEFContrib. We write extensions to the Managed Extensibility Framework as well as supporting manuals and documentation. I’ve been tasked with the quickstarts and as I release them I’ll post them for you. Obviously, a quickstart should be,…

Sharing Commands with the Managed Extensibility Framework

View models can expose commands that are bound to controls. Commands encapsulate an action and a permission, and the advantage to binding is that controls that support commands will automatically disable when the command cannot execute. Commands can also be easily added to view models and tested. It is common to find commands that are…

Unit Testing XAML Data-Bindings in Silverlight

In an interview earlier this year with MSDN geekSpeak, I discussed unit testing for Silverlight and some of the frameworks that are available. One audience member raised a very important question: “How do we test the XAML?” Specifically, what happens when we hand off XAML to a designer or another developer, and they accidently remove…

Using Reactive Extensions (Rx) to Simplify Asynchronous Tests

Reactive Extensions (Rx) is a product from Microsoft Research that simplifies the management and composition of asynchronous events. If you read my earlier post on Asynchronous Workflows, you’ll understand why the asynchronous programming model can sometimes lead to confusing and hard-to-maintain code. There is nothing wrong with the model, but the fact that you must…

Silverlight UI Automation Testing using Prism 4.0

One popular gripe about Silverlight has been the lack of integrated testing tools. There are several types of tests you may perform against a software project. Unit tests can be performed with the aid of the Silverlight Unit Testing Framework and automated with a third-party tool such as StatLight. Automation testing involves hosting the actual…

Using Hints for Generic MEF Exports

It is very common to have base classes and interfaces that use generic types to define standard behaviors across business applications. One challenge with the Managed Extensibility Framework is that it doesn’t directly support generic exports and imports: in other words, there is no way to effectively do the following: ... [ImportMany(AllowRecomposition=true)] public IService<,>[] GenericService…

Sterling OODB v0.1 Alpha Released!

I’m please to share that I released the alpha version of the Sterling Object-Oriented Database for Silverlight 4.0 and Windows Phone 7.0 applications today. I dug into more details about the project in this introductory post. There have not been many significant changes to the source code since then, but I did create a set…