Workflow foundation gives us three ways to author workflows
Code-Only authoring mode
* In this mode, the design portion of the workflow model and also the logic portion are compiled together into a single assembly, along with the rules defined in .rules file seperated into a resources file which gets embedded
Code-Seperation authoring mode
* In this mode, design portion of the workflow is contained in .xoml (eXtensible Markup Language) and the logic portion of the workflow is contained in .xoml.cs file.
* Since .xoml file is serializable and seperated out into an xml format, any workflow designer can load it up and udpate the content and plug it back into the model.
* Note the extension being different than .xaml (which is used in Windows Presentation Foundation). Microsoft needed this to load appropriate designer (WF or WPF) in Visual Studio. That is why two extensions.
No-Code authoring mode
* In this mode, the entire workflow model is authored using XAML only in .xoml file. No code-beside file exists in this case.
* We need to make sure, we do not need to write any event handlers which demand for code-beside file.
* Only custom workflow and custom activities can be referenced in .xoml