让代码看起来更舒服(1):选择适合的配色方案
“让代码看起来更舒服”,看到这个标题,也许你会条件反射地以为我要讲“重构”或者“编码规范”等等。噢,可爱的开发人员,我们暂且不谈技术,只谈体验。让我们来装扮一下每天都要面对的Visual Studio,让代码看起来更舒服。
“让代码看起来更舒服”,看到这个标题,也许你会条件反射地以为我要讲“重构”或者“编码规范”等等。噢,可爱的开发人员,我们暂且不谈技术,只谈体验。让我们来装扮一下每天都要面对的Visual Studio,让代码看起来更舒服。
Windows Workflow 提供了可扩展可收缩的跟踪功能来捕捉和记录工作流的执行信息。对于接收到的工作流信息,跟踪服务会使用跟踪配置(tracking profile)来进行筛选。WF Runtime可以发送许多信息,包括工作流事件、活动状态更改、规则判断和我们的自定义检测数据(custom instrumentation data)。跟踪服务有能力决定如何处理接收到的数据,可以把它们记录到日志文件里,也可以保存到数据库中。跟踪服务会参与到工作流Runtime中来,以确保它记录的信息是一致并且持久的。
工作流在长时间运行时难免会遇到一些问题,许多业务逻辑需要花费数日、数周乃至数月。在这段时间中,我们不能让工作流实例一直驻留在内存中(比如,我们需要一份开支报告,而不巧的是对此负责的会计师却在西班牙海滩休假,怎么办呢?)。在Windows Workflow中,可以通过持久化服务来解决长时间运行的工作流可能遇到的问题。
在WF中,调度服务的职责是将工作流安排到线程上来执行。WF提供了两个调度服务:DefaultWorkflowSchedulerService和ManualWorkflowSchedulerService。如果我们不去显式的配置调度服务,Runtime会使用默认的调度器(DefaultWorkflowSchedulerService)。这两个调度器都继承自 WorkflowSchedulerService类。如果我们需要自定义的调度逻辑,也可以从此基类继承,并重写它的虚方法。
Windows Workflow 其实是一个Runtime,而不是应用程序。在启动工作流之前,宿主进程必须先加载并运行工作流Runtime。宿主进程告诉Runtime要创建什么类型的工作流,Runtime则负责管理工作流的生命周期并通知宿主进程重要的生命周期事件,比如工作流的完成和终结。Runtime并不挑剔它的宿主,宿主可以是台式机上的智能客户端应用程序,也可以是机架上的服务器中运行的ASP.NET进程。所有宿主进程需要做的只是加载.NET 3.0工作流程序集而已。