拥有一个大的工作流程还是几个较小的特定工作流程更好?

2024-05-23

我需要构建一个从服务器获取文件并移动到另一台服务器的应用程序。有人建议我考虑使用 Windows Workflow Foundation (WF)。

我开始构建工作流程,但它变得越来越混乱,我不确定我是否以最好的方式做到了这一点。

以下是基本工作流程活动:

获取来源列表 确定源是 ftp 还是磁盘驱动器 从服务器获取文件列表 如果源是 ftp,则使用 ftp get 获取文件,否则如果源是驱动器,则从驱动器读取文件 如果目标是 ftp,则将 ftp 文件发送到服务器,否则如果目标是驱动器,则写入驱动器,否则如果目标是 Web 服务,则发布到 Web 服务 如果源是 ftp,则使用 ftp 命令删除文件,否则如果源是驱动器,则删除文件

对于一个工作流程来说,它会变得有点忙碌。我需要 2 个 while 循环,一个围绕集成,一个在获得文件列表之后。

我想到的另一件事是构建多个工作流程。一种用于 FTPtoFTP、FTPtoDrive、FTPtoWebServie、DriveToFTP、DrivetoDrive、DriveToWebService。

有什么建议么?


首先,您应该考虑为每个主要部分创建自定义活动。自定义活动将是可由许多步骤组成的复合活动。这将有助于整理一些事情,并允许您继续在相对较高的级别上使用工作流程。

工作流程设计器虽然方便,但并不是真正设计用于大规模扩展。从 VS 2008 开始,使用基于 XAML 的技术的最佳方法是使用文本编辑器并直接读取/写入 XML。

将其分解为多个工作流程might除非您可以将其分解为几个高级活动并在 XAML 级别上工作,否则这不是最好的方法。请记住,如果所有这些的逻辑和流程几乎相同,那么您现在必须维护 6 个不同的工作流程。这是一个bigger如果您的工作流程很复杂并且您需要修复所有工作流程中的常见逻辑错误,那么这将是一场噩梦。

您还应该考虑服务的使用。这可能允许您拥有一个工作流程和一组活动,但每个步骤的实现都可以隔离到一个服务中。在这种情况下,您需要为每个组合实例化一个工作流,将相同的工作流加载到每个组合中,并注入不同的活动。不一定是最好的方法,但需要考虑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

