Windows Workflow Foundation - An Introduction
Wednesday, July 9, 2008Introduction
WF provides you with the multithreading capability without the hassle. Without WF you either execute your workflow tasks in the same thread that runs your UI or main process or you write multithreaded software yourself (It’s not so easy) and have a separate threads execute the process logic.
Comparing WF with Microsoft Biztalk and WCF
Orchestration is Biztalk’s term for workflow. You can use a Graphical Editor to lay out business processes, and some of these processes might even include external egencies, such as a trading partner, through external communications protocols. Communication with your trading partners is easy and seamless with BizTalk.
Biztalk is designed for inter application (multiple apps). WF, on the other hand, is designed to work at OS level and is therefore appropriate for integration into a single app within a single domain. But it doesn’t mean you can’t communicate with external processes and servers using WF, but WF’s primary focus is facilitating WF functionality within your app.
When, in a application, we change a given method’s signature, name etc, I must recompile all the software that that uses that method. So we use web service by changing our mentality from “use this method” to “use this service”. That is called SOA. Service based software is integrated using contracts and policy. It’s expected that services will morph and change, and the goal is to have dependent processes recognize changes and adjust accordingly. Contract identify what services are available. Policy describes how the services are to be used. When contracts or policies are changed, ideally service consumers automatically adjust and change as well
Actually, when contracts or policies change, things don’t magically fix themselves. In reality, service provider should communicate how many previous versions they’ll support and service sonsumer should update their code to most up-to-date version asap.
Though WF provides you with some basic tool to use XML web services, you can expose and consume web services. But WCF is much more powerful. Primary goal of WCF is to unify the programming model for all electronic processes, certainly second goal is to implement Internet standards for Web Services and allow you to build connection based SOA. If you require string SOA support, by all means use WCF.