Yesterday I presented to one of my financial services customers in the city on an overview of what's new from 2.0 to 3.5. The audience was a mixture of project managers, developers and architects. I thought I would post some of the content and sources here for future reference.

What's new in 3.5

General

I mentioned that WCF complies with much of the WS* standard. More so than other platforms I am led to believe. This is a nice article explaining the standards.

Incidentally I have highlighted below the 2007 Microsoft WS* standing:

image image

3.5 Specific areas of interest:

During this exercise I decided to freshen up my WCF programming skills:

WCF Web Programming Model Overview

I remember this great advice and tool for enabling http WCF services within Vista (UAC locks down access by default)

I'd forgotten about meta data publication. So, I relearned the various ways of enabling meta data. I remembered that the service behaviour configuration needed to include metaDataSupport - good article here

 

<system.serviceModel>
   <behaviors>
     <serviceBehaviors>
       <behavior name="metadataSupport">
         <serviceMetadata />
       </behavior>
     </serviceBehaviors>
   </behaviors>
   <services>
     <service name="OnlineBanking.Test.AccountService"   behaviorConfiguration="metadataSupport">
       <endpoint
          address="net.tcp://localhost:8001/AccountService/"

Although much of the documentation I found would push towards having a serviceMetadata section like so:

<behaviors>
  <serviceBehaviors>
    <behavior name="metadataSupport">
      <serviceMetadata httpGetEnabled="true" httpGetUrl="http://computer/Services/SampleService/Metadata"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

I found that it was better to provide a specific mex endpoint:

<endpoint address="http://localhost:8002/AccountManager/mex"
     binding="mexHttpBinding"
     contract="IMetadataExchange"  />

In this way basic serviceMetaData could be exposed for multiple transports and not only HTTP.

Also when communicating across multiple processes you may come into identity issues. Easily resolved in WCF. I recollected thanks to this MSDN forum article.

For the PPTX I used some of the Stock Photo's from FreePixels

Demo:

I built a small demo that I built previously for an Online Banking demo. It was based from the simple, but elegant, example from IDesign's Transaction Flow banking sample.

The bank samples I used can be found here

The RFID originated event entrance application (with bouncing WPF bubbles) can be found here

Other:

Along the way I discovered, from this post,  the winners of the WPF in Finance Innovation Contest which was shown at the Microsoft Financial Services Developer Conference
Szymon Kobalczyk screenshot

  • To understand the graphic above:
    • A boid’s visual appearance represents the stock pricing at a given date
    • for each stock symbol found in the dataset a boid is placed on a random location on screen
    • There are two arcs on the outer ring: the longer one represents the range from lowest to highest prices, and the shorter one represents the range from the opening to closing prices.
    • The colour of the inner circle reflects the percentage Change value of the stock price at given day relative to the price a day before
    • When you click on a boid a new window opens showing charts with all the data for a given symbol

You can download this and the runner's up Daniel Chait's skydrive here

As an aside I was looking at ReSharper's new tools. In particular this post shows how to convert some standard types to generics.