요즘 WWF 에 관심 이 많아 요. 대충 보 세 요.
5696 단어 비교 하 다.
다운로드 주소 입 니 다.
http://www.microsoft.com/downloads/thankyou.aspx?familyId=5D61409E-1FA3-48CF-8023-E8F38E709BA6&displayLang=zh-cn
Microsoft. NET Framework 3.0 언어 팩
http://www.microsoft.com/downloads/thankyou.aspx?familyId=41C61D2A-D411-4DDE-9013-BB08EB688BB6&displayLang=zh-cn
Microsoft. NET Framework 3.0 은 구성 요소 패 키 지 를 재발 행 할 수 있 습 니 다.
http://www.microsoft.com/downloads/thankyou.aspx?familyId=10CC340B-F857-4A14-83F5-25634C3BF043&displayLang=zh-cn
이 개발 환경 은 vs 2005 에 설치 해 야 한다.
워 크 플 로 엔진 의 Host 를 선택 할 수 있 습 니 다.
그 가 처리 하 는 것 은 주로 두 가지 작업 흐름 이 있다. 순서 작업 흐름 (
Sequential Workflow) 와 상태 기 워 크 플 로 (
State Machine Workflow ):
A sequential workflow is ideal for operations expressed by a pipeline of steps that execute one after the next until the last activity completes. Sequential workflows, however, are not purely sequential in their execution. They can still receive external events or start parallel tasks, in which case the exact sequence of execution can vary somewhat.
state machine workflow is made up of a set of states, transitions, and actions. One state is denoted as a start state, and then, based on an event, a transition can be made to another state. state machine workflow can have a final state that determines the end of the workflow. 시각 화 된 디자인 인터페이스 가 있 는데 마치 aspx 페이지 를 디자인 하 는 것 과 같 습 니 다.각 활동 (activities) 을 컨트롤 로 끌 어 다 놓 습 니 다.모든 작업 항목 은 하나의 컨트롤 과 같 습 니 다. 그 작업 흐름 은 하나의 창 입 니 다. 예 를 들 어 Message Box. Show. To continue with the Windows Forms analogy, a workflow is like a form, whereas activities are like controls 등 코드 를 직접 쓸 수 있 습 니 다. 이 창 은 xml 형식 으로 저장 할 수 있 지만. cs 파일 은 그대로 입 니 다.이것 은 그 가 실제로 한 것 이다. this.Activities.Add(this.code1); this.DynamicUpdateCondition = null; this.ID = "Workflow1"; FirstName.Direction = System.Workflow.ComponentModel.ParameterDirection.In; FirstName.Name = "FirstName"; FirstName.Type = typeof(string);터미널 디 버 깅 작업 흐름 을 설정 할 수 있 습 니 다.전달 데이터: 두 가지 방식 으로 Param 과 이벤트 가 있 습 니 다. 。필요 한 Param (일부 공 통 된 속성 으로) 데이터 의 제공 과 처 리 를 스스로 설정 할 수 있 습 니 다. 예 를 들 어 낮은 파 라 메 터 를 내 고 Host 의 시간 을 workflow 에 연결 해 야 합 니 다.다음은 창 (Host) 단추 의 이벤트 처리 코드 입 니 다. Dictionary
parameters = new Dictionary
();
parameters.Add("FirstName", txtFirstName.Text);
parameters.Add("LastName", txtLastName.Text);
// Start the workflow
Guid instanceID = Guid.NewGuid();
_wr.StartWorkflow(workflowType, instanceID, parameters);
프로 세 스 처리 에 있어 기능 이 매우 강해 서 IfElse, while, WaitForData, Suspend, Listen, Delay, EventDriven 등 30 여 가지 디자인 을 할 수 있다.Activity: Public partial class SendMail Activity: System. Workflow. ComponentModel. Activity {개발 public SendMailActivity() { InitializeComponent(); } protected override Status Execute(ActivityExecutionContext context) { : }}상태 기 워 크 플 로 가 번 거 롭 습 니 다. 상태 기 워 크 플 로 를 초기 화 하 는 것 입 니 다: private void Start Workflow Runtime () { // Create a new Workflow Runtime for this application _runtime = new WorkflowRuntime(); // Register event handlers for the WorkflowRuntime object _runtime.WorkflowTerminated += new EventHandler
(WorkflowRuntime_WorkflowTerminated);
_runtime.WorkflowCompleted += new
EventHandler
(WorkflowRuntime_WorkflowCompleted);
// Create a new instance of the StateMachineTrackingService class
_stateMachineTrackingService = new StateMachineTrackingService(_runtime);
// Start the workflow runtime
_runtime.StartRuntime();
// Add a new instance of the OrderService to the runtime
_orderService = new OrderService();
_runtime.AddService(_orderService);
}
. net 2.0 에서 EventHandler 는 사실 기능 적 인 확장 을 했 습 니 다. 그 중의 한 단계 입 니 다.
private Guid StartOrderWorkflow(string orderID)
{
// Create a new GUID for the WorkflowInstanceId
Guid instanceID = Guid.NewGuid();
// Load the OrderWorkflows assembly
Assembly asm = Assembly.Load("OrderWorkflows");
// Get a type reference to the OrderWorkflows.Workflow1 class
Type workflowType = asm.GetType("OrderWorkflows.Workflow1");
// Start a new instance of the state machine with state tracking support
StateMachineInstance stateMachine =
_stateMachineTrackingService.RegisterInstance(workflowType, instanceID);
stateMachine.StateChanged += new
EventHandler
(StateMachine_StateChanged); stateMachine.StartWorkflow(); _stateMachineInstances.Add(instanceID.ToString(), stateMachine); // Return the workflow GUID return instanceID; }
, biztalk,office
, osworkflow,