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:
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.
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
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.