Trying to use Unit Tests as Integration Tests

We shipped v1 of the SharePoint Guidance with a good set of unit tests. These unit tests paid for themselves several times over each time we refactored the code base. As an agile developer, this made me very happy. After we shipped, my project manager, wanted a set of integration tests that could be used…


SHIPPED!!! SharePoint Guidance

We’ve completed version 1 of the patterns & practices SharePoint Guidance. The major stories we covered in this release are: Architectural decisions about patterns, feature factoring, and packaging. Design tradeoffs for common decisions many developers encounter, such as when to use SharePoint lists or a database to store information. Implementation examples that are demonstrated in…


Typemock ships Isolator for SharePoint

Our friends at Typemock have made it much more affordable to unit test SharePoint applications. With an introductory price of $99, they have shipped Isolator for SharePoint which is basically the same the full Isolator product except that it will only “fake” APIs that are part of the SharePoint API.  Thanks Eli and Roy!…


Unit Testing SharePoint 2007 Applications

When developing SharePoint applications, it is common to develop custom: ASP.NET Web Forms WebParts Event Receivers Workflow coding activities One of the first things we noticed when trying to unit test our business logic is that our code will heavily relied on elements of the SharePoint API. SPWeb SPItemEventProperties SPList A common approach to making…


SHIPPED!!! Composite Application Guidance for WPF June 2008

Here is the landing page: Here is the download page: I didn’t notice how much hard work went into this project because I was having so much fun. Pair programming with the likes of Bob, Julian, Ezequiel, Brian, and Adam was an amazing experience. Thanks to Bob Brumfield for his outstanding technical leadership….


ActiveAware Views and Commands

It occurred to me after a recent advisory board call that we haven’t done a good job of communicating the scenarios that prompted the development of ActiveAware views and commands. Let me describe this functionality in terms of the ability to "Save All" versus "Save Active". Save All: The ability to "Save All" describes saving…


Poor man’s UI Composition

I’ve consistently pushed for simplicity on the Prism project. This was evident when we worked on our first feature: UI composition (View from one module is composed of view(s) from other module(s)). In CAB, we developed Workspaces to provide this functionality. However WPF provided its own containment model. Being able to add arbitrary content to…


Decoupled Communication with Prism (Event Aggregation)

In my previous post, I discussed commanding and how you can hook up invokers (e.g. buttons and menu items), global CompositeCommands, and module level command instances. If you need the sending of a message to be initiated by a user gesture such as a button click, Commands may be a good choice. If you need…


Decoupled Communication with Prism (Commanding)

WPF provides RoutedCommand which is great at connecting command invokers such as menu items and buttons with command handlers that are associated with the current item in the visual tree that has keyboard focus. However we had several scenarios that Prism needed to support where the command handler lived in a controller that had no…


Decoupled Communication with Prism (Shared Services)

One common method of cross module communication is through shared services. Let’s say our application is composed of a shell application and various module assemblies. Our shell app provides several core services such as logging, authentication, and service location. When the modules are loaded by the shell app, the modules add their services to the…