实现自定义Workflow(1):在VS中创建一个Workflow

摘要

 

  在本系列文章中,笔者介绍了如何使用SharePoint Designer 2007自带的Workflow设计器来设计一个Workflow。事实上,这个设计器已经可以设计非常复杂的Workflow了。
  但是,在实际应用中,我们还是没有办法只满足于使用现成的那些Workflow,那么,能不能使用VS 2005编写一个自定义的Workflow,然后在SharePoint Designer 2007中调用呢?
  答案是肯定的。这里,笔者将讲解如何实现自定义的Workflow。
  为简单起见,这里笔者仅仅只设计一个写一个文件的Workflow,然后在SharePoint Designer 2007中调用。朋友们在实现这个简单的Workflow后,自然可以尝试更为复杂的自定义的Workflow了。
  值得注重的是,要完成本部分的学习,您需要安装Visual Studio 2005 Extensions for Windows Workflow Foundation Beta 2.2 (EN)

 

正文

 

  为了更清楚地让朋友们了解在SharePoint中实现自定义Workflow的几个步骤,本篇文章将被分割成四个小的部分,第一部分讲解在VS中创建一个Workflow,第二部分讲解设置配置文件,第三部分讲解在Designer中创建一个Workflow,最后一部分讲解运行Workflow。因此而给大家带来的阅读不便,就请海涵了:)
  为了方便您的学习,您可以下载本篇文章所创建的工程。单击此处下载。
  本篇文章将介绍实现自定义Workflow的第一部分——在VS中创建一个Workflow。

  下面将记录每一步的操作过程。
  1、首先打开VS 2005,创建一个新的Workflow Activity Library项目,项目取名为Eallies.Workflow.Demo。
  假如您已经安装了Visual Studio 2005 Extensions for Windows Workflow Foundation Beta 2.2 (EN),在项目类型下,就可以找到一个名为Workflow的文件夹。


  2、项目创建成功后,将默认的类名改成WriteFile,结果就是这样的:


  3、我们可以看到,左边的工具栏中有非常多的可用Action,我们拖一个Code Action到设计器上面,并取名为WriteFileAction。


  4、双击这个WriteFileAction,就可以进入代码编写界面,我们将代码更改为如下的代码。
  这里,我们定义了一个名为Text的属性,并把这个Text写到c:\Workflow.txt这个文件中。

    1 using System;

    2 using System.ComponentModel;

    3 using System.ComponentModel.Design;

    4 using System.Collections;

    5 using System.Drawing;

    6 using System.Workflow.ComponentModel.Compiler;

    7 using System.Workflow.ComponentModel.Serialization;

    8 using System.Workflow.ComponentModel;

    9 using System.Workflow.ComponentModel.Design;

   10 using System.Workflow.Runtime;

   11 using System.Workflow.Activities;

   12 using System.Workflow.Activities.Rules;

   13 

   14 using System.IO;

   15 

   16 namespace Eallies.Workflow.Demo

   17 {

   18     public partial class WriteFile: SequenceActivity

   19     {

   20         private string _Text = string.Empty;

   21 

   22         public WriteFile()

   23         {

   24             InitializeComponent();

   25         }

   26 

   27         public string Text

   28         {

   29             get { return this._Text; }

   30             set { this._Text = value; }

   31         }

   32 

   33         private void WriteFileAction_ExecuteCode(object sender, EventArgs e)

   34         {

   35             string path = @"c:\Workflow.txt";

   36             string text = this._Text + "-" + DateTime.Now.ToString();

   37             StreamWriter writer = new StreamWriter(path);

   38             writer.Write(text);

   39             writer.Close();

   40         }

   41     }

   42 }



  5、同样的方法,我们将项目的编译目录更改为C:\Inetpub\wwwroot\wss\VirtualDirectories\9001\_app_bin,并为项目强命名。
  这就是完成后的效果:


  6、最后一步就是编译项目了。

  至此,第一部分的在VS中创建一个Workflow的工作就完成了。
  下一篇文章我将记录如何实现自定义Workflow的第二部分——设置配置文件的过程。欢迎大家继续关注:)多谢!

来源:http://www.eallies.com/

posted on 2009-07-23 09:25  船长  阅读(1310)  评论(0编辑  收藏  举报