There are obvious benefits by using Lab Management for testing your software. It is a fantastic environment for test teams to test the software written by a development team. The requirement I had with my test labs was that I need to use domain controlled security within the test lab as this is what is used in production. I also do not want any impact on the development or production domains. The solution is to use a domain controller (DC) within the lab environment rather than reference the d...
[More]
Tags:
6d68e89a-264c-49e5-bb4d-52e1b165ee73|0|.0
I have created a caching dependency injection slice in order to squeeze more performance from the DAL in a workflow service. What I found was that the service always hit a timeout when the caching slice was put into the Unity configuration. I spent half a day working with AppFabric monitoring, event logs and all the information I could get out of diagnostic tracing for WCF, WF, WIF and custom sources. After not being able to get any answers along with futile debugging efforts, I realised that I ...
[More]
Tags: Unity, WF, WCF, WIF, Performance, Dependency Injection, Tracing
92813aa5-22a2-437b-a9dc-55b37511ec73|0|.0
For a long time the most popular post I have on this site is about how to configure
Visual Studio to use WinMerge as the merge/diff tool for
TFS rather than using the feature poor out of the box software. Sometimes the nature of the files under development result in version differences that have a lot of noise regardless of the diff/merge tool that you use.
Unfortunately
WF is one of the common offenders. I absolutely love
WF, but am disappointed that designer state information is persisted with the work...
[More]
Tags: TFS, WF
63e842cc-c77a-4c92-a9ec-8a678e1a5119|2|5.0
The previous post outlined the issues with working with unmanaged and IDisposable resources in WF. To recap, the issues with these resources in WF are: Persistence Restoration after persistence Error handling Messy WF experience to handle this correctly A custom activity can handle these issues in a much more elegant way than the partially successful implementation in the previous post. The design goals of this activity are: take in a resource of a generi...
[More]
Tags: WF
69ad775b-f805-4802-85ce-c7d4d6c42338|0|.0
Generally speaking you will want to steer clear of unmanaged or IDisposable resources when authoring WF workflows. The primary reasons for this are:
Persistence
Restoration after persistence
Error handling
A workflow may be persisted at any time (with the exception of a No Persist Zone). There are two problems for unmanaged or IDisposable resources with regard to persistence. Firstly, the resource may not be released when the workflow is persisted. Secondly the state of the resource when th...
[More]
Tags: WF
35568814-fb98-468e-9c7d-1238b0c0271b|0|.0
The two most common WF activities to use when implementing decision branching are the If activity and the Flowchart activity. Using a Flowchart is overkill for a simple/singular decision branch so the If is often chosen. Unfortunately the If activity that comes with WF4 forces an Else branch to be visible on the designer even if you are not using it. This can make workflows unnecessarily cluttered. The solution is to author a custom activity that only executes an If-Then branch rather than an...
[More]
Tags: WF
f6049bd0-a4b1-47cc-8602-4309ab9686f5|1|5.0
One of the tools missing out of the WF toolbox is the ability to run some retry logic. Applications often have known scenarios where something can go wrong such that a retry of the last action could get a successful outcome. One such example is a connection timeout to a database. You may want to try a couple of times before throwing the exception in order to get more success over time. The specific scenario I am addressing is a little different. I have created some custom MSF providers that wil...
[More]
Tags: WF, WCF, Sync Framework
2908e021-73fc-4a73-8c35-ccd3243687cf|1|4.0
I came across an issue with the combination of WCF, WF, WIF and AppFabric in December that had me a little worried. The issue was how to get the identity of the user calling a WCF service inside a WorkflowServiceHost workflow when using WIF to manage security and AppFabric for WF persistence. The WIF documentation says the following: As a note, when WIF is enabled inside WCF, the WCF ServiceSecurityContext does not work for obtaining the caller’s identity and claims; the application code m...
[More]
Tags: WCF, WF, WIF
ca239c7c-003a-48d9-8707-c0091a0fc27d|1|5.0
The TypePresenter control is the UI that the WF designer displays for selecting a type. It is often seen on generics based activities and the InvokeMethod activity. This drop down list provides some common types and includes some of the types already found in the current activity context. Selecting “Browse for Types …” allows for all referenced types to be searched in a dialog. Sometimes you don’t want the TypePresenter to provide every available type. The TypePresenter has a great feature...
[More]
Tags: WF
92e15fef-af59-4373-97c8-b27238437891|1|4.0
For a while now I have been battling issues with fully qualified urls in my blog posts and pages that link internally back to the blog. There are several scenarios that cause me grief in this regard: Adding an additional domain name Several years ago I registered a new shorter domain name and had both pointed at this blog. One issue with this is links in existing posts served on the new domain having a fully qualified reference using the old domain. I want all thes...
[More]
Tags: BlogEngine.Net, Performance
e14fb185-327c-404c-b0f9-f3a7b171b100|0|.0