• Smart Client Software Factory v2 shipped!

    Published by Mariano Szklanny on May 19th, 2007 8:08 pm under SCSF, Smart Clients, patterns and practices

    2 Comments

    Yes! We finally shipped it! It took us a little more time than what we expected but I’m very excited about the new features and capabilities we are providing to the community. This release provides (from Blaine’s announcement post):

    • Windows Presentation Foundation interoperability CAB extensions  and View with presenter recipe (don’t miss this post from Miguel Saez for more details)
    • Offline application blocks and recipes; the application blocks support asynchronous calls to WCF web services.
    • Richer ClickOnce Deployment capabilities
    • Enhanced guidance packages which includes code generation Visual Basic .NET 2005 (don’t miss this post from Juan Arguello for more details)
    • Improved installation with a new dependency checker

    You can get it from the Microsoft Downloads Center.

    One of the things we added at the very end of the project, is a QuickStart that demonstrates how to integrate the Disconnected Service Agent (DSA) and the Connection Monitor (CM) Application Blocks with a Composite UI Application Block application. Although we had to postpone a little bit the release date to include this QuickStart, we strongly believe that it will help you better understand how to consume these blocks from your smart client application.

    The Offline Application Blocks demonstrated in the QuickStart

    In just a few words (see the Help for detailed information), the Disconnected Service Agent Application Block allows you to invoke web services asynchronously from occasionally connected smart clients. This means that you can, for example, enqueue a request while the application is offline and have it automatically dispatched by the block when connectivity is detected. When the request is dispatched, a callback will be invoked for your application to process the response.

    The Connection Monitor Application Block basically monitors connectivity status. As a developer, you can define what set of services you need to reach from your smart client application and the block will notify you whenever changes in the client’s computer affect the ability to reach those services.

    Overview

    The QuickStart basically shows a master-details view. The Shell form displays a list of restaurants in the left and their corresponding menu items in the right. To retrieve the data (restaurants and menu items lists), a WCF service is consumed:

    DSA_CAB_QS_1

    If you launch the QuickStart without having an Internet connection available, the application will enqueue the request that will retrieve the restaurants list, and will display an Offline status indicator.

    DSA_CAB_QS_2

    As soon as you go online, the restaurants list will be loaded and the connectivity status indicator will be updated:

    CompositeUI Application Block with Disconnected Service Agent QuickStart

    If you click a restaurant, you will see the menu items list loaded in the right. But if the Internet connection was dropped, you will see a message saying that you must be online to retrieve the menu items list:

    DSA_CAB_QS_3

    Now suppose you go online again, but the web service now is failing or has been shut down (you can close the WCF host to test this scenario). The application will handle the error and ask the user to try again later:

    DSA_CAB_QS_4

    Retrieving data from a remote service is an expensive task and might take a while. Therefore the QuickStart displays a progress bar when a call to a the web service is performed:

    DSA_CAB_QS_5

    What can I do next?

    Download the factory and start playing with it! :)

  • 2 Comments:

    1. jarguello said on May 21, 2007:

      Finally, Smart Client Software Factory – May 2007 is out there .

    2. http:// said on November 20, 2007:

      Can you explain the difference between Offline Application Block 1.0 and SCSF Offline Application Block

    Leave a comment

    Your email address will not be published.