有些东西更容易实现(代码),但有些东西通过WF更容易实现.看起来WF可用于创建(几乎)任何类型的算法.所以(理论上)我可以在WF中完成我的所有逻辑,但对所有项目来说这可能是个坏主意.
在什么情况下使用WF是一个好主意,何时会使事情变得更难?WF与手工编码的利弊/成本是什么?
我正在评估WF在网络上的业务应用程序中使用,我很想听听最近这个技术的第一手资料.
我最关心的是提高项目的可维护性,并在处理频繁变化的复杂流程时提高开发人员的工作效率.
我真的很喜欢WF的想法,但是它似乎相对不为人知,而且我发现许多较老的评论都提到它一旦进入它就会非常复杂.
如果它被过度设计到一个中小型项目无法使用(或不好的权衡),那就是我需要知道的事情.
当然,它已经从2006年底开始,所以也许它已经成熟了.如果是这样的话,这是另一条非常有用的信息!
提前致谢!
我目前正在搜索适用于.NET的规则引擎.我们的逻辑很简单,+, - ,*,/,和/或基本的操作顺序.但是,我们需要将此信息存储在数据库中,然后在从数据库中提取新版本时生成规则文件.因此,除非其中一个具有Web版UI编辑器,否则常见的UI编辑对我们来说将毫无用处.
所以我的问题是,鉴于我所说的,在编程配置和与ASP.NET集成方面,这将是我们最好的规则引擎.
我们有一个动态加载dll的"引擎"(无论位于某个目录中),并通过反射从它们调用Workflow类.
我们现在有一些新的工作流程需要访问数据库,所以我想我会在dll目录中放置一个配置文件.
但由于某种原因,我的工作流程只是看不到配置文件.
<configuration>
<appSettings>
<add key="ConnectString" value="Data Source=officeserver;Database=mydatabase;User ID=officeuser;Password=officeuser;" />
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
鉴于上面的配置文件,以下代码打印一个空字符串:
Console.WriteLine(ConfigurationManager.AppSettings["ConnectString"]);
Run Code Online (Sandbox Code Playgroud)
我想我想要的只是指定一个配置文件名,但我在这里遇到了问题.我只是没有得到结果.任何人有任何指针?
我有一个字符串来自"无法付款{1},因为您的付款{2}到期{3}".我希望将{1}替换为某个值,将{2}替换为某个值,将{3}替换为某个值.
是否可以更换所有3合一替换功能?或者有什么方法可以直接编写查询并获取替换值?我想在Oracle存储过程中替换这些字符串原始字符串来自我的一个表我只是在那个表上做select
然后我想将该字符串中的{1},{2},{3}值替换为另一个表中的另一个值
这是我试图做的代码:
public IList<IOperator> GetAll()
{
using (var c = new MyDataContext())
{
return c.Operators.ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
运算符实现IOperator,但我收到以下编译错误:
Cannot implicitly convert type 'System.Collections.Generic.List<MyProject.Core.Operator>' to 'System.Collections.Generic.IList<MyProject.Core.Model.IOperator>'. An explicit conversion exists (are you missing a cast?)
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能得到我需要的东西?
我不完全确定我理解工作流的工作方式,但如果它是一个管道n过滤器样式模型,我应该能够将数据(甚至字符串)从一个活动传递到另一个活动.
有谁知道如何做到这一点?视频的加分点!
我希望这是可能的.如果WF与我的想法相同,那么它将非常有用.
.net data-binding workflow workflow-activity workflow-foundation
workflow ×5
.net ×4
app-config ×1
asp.net ×1
c# ×1
casting ×1
data-binding ×1
dll ×1
drools ×1
interface ×1
linq ×1
oracle ×1
replace ×1
string ×1
unit-testing ×1