Matt Winkler

Matt Winkler mwinkle

Niner since 2009

PM on the Oslo team building tools for WF


  • 10-4 Episode 16: Windows Workflow 4


    In .NET 3, WF had a custom syntax that was kind of like C# but kind of like VB in order to do expressions in rules.  We heard a fair amount of feedback that folks wanted a richer expression story in order to have richer databinding, as opposed to the property + collection indexer support we had in 3.0.  In 3.0, for instance, if I have a WriteLine activity, and I want to combine two variables, I can not via data binding.  In 4.0, I can simply write Var1.PropOfInterest + " " + Var2.OtherPropOfInterest as the property value.

    We knew we didn't want to keep pushing forward with a weird pseudo-syntax and wanted to align with all of the features available in various languages. We've built the system in such a way that we will be able to plug in additonal languages in the future.  It just happens that the VB team is ahead of the C# team in being able to support this scenario, right now.  Check out the "Future of C#" and "Future of VB" talks from PDC.  The compiler services that Anders talks about at the end of his talk are something we'll need to incorporate C# into the WF expression story, and as Paul Vick mentions in his presentation towards the end, the VB team is making this type of funcitonality available in .NET 4.0. 

    Given that we don't have the capability to use C# today, we made the choice to push ahead and use VB here in order to provide a rich expression authoring experience (intellisense, etc) within the designer.  Would you prefer that 4.0 ship with the 3.0 syntax / capabilities and push off being able to use richer expressions until we can land both VB and C# at the same time?  The feedback we've gotten generally is that while this isn't ideal, it's a worthwhile tradeoff in order to get richer expressions.

    In an ideal world, what would you like to see from expressions in WF?
    • Just C#
    • Just VB
    • VB, C#
    • Any language that I can run in VS?
    • Dynamic languages (Ruby, Javascript, Python, etc)
    • New language?
    • Process / document centric expressions (XLANG/s, BPEL, XQuery ) ?

  • 10-4 Episode 16: Windows Workflow 4

    krisw, it's a point in time thing, it's what we'll most likely have for VS 2010 because of some relatively unexciting details, which I can get into if you want.  It's our intent that we will have more options in the future.