10-4 Episode 16: Windows Workflow 4

Sign in to queue

Description

In this episode of 10-4 we build a "Hello Workflow 4" application.  You might have heard that .NET 4 includes an all new Workflow engine - learn how you can not only use Workflow but also do test first style development with it.

Embed

Download

Download this episode

The Discussion

  • User profile image
    Jeroen Ritmeijer
    "Workflow expressions are always in VB syntax"? Say it ain't so.

    I know it is all still beta, but I noticed that the new VS interface is not very efficient with regards to the available screen estate. Big gaps between panes, valuable space that could be used to display code Wink

    Shame the focus of this video is more on testing workflows rather than building them.

    Man, I am being negative today, it must be the weather.
  • User profile image
    rojacobs

    The idea of Expressions in VB.NET syntax is that ultimately business users might be able to understand and/or change these expressions using a rehosted workflow designer. 

    The C# expression "Name.Length % 2 == 0" is definitely not business user friendly.  Will someone who is pretty good with Excel get "Name.Length Mod 2 = 0" - probably.  At least that is the goal.

    I like to use tests as part of the process of building the business logic.  That way once your business logic is built, the tests are already done and you get very high test coverage of the app.

    I agree the UI of DEV10 still needs work - but there is still time.

    Don't worry - it's finally sunny here in Seattle today so I can take a little criticisim Smiley


  • User profile image
    Krisw
    Why not allow for any desired conditional syntax?  For instance, you could put a drop-down on the condition input control that allows you to select which language syntax you want; "VB", "C#", "F#", "Ruby", "Python", etc. 

    Locking the user into a specific language syntax seems like a design conceit that is contrary to the .Net language flexibility mantra.
  • User profile image
    JonnyRocks
    Ok so I am not sure who will be reading this but this is an example of a very good presenter. Not all devs are good at presenting. I love that channel 9 interviews devs but for a video showing off a new technology we need someone who is exciting and speaks well. This is the first 10-4 video i watched completely.
  • User profile image
    Weqster
    Well presented, but i agree, lacked content.
  • User profile image
    mwinkle
    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. 

  • User profile image
    terrajobst
    Great to see the new WF in action. May be I missed something in the video but why does IntelliSense know at 18:30 the paremeter/field "FirstName"?
  • User profile image
    MarcinNajder
    Great presentation!

    Another way of wrapping workflow arguments :
    http://mnajder.blogspot.com/2008/11/use-expression-tree-to-avoid-string_08.html

    It would be great if we could see the whole process with Sequence, TryCatch, While.... activities on the designer surface (as WF3).
    mn


  • User profile image
    Edsilv
    This is a topic I'm very interested in but it's disappointing when you can't actually read any of the text in the video because it's shot at the wrong resolution. I've noticed this with quite a lot of C9 videos. Surely the point of these things is to be able to read the labels of menu items/buttons that are being used?
  • User profile image
    Enrique GC

    ok, I confess; I don't like VB... Not even the expressions,  I like Krisw approach better, in the real life or at least on own my experience ,most of the time, business  people hand over developer the logic to be implemented.

     

    When are we, simple mortals, will be able to get our hands on it?
    I could use something like your VPC ->Generic Comment Image
  • User profile image
    rojacobs
    Sorry about the video resolution.  When I first published this I set it to show high quality video.  For some reason our publishing system republished it about 8 hours later with low quality video.  We are trying to get it fixed but if you download the WMV high quality you will be able to read it.
  • User profile image
    rojacobs
    I think you mean the variable "FirstWord". 

    The build I'm using has some "issues" with Intellisense.  You may have noticed that the arguments "Name" and "Greeting" never show up in Intellisense and are flagged as errors (squigilly underline) by the expression editor but they work just fine at runtime.  These issues are being fixed and should be gone by Beta 1.
  • User profile image
    rojacobs
    Lacked content?  What were you expecting?

    This video is based on a draft of the first Hands On Lab for Workflow which is meant to be an introduction so it introduces you to the Workflow, several activities, arguments, expressions and error handling.

    There will be several other labs with much greater detail on other aspects of workflow.  If the video lacked something I'd like to fix it so it will be more compelling.
  • User profile image
    rojacobs
    In WF 3 there was no Try/Catch activity.  It had a FaultHandler which was not visible unless you toggled the view.

    I agree it might be nice to have the option to have an expanded view inline with everything else and the ability to toggle between expanded and collapsed without drilling down.  But that's the deal for now.
  • User profile image
    Charles
    This should be resolved now. The URL for the inline player points to a high res file. Watch it in full screen mode and you'll be pleased.
    C
  • User profile image
    Chris Richner
    shows off more than "just" the topic it's about in a nice and background driven way...
  • User profile image
    samov
    The videos are not shot in low res. I think it does a bandwidth check and chooses the quality automatically.

    Just download it offline WMV(high) right under the video itself and it will be crystal clear.
  • User profile image
    tadanderson
      Great...  welcome back VBA.  The Office team is killing themselves to break the stereotype that office programming is a joke, based on VBA being at the heart of it, now VB syntax will be at the heart of workflow.

    Forget 2011…

    http://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011.htm " target="_blank">http://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011.htm

    See ya never…
  • User profile image
    Fduch
    No iterators in VB?
    No CTP release after 5 months since the last CTP expired???

    Pretty boring, isn't it?
  • User profile image
    mwinkle
    Tad,

    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 ) ?



  • User profile image
    dynamite
    I am looking for new CTP too. When is it going to be out?
  • User profile image
    toughnut

    My company is just getting started with Workflow and I don't want to start with the old 3.5 stuff.  The applications that we will be developing with Workflow 4.0 and WCF will be internal.  When will we be able to start playing with VS2010 and the new WF 4.0 stuff?  Is there an early adopter avenue or will there be a beta soon?

  • User profile image
    rstat1
    Must have been watching the low res version of this video. I had no issues reading any of the text in the video.
  • User profile image
    rojacobs

    @dynamite, @toughnut - beta 1 is coming very soon.

  • User profile image
    rojacobs

    @Emil

    Workflows are more than just another way to write code.  They bring many capabilities from being able to suspend and resume at some later point (even on a different machine) to being fully instrumented business logic (wait until you see the monitoring episode...)

    So target market?  Literally anybody who writes business logic.

  • User profile image
    nickwin

    Hello, i'm testing Wf4 but i don't found "Handle External Event Activity" anyone know where is now? or how is possible interact with workflow from a WindowsForm?

    Thanks

  • User profile image
    rojacobs

    WF4 does support the ExternalDataExchange model anymore.  Instead you communicate with a workflow by using messages sent over WCF.  To exchange messages with a WindowsForm you would use a named pipe binding.

  • User profile image
    jan0278

    @Edsilv: Did you try the full screen?

     

    These video are clearer than hulu.com..

     

    PS: Not sure if its needed but I have Silverlight 3.

  • User profile image
    mherndon

    @mwinkle

     

    +1 for dynamic languages & C# integration.  

  • User profile image
    GravyBoat

    Hi there,

     

    I'd like to watch this but, in common with other MS videos which are viewed in the page, the sound jumps and skips. If a direct link to download a video file is produced, this usually works.

     

    Any ideas please?

     

    Cheers

  • User profile image
    RiverPlate

    Thanks for the presentation, it is great, 

     

    But what about supporting 3.5 WF?

    Our application is running more than a year now using 3.5 WF and we don’t want to rewrite it, so how can we run it from the 4.0 WF?

     

  • User profile image
    DenisVuyka

    The idea of business users being happy with re-hosted workflow designer tools should fail. For the time being it seems that intellisence and code highlightning for VB expressions are not available for re-hosted scenarios. This feature is available only for Visual Studio 2010. I don't think companies will invest time, efforts and money inventing VB intellisense from the scratch, as well as trying to provide own syntax features, language bindings, etc. As for me the entire re-hosting idea is absolutely worthless without this key feature. I would believe a C# gurus entering expressions without code completion, but will never belive business users typing VB in a plain textbox.

Add Your 2 Cents