Monday, February 26, 2007

Windows Workflow Foundation

Workflow at its simplest is the movement of documents and/or tasks through a work process. More specifically, workflow is the operational aspect of a work procedure: how tasks are structured, who performs them, what their relative order is, how they are synchronized, how information flows to support the tasks and how tasks are being tracked. As the dimension of time is considered in Workflow, Workflow considers "throughput" as a distinct measure. Workflow problems can be modeled and analyzed using graph-based formalisms.

Business processes are set up by organizations to define precisely how they are to work.

Workflows are a way of defining business processes. They define the steps followed in a process, who carries out each step, and what are the inputs and outputs of each step.

A workflow is often seen as a precise definition of how business is conducted or how a business process proceeds. It defines the business process using a precise set of system terms - for example, roles, tasks, documents, transitions and so on. Most current workflow definition methods define those business processes that follow a precise set of steps.

WWF or WF is the built-in collaboration and workflow technology included in the .NET Framework of the Windows Vista operating system. WF is part of the Vista programming model formerly called WinFX and now called .NET Framework 3.0. To develop workflow applications, Visual Studio 2005 is required plus the Extensions for Windows Workflow Foundation.

From Wikipedia:

Windows Workflow Foundation (WF) is a Microsoft technology for defining, executing, and managing workflows. This technology is part of .NET Framework 3.0 and will be available natively in the Windows Vista operating system, and has been backported to the Windows XP and Windows 2003 Server operating systems. The .NET Framework 3.0 "workflow runtime" provides common facilities for running and managing the workflows and can be hosted in any CLR app domain.

A new XML-based language XAML is commonly used for declaring the structure of a workflow. However, the workflow may also be expressed in code using any .NET-targeted language (like C#).

Workflows comprise 'activities'. Developers can write their own domain-specific activities and then use them in workflows. The .NET Framework 3.0 Windows Workflow Foundation also provides a set of general-purpose 'activities' that cover several control flow constructs.

Windows Workflow Foundation is supported by a companion set of extensions to Visual Studio 2005. These extensions contain a visual workflow designer which allows users to design workflows, a visual debugger which enables the users to debug the workflow designed, and a project system which enables the user to compile their workflows inside Visual Studio 2005.

Here are some good articles to understand what is Windows Workflow Foundation in .NET 3,0 from a higher lever:
  • What Is Windows Workflow Foundation?
  • Get Ready for Windows Workflow Foundation
  • Windows Workflow Foundation at MSDN

    Some interview questions related to WWF or WF are:
    What is Windows Workflow Foundation?
    What is a Workflow?.
    What are different types of Workflow in Windows Workflow foundation?
    When should we use a sequential workflow and when should we use state machine?
    How do we create workflows using designer?
    How do we specify conditions in Work flow?
    How do you handle exceptions in workflow?
    What is the use of XOML files?
    Twist: - How can we serialize workflows?
    How can we pass parameters to workflow?
  • Tuesday, January 30, 2007

    Top 12 all time technical books for every Software Developer & Engineer

    Top 12 all time technical books for every Software Developer & Engineer

    I found this article on Vishal Sharma's Blog on Startups, Technology, Telecom, Current Affairs very useful. The top 12 books listed here realy very important for every software developer or Engineer. I my self has read most of them but not all :)

    The top 12 books listed here are:

    • Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
    • Code Complete, Second Edition by Steve McConnell
    • The Mythical Man-Month: Essays on Software Engineering,
      20th Anniversary Edition by Frederick P. Brooks
    • The Art of Computer Programming, Volumes 1-3 Boxed Set by Donald E. Knuth
    • The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt, David Thomas
    • Unix Network Programming, Vol. 1 and II: The Sockets Networking API, Third Edition by W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, Richard W. Stevens
    • Advanced Programming in the UNIX(R) Environment (2nd Edition) by W. Richard Stevens, Stephen A. Rago
    • Algorithms in C, Parts 1-5 : Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms (3rd Edition)
    • Modern Operating Systems (2nd Edition) by Andrew Tanenbaum
    • The Protocols (TCP/IP Illustrated, Volume 1 by W. Richard Stevens
    • Fundamentals of Database Systems (5th Edition)
      by Ramez Elmasri, Shamkant B. Navathe
    • The Guru's Guide to Transact-SQL by Ken Henderson.