WF3設計時效能I

2021-09-22 11:22:47 字數 1092 閱讀 5850

譯自:

在我們開始討論wf3設計時效能之前,讓我們先澄清一些術語。

1. wf3是作為.net framework3.0和3.5的一部分發布的,要注意的是儘管wf3也做為.net  framework 4.0的一部分,但是system.workflow.*程式集是其最新的版本。

2. wf4是第一次作為.net framework 4.0的一部分發布的,system.activities.*是其最新的版本。

沒錯,wf3和wf4在.net framework 4.0中是同時發布的。

關於設計時的效能,我們聽到了很多反饋。一般來說,抱怨是設計器的效能隨著活動的數量增加而呈指數性的降低。

接下來的幾篇文章中,我們將討論如何提高設計器的效能,以及我們所做的一些改進效能的修補程式。這裡有一篇關於工作流效能的***可以參考。

下面是需要牢記的一些tips:

1. 將工作流中使用到的型別轉移到乙個不同的專案中

將介面,事件型別,自定義活動,helper類轉移到不同的專案中,例如有乙個客戶的解決方案,有10個專案,10個工作流都有乙個對應的事件型別。這樣當使用者每次更改工作流的時候都會重新解析更新設計時的型別資訊。將這些事件型別轉移到乙個不同的程式集中有助於提高效能。

2. 減少乙個專案中工作流的數量

每乙個工作流都是乙個型別,不管是c#/vb**形式的,還是xoml形式的。他們都需要解析並生成對應的設計時型別,所以如果乙個專案中有10個工作流,我們第一次開啟任何乙個工作流的時候都需要解析其他所有的工作流。我們可以根據功能分組將每2到3個工作流放到乙個專案中有助於提高效能。

3. 將大的狀態機工作流重構小的

乙個例子是我們從乙個客戶發現他有乙個工作流有780個狀態和1000個活動,導致initializecomponent()中有16000行**。將此狀態機工作流重構為一些較小的可重用的工作流有助於提高效能,並且可以減少大量的冗餘狀態。

4. 在活動的建構函式中不要做長時間的任務

活動的建構函式在設計時會被呼叫,所以象類似連線資料庫這樣的事情永遠都不要放在建構函式中,他會導致使用這些活動的設計器開啟時間過長。

堅持學習WF 2 WF創作模式和設計時工具

visual sudio提供了一系列的wf設計工具,這些可以讓你更方便更高效的開發你的工作流應用,主要包括以下幾部分 1.visual studio專案模板 2.視覺化的工作流和活動設計器 3.規則條件設計器 4.工作流偵錯程式 5.命令列編譯工具 wfc.exe 在說這些之前,我們先來說說工作流的...

堅持學習WF 2 WF創作模式和設計時工具

置頂 堅持學習wf文章索引 visual sudio提供了一系列的wf設計工具,這些可以讓你更方便更高效的開發你的工作流應用,主要包括以下幾部分 1.visual studio專案模板 2.視覺化的工作流和活動設計器 3.規則條件設計器 4.工作流偵錯程式 5.命令列編譯工具 wfc.exe 在說這...

WF架構概要設計

最近在學習wf,好久沒有這麼長時間持續看書了,我覺得有點學習疲勞.順帶一提很奇怪,在codeplex上面沒有找到什麼以wf實現工作流的專案,於是我就面臨乙個問題 如何在實際應用中使用這個框架呢?初步構思,有這麼三種形式 1.將wf寫成靜態工具類的模式.在這種情況下,每次都需要根據活動的當前狀態來設定...