拥有一个大的工作流程还是几个较小的特定工作流程更好? 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • Java:如何使用自定义 Ant build.xml 将 ProGuard 集成到 Jar 项目中

    我有一个简单的 java 项目 它引用两 2 个库 jar 文件 想要集成 ProGuard 这是我当前的 build xml
  • Visual Studio 调试器 - 自动变量分配

    我正在开发一个多开发人员项目 正在开发的应用程序是通过启动器应用程序启动的 该应用程序传递登录用户 位置等参数 现在 当我调试应用程序时 我在代码上设置了一个断点解析输入参数 并将用户名变量分配给我的用户名等 我可以对这些值进行硬编码 但是
  • 如何使用 YouTube API 访问视频中包含的许可内容

    我想要访问或收集视频中包含的许可内容的 URL 我准备了一张图片 以防无法正确传达我想要的内容 这是我使用的代码的一部分 def youtube videos options youtube build API SERVICE NAME A
  • 这个 HTML 结构有效吗? UL > DIV > { LI, LI } , DIV > { LI, LI } , DIV > { LI, LI }

    这个 HTML 结构有效吗 ul class blog category div class three column li Item 1 li li Item 2 li li Item 3 li div div class three c
  • 提高序列化性能:文本与二进制格式

    如果性能是一个问题 我应该更喜欢二进制序列化而不是 ascii 文本序列化吗 有人用大量数据测试过吗 我使用 boost serialization 来存储表示查找表的矩阵和向量以及 一些内存大小约为 200MByte 的元数据 字符串 I
  • 2D Numpy 数组花式索引 + 掩码

    I have import numpy as np a np array 4 99 2 3 4 99 1 8 7 8 6 8 Why is a True True False False 1 2 等于 array 99 99 And not
  • 获取从开始日期到结束日期的活跃周数

    我的订阅数据如下所示 数据显示用户何时购买订阅 它有user id subscription id start date and end date 我已经得出wk start and wk end从中 user subscription i
  • Tkinter ttk 背景样式的自定义未显示

    在下面的代码中 show widget validity 函数要么应用仅更改小部件现有样式的背景颜色的自定义样式 要么恢复原始样式 这是一个库例程 因此不能完全控制样式 背景颜色似乎已正确重新配置 如每次更改后条目小部件中报告的背景样式描述
  • Rspec:期望与期望与块 - 有什么区别?

    刚刚学习 rspec 语法 我注意到这段代码有效 context given a bad list of players do let bad players it fails to create given a bad player li
  • 构建 C# Web API - REST

    我即将开始一个 C 项目 我从未使用过 C 我希望在犯下愚蠢的错误并走上错误的道路之前能得到一些实施建议 我想要实现的目标基本上是在服务器上拥有一个可以通过 Web API 访问的 C 应用程序 该应用程序将接受一些字符串变量 然后返回一个
  • 如何使用heroku设置环境变量?

    我正在尝试使用此命令行设置环境变量 heroku config set ENV PRODUCTION 但我有这个错误 缺少必需的标志 a app APP 应用程序运行命令 使用 help 查看更多帮助 我的应用程序名称是 disquaire
  • 由 aws API 制作的 HttpRequest 拦截器

    我正在开发一个项目 该项目使用 cognito 作为身份验证服务来保护使用 nodeJS 制作的无服务器休息 API 我已成功关闭未经身份验证的客户端的 API 现在 每当我从 Angular 客户端发出请求时 我都需要在标头中自动注入一个
  • 从表单中选择枚举以设置角色

    Ruby on Rails 4 1 我正在将 Devise 与枚举角色一起使用 目前 它在创建用户时使用默认角色 我想在创建用户的表单中添加一个字段来设置枚举角色 I read this https github com RailsApps
  • 我在没有任何用户操作的情况下显示 javascript 输出时遇到问题

    这就是问题 如果一个整数大于 1 并且只能被 1 和它本身整除 则该整数被称为素数 例如 2 3 5和7是素数 但4 6 8和9不是素数 a 编写一个函数来确定一个数是否为素数 b 在脚本中使用此函数来确定并打印 1 到 10000 之间的
  • Hadoop 推测任务执行

    在Google的MapReduce论文中 他们有一个备份任务 我认为这与Hadoop中的推测任务是一样的 推测任务是如何实现的 当我启动一项推测任务时 该任务是从一开始就作为较旧且缓慢的任务开始 还是从较旧的任务到达的位置开始 如果是这样
  • 了解嵌套循环将运行多少次

    我试图了解下面的代码中语句 x x 1 作为 n 的函数执行了多少次 for i 1 i lt n i for j 1 j lt i j for k 1 k lt j k x x 1 如果我没记错的话 第一个循环就会被执行n次 还有第二次n
  • AWS S3从本地主机批量上传php错误

    我在尝试着批次 散装从本地主机 xampp 上传到我的S3 bucket 它似乎适用于大约 6 个项目 然后我收到一条错误消息 cURL 错误说Failed sending network data from http curl haxx
  • LINQ to SQL 投影:Func 与 Inline

    在使用 Func 的 LINQ to SQL 查询中使用投影时 我发现一些意外行为 示例代码比文字更能解释 使用投影的基本 L2S lambda 查询 db Entities Select e gt new DTO e Value 它会转换
  • 将 stat_smooth 添加到 ggplot2 中的仅 1 个方面

    我有一些数据 在某个因素的某个水平上 存在显着的相关性 在另一个层面上 则没有 并排绘制这些图很简单 使用 stat smooth 向它们添加一行 也很简单 但是 我不希望线条或其填充显示在两个面之一中 有没有一种简单的方法可以做到这一点
  • 拥有一个大的工作流程还是几个较小的特定工作流程更好?

    我需要构建一个从服务器获取文件并移动到另一台服务器的应用程序 有人建议我考虑使用 Windows Workflow Foundation WF 我开始构建工作流程 但它变得越来越混乱 我不确定我是否以最好的方式做到了这一点 以下是基本工作流