Microsoft Workflow Foundationの概要

Microsoft Workflow Foundationに関する一連の記事に注目したいと思います。 このテクノロジーは、.netのプログラミングにおける新しい、より高い抽象化レベルを表しています。 まず、テクノロジーの出現の前提条件、2つの主なタイプの作業プロセス、および開発ツールについて説明する紹介記事から始めます。 将来的には、Microsoft Workflow Foundationのさまざまな側面を詳しく見ていきます。



興味がある-読んでください。



はじめに



振り返ってみると、私たちを取り巻く世界は、連続したプロセスの無限のシリーズです。 私たちは穀物を植え、芽を出し、咲き、子孫を残し、死にます。 その代わりに何か新しいものが成長しています。 それで毎日。 人々はこれらのプロセスを説明し、コンピューター上でシミュレートし、新しい何かを思いつきます。 このため、日常のプロセスの説明を簡素化するさまざまなメンタルモデルが作成されます。 抽象化レベルが導入されました。 たとえば、彼らはオブジェクト指向プログラミングを思いつきました。 実世界のオブジェクトを記述するために使用できます。 簡単で自然です。 物を見るだけで十分であり、頭の中には多少正確なモデルがすでに現れています。このオブジェクトが持つプロパティ、実行できるアクション。



ただし、相互作用しないオブジェクトには意味がありません。 人生は運動であり、しばしば循環的です。 一方、人間は世界に存在します。 彼は彼の合理性といくつかの混乱を紹介します。 彼がしていることの多くは矛盾しています。 動機は必ずしも明確ではありません。 タイミングが常に期待に応えるわけではありません。 人は何かを忘れることができ、以前に意図していないことをします。 そして同時に、彼はオブジェクトを操作します。 石、花、水、仮想など、現実世界のオブジェクトであるかどうか:ドキュメント、情報、言葉。



これは、Microsoft Workflow Foundationテクノロジが作成されたプログラム内のオブジェクトの動きと相互作用を説明するためのものです。 これは、オブジェクトを相互に接続する相互作用またはオブジェクト自体の内部で発生するプロセスを作成できる接続リンクです。 Workflow Foundation(WF)は、すべてのプロセスを2つの主なタイプに分けます。シーケンシャルプロセスと状態ベースのプロセスです。



順次プロセス



WFの理解における順次プロセスは、通常、外部の介入なしに発生するプロセスです。 また、時間がかかりません。 そのようなプロセスの良い例は、あるフォルダーから別のフォルダーにファイルをコピーすることです。プロセスの最初にフォルダーを設定し、それが完了するまで介入しません。 つまり 実際には、デバッグされたパイプラインです。 はい、何かが壊れて何らかのアクションが必要になる場合がありますが、これらは個別に処理される例外的な状況です。



状態ベースのプロセス



状態ベースのプロセスの最良の例は、その翻訳です。 ステートマシンとは、文字通りステート装置を意味します。 これは、さまざまなイベントに応じて、ある状態から別の状態に移行できる多くの状態を持つプロセスです。 私たちが通常官僚機構で見るこれらすべて:州の保険、アパートの販売など。 休暇中または病気休暇中のさまざまな職員の署名が必要です。 このようなプロセスには、数日、数週間、または数か月という非常に長い時間がかかる場合があります。 ステートマシンワークフローが作成されたのは、このような状況のためです。



WFを提供するもの



WFが提供するものを見てみましょう。 まず第一に、これは視覚的です。 私たちは常にいくつかのスケッチ、スケッチを描きます。 より複雑なケースでは、時間図を描くなど、設計をさらに深く掘り下げます。 これで、組み込みエディターを使用してこれらのスケッチをMicrosoft Visual Stuidio 2008に転送できます。 これは次のようなものです。







プログラミングから遠く離れた人でも、ダイアグラム上で何が起こっているのかを理解することができます。

しかし、これらのすべてのスケッチは現在のプログラムとは離婚しており、何らかの方法で対話することはありません。 プロセスのフローを変更する必要がある場合は、ソースを開いて、新しいスケッチに従って変更を加える必要がある場所を覚えておく必要があります。 これらのタスクはWFで解決できます。 コードを取り出して別の場所に移動するだけです。 すぐにコンパイルし、元のバージョンと比較します。



また、WFを使用すると、システムをより明確に表示できます。 コンポーネントに、またはその逆に、組み合わせて分割できるプロセスを強調表示します。 トランザクションシステムもサポートされています。何か問題が発生した場合の補償プロセスを指定できます。 このプロセスは、エラーが発生する前の状態にシステムを戻します。



プロセスは、インターネットを介してアクセス可能なサービスまたはWebサービスとして公開できます。 さらに、セッションIDと呼び出し間のサービスの状態を保存する、いわゆるDurable Webサービスを作成して、接続を維持せずにプロセスを長時間実行することができます。 プロセスを停止し、状態を保存して、同じ場所から別のコンピューターで実行することもできます。



開発ツール



最も便利な開発ツールは、Visual Studio 2008に組み込まれているビジュアルエディターです。これにより、プロセスを迅速かつ柔軟に作成および変更できます。 低レベルでどのように機能するかを理解する必要はありません。 XAMLマークアップ言語またはC#を使用してプロセスを作成することもできます。



スタジオでプロセスを操作するためのインターフェースの主要な要素を見てみましょう。 開発中のウィンドウは次のとおりです。







各パネルの目的を考慮してください。







これは、プロセスをシミュレートするメインドキュメントです。 ここで、いくつかの要素をドラッグして順次プロセスを作成する招待が表示されます。







プロセスは、アクティビティと呼ばれる基本要素で構成されます。 ツールボックスの2番目にあります。 多くの要素が含まれています。 それらのいくつかは、名前で非常に理解しやすいです。 たとえば、WhileまたはIfElse。 ConditionedActivityGroupはより神秘的に聞こえます。







当然、すべての種類のパラメーターを構成するには、「プロパティー」パネルが必要です。







番号4で示されるドキュメントアウトラインも非常に便利です。 このプロセスの要素のツリーが表示され、ある要素から別の要素にすばやく切り替えることができます。



おわりに



WFは、プロジェクトでの作業時に、開発者に高レベルの抽象化を提供します。 既存の開発を使用して、新しいアイデアを試すことができます。 一般的に使用されるプロセスとその要素のライブラリを作成して、他のプロジェクトで再利用できます。 次の記事では、ファイルをバックアップするプログラムの例を使用して、順次プロセスを詳しく見ていきます。






All Articles