Top 22 Windows Workflow Foundation Interview Questions You Must Prepare 19.Apr.2024

A workflow is a collection of actions (called activities) that presents the model of a process. A workflow provides a way to describe the order of the execution of a long running process and relationships between different activities. Multiple instances of a workflow may be active at any given moment in an application.

Dynamic update is a powerful feature of WF that describes the ability of WF to modify the execution path of a running workflow. This feature is used in circumstances that call for extraneous behavior that was not modeled by the original workflow developer.

You can create and modify declarative rule conditions by using the Rule Condition Editor dialog box.

The base activity library is a collection of activities used to create workflows.

In addition to the standard activities available within the base activity library, you can create new activities to meet specific business needs. Creating custom activities may be required to support a particular application that you want to integrate with WF. Custom activities are generally created through attributes and inheritance. You can create two types of custom activities, base and composite. You can create basic custom activity by inheriting the Activity class and custom composite activity by inheriting the compositeActivity class or a derived type.

A system workflow is a workflow that is developed to automate interactions among applications. Such workflow is usually static and predictable. On the other hand, a human workflow is a workflow that coordinates interactions of applications with people. As human workflows involve both software and people, they need to be more flexible than system workflows.

WF provides developers a declarative way to create workflows by using extensible Application Markup Language (XAML). The files used to store such workflow markups are known as extensible Object Markup Language (XOML) files.

A host process is an executable program that hosts a workflow. It may be a Windows Forms application, a Web application, or a Web service application. You can use Web services in the host process or remoting to enable other applications to communicate with the workflow.

In WF 4.0, a bookmark is a mechanism that enables an activity to wait for an input without interrupting a workflow thread. When an activity signals that it is waiting for the input from a user, it can create a bookmark. A bookmark is created by using the BookmarkOptions class.

This class provides the following bookmark types:

None :Represents a bookmark that can be resumed exactly once. This is the default bookmark type.

MultipleResume : Refers to a bookmark that you can resume multiple times.

NonBlocking: Refers to a bookmark that does not block the functioning of the workflow.

According to Microsoft, there are four major principles that explain the behavior and working of workflows. Developers can use these principles while developing workflow-based applications.

The four principles are as follows:

  • Workflows help in coordinating the work performed by people and software.
  • Workflows are long-running and stateful.
  • Workflows are based on extensible models.
  • Workflows remain transparent and dynamic throughout their lifecycle.

Runtime services consist of predefined and user-defined classes that are available to the workflow runtime engine during execution to customize the behavior of workflow runtime.

Some of the runtime services available in WF 4.0 are as follows:

Scheduling services: Enable creating and scheduling new workflow instances for execution.

Work batch services:Enable behavior to maintain a stable and consistent execution environment.

Persistence services: Enable you to save or restore the state of a running workflow for later use. You can restart the saved workflow anytime in future, even after weeks of inactivity.

Tracking services: Enable you to monitor the state of the workflows. This is particularly useful when you have multiple workflows active at the same time (for example, in a shopping cart application).

Timer service:Manages the timing required by the DelayActivity activity.

Transactions services:Provide the transaction support needed for data integrity.

Data exchange services:Manage custom communication services.

Threading services:Administer physical threads used to execute workflow instances.

Workflows serve the purpose of automating business processes. Now, since each type of business has a wide range of problems; therefore, a workflow platform needs to be extensible. WF provides you with a set of base activities, such as IfElse, Code, and Delay, to build a workflow. You can extend these activities or build new activities to meet your requirements. Besides activities, you can also extend services, such as tracking, management, and persistence, provided by the runtime engine.

In WF 4.0, the following two types of workflows are used:

Flowchart workflows – Helps you to create workflows using the common flowchart elements. In WF, the Flowchart activity is generally used to implement a non-sequential workflow, and occasionally it implements sequential workflows in case the FlowDecision nodes are not used. The Flowchart activity contains a collection of flow nodes, which inherit from the FlowNode class.

The following types of nodes or elements can be a part of a flowchart:

FlowStep: Executes activities of a flowchart in a sequence.

FlowDecision: Shows the execution on the basis of a Boolean condition. It is similar to the If construct.

FlowSwitch : Shows the execution on the basis of an exclusive switch. It is similar to the Switch construct.

Procedural workflows : Helps you to create workflows using basic and sequential execution standards. In WF, procedural workflows use flow control constructs, such as While, Switch, ForEach, and If, to execute activities. These flow control constructs are similar to those found in procedural languages. Procedural workflows can also contain other flow control activities, such as Flowchart and Sequence.

Windows Workflow Foundation (WF) is a technology that was first introduced in .NET Framework 3.@WF consists of a programming model, a workflow runtime engine, workflow designer, a rules engine, and tools to quickly build workflow-based applications on Windows. WF facilitates the separation between the business process code and the actual implementation code.

WF consists of several components that work together to create desired workflow.

The components of WF are given as follows:

  • Workflows and activities
  • Base activity library
  • Custom activities
  • Host process
  • Activity data mode!
  • Runtime engine
  • Runtime services

A runtime engine of WF provides the basic functionality to execute and manage the workflow lifetime. It runs within the host process and is responsible for executing each workflow instance. A host process can interact with multiple runtime engines at a time, where each engine executes multiple workflow instances.

The host process interacts with runtime engine by using any of the following classes:

  1. WorkflowInvoker : Invokes a workflow as its method.
  2. WorkflowApplication: Controls the execution of a single workflow instance explicitly.
  3. WorkflowServiceHost: Hosts the workflows and allows sending and receiving messages among various instances of workflows.

In Windows Workflow Foundation 4.0, an activity is the basic unit of composition and execution of a workflow. Each activity in a workflow consists of its own variables and arguments and is a subclass of the Activity class. These activities provide facilities for flow control, exception handling, data persistency, loading or unloading workflows, tracking, and transaction flow.

You can implement a condition by using either of the following ways:

 By creating a rule condition : Specifies that you can implement conditions either directly in code or by using a tool, called the Rule Condition Editor. Rule conditions are stored in a separate Extensible Markup Language (XML) file. When a rule condition occurs in a workflow, the expression in a condition is evaluated and a Boolean value is returned.

By creating a code condition : Refers to defining a condition directly in code. A code condition can be created by writing a method in the code. The method contains code for the condition and returns a Boolean value.

WF runtime engine is responsible to execute each workflow instance.

By default, a sequential workflow has only two steps:

  • Start
  • Finish