Francis K. Cheung

The journey of an agile programmer...

  • Francis K. Cheung

    Prism for Windows Runtime: Integrating a Dependency Injection Container

    • 12 Comments
    This is the fourth post in a series that walk you through creating a simple Windows Store app using the Prism for Windows Runtime library. Please review the third post in the series for the steps necessary to create the basic MVVM style app based on MvvmAppBase...
  • Francis K. Cheung

    Unit Testing SharePoint 2007 Applications

    • 10 Comments
    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...
  • Francis K. Cheung

    Prism 5.0 for WPF just shipped.

    • 7 Comments
    Prism version 5.0 for WPF is now available . This version of Prism includes updates to existing and several new NuGet packages: Prism Prism.Composition (New) Prism.Interactivity (New) Prism.Mvvm (New) Prism.MefExtensions Prism.UnityExtensions We’ve updated...
  • Francis K. Cheung

    Prism for Windows Runtime: Creating and showing a Flyout using the FlyoutService class

    • 6 Comments
    This is the third post in a series that walk you through creating a simple Windows Store app using the Prism for Windows Runtime library. Please review the second post in the series for the steps necessary to create the basic MVVM style app based on MvvmAppBase...
  • Francis K. Cheung

    Decoupled Communication with Prism (Commanding)

    • 6 Comments
    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...
  • Francis K. Cheung

    Decoupled Communication with Prism (Event Aggregation)

    • 5 Comments
    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...
  • Francis K. Cheung

    Composite WPF Guidance

    • 5 Comments
    A month ago I started working on a new project within patterns & practices: Composite WPF (code name PRISM). If you're curious about the name PRISM, please read Glenn's blog entry . We are looking to provide guidance on how to create modular, composible...
  • Francis K. Cheung

    Decoupled Communication with Prism (intro)

    • 5 Comments
    When building large complex applications, a common approach is to divide up the functionality into discrete module assemblies. Even further it is desirable to not have static references between these modules. This allows the modules to be more easily...
  • Francis K. Cheung

    Prism for Windows Runtime

    • 5 Comments
    As Blaine Wastell posted , we are about to release the patterns & practices guidance for building Windows Store business apps. You may be thinking… “What is a business app?” and “How is a business app different than any other app?”. Well the simple...
  • Francis K. Cheung

    Decoupled Communication with Prism (Shared Services)

    • 4 Comments
    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...
  • Francis K. Cheung

    Running VSTS unit tests on WM5 devices

    • 4 Comments
    Porting Code and Unit Tests to the device: After much work, we ported the source code and unit tests from the desktop versions of CompositeUI, CompositeUI.Winforms, and ObjectBuilder projects to corresponding Windows Mobile 5.0 Pocket PC projects...
  • Francis K. Cheung

    Composite Services Guidance: External Routing Configuration sample

    • 3 Comments
    Let me give you a little background on this sample. If you look at the WCF Routing Service , you can quickly and easily configure a router with endpoints and message filters in the web.config. This is a great way to set up context based routing. You can...
  • Francis K. Cheung

    Prism for Windows Runtime: Validating User Input

    • 3 Comments
    This is the fifth post in a series that walks you through creating a simple Windows Store app using the Prism for Windows Runtime library. Please review the fourth post in the series for the steps necessary to create the basic app based on MvvmAppBase...
  • Francis K. Cheung

    Create a Remaining vs Completed Work report using TFS, SQL Analysis Services, and Excel

    • 2 Comments
    If you use the MSF Agile process template, you can leverage the Remaining Work and Completed Work fields defined in the Task work items. I will show you how to create a report in Excel that shows Remaining Work and Completed Work values changing...
  • Francis K. Cheung

    Composite Services Guidance–Release Candidate

    • 2 Comments
    Yesterday we uploaded a release candidate drop of our Composite Services Guidance to CodePlex. This should be very close to our final release. The following is just a few items included in the RC drop that you may not have seen before: Enhancements to...
  • Francis K. Cheung

    Prism for Windows Runtime: Creating a basic implementation of the MVVM pattern

    • 2 Comments
    This is the second blog post in a series that walk you through creating a simple Windows Store app using the Prism for Windows Runtime library. Please review the first post in the series for the steps necessary to create the basic app based on MvvmAppBase...
  • Francis K. Cheung

    DI or not DI

    • 2 Comments
    One of the first assumptions floating around the PRISM team room was the use of an Inversion of Control container to provide dependency injection. At this point in the project, I've fought against making any and all assumptions that increase complexity...
  • Francis K. Cheung

    Sometimes Typemock Isolator can be too powerful

    • 2 Comments
    A colleague made the comment regarding Typemock Isolator: “but be aware that having such a powerful mocking facility may reduce the effectiveness of your unit tests as design aids”. I’ve used Typemock Isolator and it allows you to test your business logic...
  • Francis K. Cheung

    Stack Overflow when building up SiteMap structure

    • 2 Comments
    In iteration 10, we wrote HierarchicalConfigSiteMapProvider that builds up a tree of sitemap nodes based on xml retrieved from the hierarchical ConfigManager. Being a newbie with SiteMapProviders, I overwrote BuildSiteMap calling a simple recursive method...
  • Francis K. Cheung

    What happened to my SPContext?

    • 2 Comments
    This last iteration, we ran an interesting issue when services that we request through the SharePointServiceLocator depend on SPContext.Current. This seemed like a reasonable dependency assumption. We consume these services in feature receivers. They...
  • Francis K. Cheung

    SPG Continuous Integration builds not run on instance of SharePoint

    • 2 Comments
    Our Continuous Integration builds are run on a build server that has the necessary SharePoint assemblies, but with no installed instance of SharePoint. Licensing issues aside, this causes an interesting problem when unit tests are developed on dev boxes...
  • Francis K. Cheung

    Integrating JavaScript Unit Tests with Continuous Integration

    • 2 Comments
    One of the main stories for the Web Client Developer Guidance project was to learn how to manage the JavaScript code that is required in modern web applications. This includes how to organize JavaScript, how to load it on a page (especially a problem...
  • Francis K. Cheung

    Using Typemock Isolator for Integration Tests

    • 1 Comments
    Yeah, I know. Typemock Isolator is great for unit testing against API’s that are hard to mock, but this last iteration, I found a new use for Typemock Isolator. I worked with our test team to develop a set of integration tests that are run by MSTest and...
  • Francis K. Cheung

    SPG v2 Iteration 10 Drop

    • 1 Comments
    Iteration 10 is complete and the drop can be downloaded here . In iteration 10 we mainly concentrated on refactoring, code cleanup and reusable assets. We will continue refactoring and scrubbing the code in the remaining iterations but please take a look...
  • Francis K. Cheung

    Granularity of SharePoint Features and Solutions

    • 1 Comments
    In our SPG v1 guidance we discussed packaging site elements into features. This is particularly important if you are using the Visual Studio extensions for WSS. We found that whenever you add a site element into a VSeWSS project, a new feature is created...
Page 1 of 3 (53 items) 123