Podstawowe pojęcia związane z programem Windows Workflow

Programowanie przepływu pracy w programie .NET Framework 4.6.1 korzysta z pojęć, które mogą być nowe dla niektórych deweloperów. W tym temacie opisano niektóre pojęcia i sposób ich implementacji.

Przepływy pracy i działania

Przepływ pracy to ustrukturyzowana kolekcja akcji, które modeluje proces. Każda akcja w przepływie pracy jest modelowana jako działanie. Host wchodzi w interakcję z przepływem pracy przy użyciu funkcji WorkflowInvoker wywoływania przepływu pracy tak, jakby był to metoda, WorkflowApplication w celu jawnej kontroli nad wykonywaniem pojedynczego wystąpienia przepływu pracy oraz WorkflowServiceHost interakcji opartych na komunikatach w scenariuszach z wieloma wystąpieniami. Ponieważ kroki przepływu pracy są definiowane jako hierarchia działań, najważniejsze działanie w hierarchii można określić, aby zdefiniować sam przepływ pracy. Ten model hierarchii ma miejsce jawne SequentialWorkflow i StateMachineWorkflow klasy z poprzednich wersji. Same działania są tworzone jako kolekcje innych działań (przy użyciu Activity klasy jako podstawy, zwykle zdefiniowane przy użyciu języka XAML) lub są tworzone niestandardowe przy użyciu CodeActivity klasy , która może używać środowiska uruchomieniowego do uzyskiwania dostępu do danych lub przy użyciu NativeActivity klasy, która uwidacznia szerokość środowiska uruchomieniowego przepływu pracy autorowi działania. Działania opracowywane przy użyciu języka CodeActivity i NativeActivity są tworzone przy użyciu języków zgodnych ze specyfikacją CLR, takich jak C#.

Model danych działań

Działania przechowują i udostępniają dane przy użyciu typów przedstawionych w poniższej tabeli.

Type Opis
Zmienna Przechowuje dane w działaniu.
Argument Przenosi dane do i z działania.
Wyrażenie Działanie z podwyższoną wartością zwracaną użytą w powiązaniach argumentów.

Środowisko uruchomieniowe przepływu pracy

Środowisko uruchomieniowe przepływu pracy to środowisko, w którym są wykonywane przepływy pracy. WorkflowInvoker to najprostszy sposób wykonywania przepływu pracy. Host używa WorkflowInvoker następujących elementów:

  • Aby synchronicznie wywołać przepływ pracy.

  • Aby podać dane wejściowe lub pobrać dane wyjściowe z przepływu pracy.

  • Aby dodać rozszerzenia do użycia przez działania.

ActivityInstance to bezpieczny wątkowo serwer proxy, którego hosty mogą używać do interakcji ze środowiskiem uruchomieniowym. Host używa ActivityInstance następujących elementów:

  • Aby uzyskać wystąpienie, tworząc je lub ładując je z magazynu wystąpień.

  • Aby otrzymywać powiadomienia o zdarzeniach cyklu życia wystąpienia.

  • Aby kontrolować wykonywanie przepływu pracy.

  • Aby podać dane wejściowe lub pobrać dane wyjściowe z przepływu pracy.

  • Aby zasygnalizować kontynuację przepływu pracy i przekazać wartości do przepływu pracy.

  • Aby utrwałyć dane przepływu pracy.

  • Aby dodać rozszerzenia do użycia przez działania.

Działania uzyskują dostęp do środowiska uruchomieniowego przepływu pracy przy użyciu odpowiedniej ActivityContext klasy pochodnej, takiej jak NativeActivityContext lub CodeActivityContext. Są one używane do rozpoznawania argumentów i zmiennych, planowania działań podrzędnych i wielu innych celów.

Usługi

Przepływy pracy zapewniają naturalny sposób implementowania i uzyskiwania dostępu do luźno powiązanych usług przy użyciu działań obsługi komunikatów. Działania obsługi komunikatów są oparte na programie WCF i są podstawowym mechanizmem służącym do pobierania danych do i z przepływu pracy. Działania obsługi komunikatów można tworzyć razem, aby modelować dowolny wzorzec wymiany komunikatów. Aby uzyskać więcej informacji, zobacz Działania obsługi komunikatów. Usługi przepływu pracy są hostowane przy użyciu WorkflowServiceHost klasy . Aby uzyskać więcej informacji, zobacz Hosting Workflow Services Overview (Hostowanie usług przepływu pracy — omówienie). Aby uzyskać więcej informacji na temat usług przepływu pracy, zobacz Usługi przepływu pracy

Trwałość, zwalnianie i długotrwałe przepływy pracy

Przepływ pracy systemu Windows upraszcza tworzenie długotrwałych programów reaktywnych, zapewniając:

  • Działania, które uzyskują dostęp do danych wejściowych zewnętrznych.

  • Możliwość tworzenia Bookmark obiektów, które mogą być wznawiane przez odbiornik hosta.

  • Możliwość utrwalania danych przepływu pracy i zwalniania przepływu pracy, a następnie ponownego ładowania i ponownego aktywowania przepływu pracy w odpowiedzi na wznowienie Bookmark obiektów w określonym przepływie pracy.

Przepływ pracy stale wykonuje działania, dopóki nie będzie więcej działań do wykonania lub dopóki wszystkie aktualnie wykonywane działania nie oczekują na dane wejściowe. W tym ostatnim stanie przepływ pracy jest bezczynny. Host może zwolnić przepływy pracy, które zostały bezczynne i załadować je ponownie, aby kontynuować wykonywanie po nadejściu komunikatu. WorkflowServiceHost Udostępnia funkcje tej funkcji i udostępnia rozszerzalne zasady zwalniania. W przypadku bloków wykonywania, które używają danych stanu nietrwałego lub innych danych, których nie można utrwały, działanie może wskazywać hostowi, że nie powinno być utrwalane przy użyciu elementu NoPersistHandle. Przepływ pracy może również jawnie utrwalać swoje dane na trwałym nośniku Persist magazynu przy użyciu działania.