微软工作流平台WF培训笔记(2天)

WF培训课堂笔记

EKING    2007-07-30

 

        因项目工作流平台的选型需要,近日部门邀请微软培训讲师徐晓卓老师给我们作了2天的微软工作流平台的全面介绍与技术培训。

技术选取的准则:

1.成熟的技术

2.主流的技术

3.熟悉的技术

 

 

软件发展的三个阶段:

面向对象 OO

面向组件 Component (事件驱动:事件,代理,委托)

面向服务 SOA  (Saas)

 

Application Block

Enterprise Library

Software Factory

 

数据库表主键:推荐用Guid (128位字符),在SQL SERVER 中字段默认值 使用内建函数 newid()

好处:数据整合时主键不会重复

工作流运行环境:

1. .net framework 3.0  (2.0的扩展版本)

   前提:必修安装.net framework 2.0

2. VS2005 SP1

3. Workflow foundation

 

序列图:有向无环图

状态图:可以有环

 

工作流开发实例

1. HelloWorldWorkFlow

基本顺序工作流,包括工作流初始化参数

包括2个项目:HelloWorldWorkflow WindowsApplication1

2. ExpenceWorkFlows

包括5个项目:

Activities :自定义活动

Services 外部服务

Host  宿主程序,服务端

Application:客户端调用程序 (.net remoting调用)

Workflows:工作流

3. Custom Activity

1) 自定义属性

2) 自组合活动

4. Host Workflow

1) WorkflowRuntime生命周期

Start

Load, Unload, Persiste

Stop, Complete, Teminate

Suspend, Resume

Idle

 

2) GetInstanceTrackingEvents(Guid instanceId)在何时被调用?

 

5. State Machine Activity  

有环的情况

6. WebService

7.改变工作流的结构

static void modifyWorkflowFromHost(WorkflowInstance workflowInstance)

              {

                   if (!workflowUpdated)

                   {

                       workflowUpdated = true;

 

                       Activity workflowInstanceDefinition = workflowInstance.GetWorkflowDefinition();

                    WorkflowChanges workflowChangesToMake = new WorkflowChanges(workflowInstanceDefinition); //WorkflowChanges用来改变工作流结构

 

                       // remove ifelse

                       Console.WriteLine("/tHost change to always require approval for");

                       Console.WriteLine("/tInstanceId: " + workflowInstance.InstanceId);

 

                       CompositeActivity ifelse = workflowChangesToMake.TransientWorkflow.Activities["ifElse1Activity"] as CompositeActivity;

                       workflowChangesToMake.TransientWorkflow.Activities.Remove(ifelse);

 

                       // setup to invoke NewStepWorkflow type

                       InvokeWorkflowActivity invokeNewStepWorkflow = new InvokeWorkflowActivity();

                       invokeNewStepWorkflow.Name = "AddNewStepWorkflow";

                       invokeNewStepWorkflow.TargetWorkflow = typeof(DynamicUpdateInWorkflow.Workflow2);

 

                       // insert approval workflow

                       workflowChangesToMake.TransientWorkflow.Activities.Insert(1, invokeNewStepWorkflow);

 

                       // apply transient changes to instance

                       workflowInstance.ApplyWorkflowChanges(workflowChangesToMake);

                   }

                   else

                   {

                       Console.WriteLine("/tWorkflow has already been updated by the Host");

                   }

              }

www.dinnernew.net : 大型分布式应用的例子,食品方面,里面有很多新技术(工作流,mmc)

CD C:/WINDOWS/assembly

CD assembly

Dir  可以看到所有共享的程序集目录

 

 

网络安全 多重身份认证(一般三选二)

1) 我知道什么:用户名,密码

2) 我有什么:身份卡 (如微软使用 SmartClient

3) 我是什么: 生物技术(指纹技术)

 

微软外部员工登陆内部系统:用户名/密码 + SmartClient

                          VPN + SSL

 

 

日志

1.       四个级别:Error, Warning, Info, Verbose

2.       一定要有日志开关,并且各个级别都要做开关

 

分布式系统架构设计

VS2005 新建-〉项目-〉分布式系统架构

 

 

 

 

课堂问题

1.       经常出现 “Error loading workflow”,是什么问题? (查看xoml文件?)

2.       工作流页面定向的URL在哪里可以设置?

3.       使用DataSet进行批量数据处理:插入,更新,删除。减少数据库的往返层次和打开关闭的次数。

4.       安全问题考虑:最小权限原则,连接字符串的加密原则。

5.       SQL SERVER 2005 内建对 .net2.0 clr的支持

dll安装到SQL SERVER ,触发器里可以直接调用dll中的方法。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值