Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pengembangan alur kerja dalam .NET Framework 4.6.1 menggunakan konsep yang mungkin baru untuk beberapa pengembang. Topik ini menjelaskan beberapa konsep dan bagaimana mereka diimplementasikan.
Alur Kerja dan Aktivitas
Alur kerja adalah kumpulan tindakan terstruktur yang memodelkan proses. Setiap tindakan dalam alur kerja dimodelkan sebagai aktivitas. Host berinteraksi dengan alur kerja dengan menggunakan WorkflowInvoker untuk memanggil alur kerja seolah-olah itu adalah metode, WorkflowApplication untuk kontrol eksplisit atas eksekusi instans alur kerja tunggal, dan WorkflowServiceHost untuk interaksi berbasis pesan dalam skenario multi-instans. Karena langkah-langkah alur kerja didefinisikan sebagai hierarki aktivitas, aktivitas paling atas dalam hierarki dapat dikatakan menentukan alur kerja itu sendiri. Model hierarki ini menggantikan kelas SequentialWorkflow dan StateMachineWorkflow eksplisit dari versi sebelumnya. Aktivitas itu sendiri dikembangkan sebagai kumpulan aktivitas lain (menggunakan Activity kelas sebagai dasar, biasanya didefinisikan dengan menggunakan XAML) atau dibuat khusus dengan menggunakan CodeActivity kelas , yang dapat menggunakan runtime untuk akses data, atau dengan menggunakan NativeActivity kelas , yang mengekspos luasnya runtime alur kerja ke penulis aktivitas. Aktivitas yang dikembangkan dengan menggunakan CodeActivity dan NativeActivity dibuat dengan menggunakan bahasa yang mematuhi CLR seperti C#.
Model Data Aktivitas
Aktivitas menyimpan dan berbagi data dengan menggunakan jenis yang diperlihatkan dalam tabel berikut ini.
| Tipe | Deskripsi |
|---|---|
| Variabel | Menyimpan data dalam aktivitas. |
| Argumen | Memindahkan data ke dalam dan ke luar aktivitas. |
| Ekspresi | Aktivitas dengan nilai pengembalian yang ditingkatkan yang digunakan dalam pengikatan argumen. |
Runtime Alur Kerja
Runtime alur kerja adalah lingkungan tempat alur kerja dijalankan. WorkflowInvoker adalah cara paling sederhana untuk menjalankan alur kerja. Host menggunakan WorkflowInvoker untuk hal berikut:
Untuk memanggil alur kerja secara sinkron.
Untuk memberikan input ke, atau mengambil output dari alur kerja.
Untuk menambahkan ekstensi yang akan digunakan oleh aktivitas.
ActivityInstance adalah proksi thread-safe yang dapat digunakan host untuk berinteraksi dengan runtime. Host menggunakan ActivityInstance untuk hal berikut:
Untuk memperoleh instans dengan membuatnya atau memuatnya dari penyimpanan instans.
Untuk diberi tahu tentang kejadian siklus hidup instans.
Untuk mengontrol eksekusi alur kerja.
Untuk memberikan input ke, atau mengambil output dari alur kerja.
Untuk memberi sinyal kelanjutan alur kerja dan meneruskan nilai ke dalam alur kerja.
Untuk mempertahankan data alur kerja.
Untuk menambahkan ekstensi yang akan digunakan oleh aktivitas.
Aktivitas mendapatkan akses ke lingkungan runtime alur kerja dengan menggunakan kelas turunan yang sesuai ActivityContext , seperti NativeActivityContext atau CodeActivityContext. Mereka menggunakan ini untuk menyelesaikan argumen dan variabel, untuk menjadwalkan aktivitas anak, dan untuk banyak tujuan lainnya.
Layanan
Alur kerja menyediakan cara yang alami untuk menerapkan dan mengakses layanan yang terhubung secara longgar dengan menggunakan aktivitas pesan. Aktivitas olahpesan dibangun di WCF dan merupakan mekanisme utama yang digunakan untuk memasukkan dan mengeluarkan data dari alur kerja. Anda dapat menyusun aktivitas olahpesan bersama-sama untuk memodelkan pola pertukaran pesan apa pun yang Anda inginkan. Untuk informasi selengkapnya, lihat Aktivitas Olahpesan. Layanan alur kerja dihosting menggunakan WorkflowServiceHost kelas . Untuk informasi selengkapnya, lihat Gambaran Umum Layanan Alur Kerja Hosting. Untuk informasi selengkapnya tentang layanan alur kerja lihat Layanan Alur Kerja
Persistensi, Penurunan Muatan, dan Alur Kerja Long-Running
Windows Workflow menyederhanakan penulisan program reaktif yang berjalan lama dengan menyediakan:
Aktivitas yang mengakses input eksternal.
Kemampuan untuk membuat Bookmark objek yang dapat dilanjutkan oleh pendengar host.
Kemampuan untuk menyimpan data alur kerja dan membongkar alur kerja, lalu memuat dan mengaktifkan ulang alur kerja sebagai respons terhadap dimulainya kembali objek Bookmark dalam alur kerja tertentu.
Alur kerja terus menjalankan aktivitas sampai tidak ada lagi aktivitas untuk dijalankan atau sampai semua aktivitas yang sedang dijalankan menunggu input. Dalam status terakhir ini, alur kerja menganggur. Adalah umum bagi host untuk membongkar alur kerja yang telah menganggur dan memuatnya kembali untuk melanjutkan eksekusi ketika pesan tiba. WorkflowServiceHost menyediakan fungsionalitas untuk fitur ini dan menyediakan kebijakan pemuatan yang dapat diperluas. Untuk blok eksekusi yang menggunakan data status volatil atau data lain yang tidak dapat dipertahankan, aktivitas dapat menunjukkan kepada host bahwa itu tidak boleh dipertahankan dengan menggunakan NoPersistHandle. Alur kerja juga dapat secara eksplisit mempertahankan datanya ke media penyimpanan yang tahan lama dengan menggunakan aktivitas.Persist