Another presentation from PDC, Looks like authoring custom activities has got a whole lot easier and more powerful. Designer rehosting is much simpler. Looks like I might have to finally learn some WPF though.
See the intro to WF 4.0 at Watching at the moment and looks pretty cool. Fully declarative workflows, better designer, store workflow data in a proper queryable manner in the database.
This book is the book to have if you are going to get into Windows Workflow Foundation. There are no other books on WF out on the market that compare to the broad view and depth of this book.
After reading a post about using Windows Workflow to build an SMTP server, I started thinking of something I could use WF for outside the world of business processes. For a long while I've also been planning on automating my build processes for various projects I've got on the go. I then realised I could combine the two and develop an automated build system with WF. At this point, if you have any experience of automated builds, you're probably thinking "Why the hell don't you use NAnt or MSBuild like any normal person?", which is a fair point. But using WF has a few advantages. First, as far as I'm aware NAnt and MSBuild don't provide a graphical designer for their build projects (I'm quite happy to be proved wrong on this point) whereas I was able to knock together a designer based on t
Windows Workflow is extensible in almost every way. But one thing I didn't realise until seeing this example is that it is possible to implement your own workflow type as well. This looks really interesting. Although the state machine workflow models what I want to do pretty well, I'm not too happy with the UI of the designer so I might have to look into this further.
Last time I talked about adding a property to a custom activity, this time I'll talk about validating the value of that property. So we have a custom activity called UserActivity with a property called Form and we want to ensure the workflow designer has specified a value for this property. First thing to do is write our validator class, which looks like this - class UserActivityValidator : ActivityValidator { public override ValidationErrorCollection Validate(ValidationManager manager, object obj) { UserActivity activity = (UserActivity)obj; ValidationErrorCollection validationErrorCollection = base.Validate(manager, obj); // Don't validate when the activity is standalone if (activity.Parent == null) { return validationErrorCollection; } // check Form property has been set if (string.IsNullOrEmpty(activity.Form)) validationErrorCollection.Add(ValidationError.GetNotSetValidationError("Form")); retur
I initially thought Windows Workflow was horrendously complicated, needlessly so. I've since realised that it's just exceedingly extensible but one problem is that there aren't a great deal of internet resources to search through to find the answer. No surprise I guess since this is pretty new technology. So I've decided to add some little tidbits. I'll present a few very short posts about a very small subset of the functionality, a kind of Windows Workflow for dummies. Given that I'm a dummy myself, I am perfectly placed to do this I reckon. Of course since I'm still learning all about WF, these posts may be incomplete or plain wrong. So first up, adding a property to a custom activity. Properties in WF don't work like properties in normal .NET classes, they are based around dependency properties, which are properties that can be attached to any class deriving from DependencyObject. All activities inherit from DependencyObject so they can use dependency properties. I
Ganz praktisch für den Einstieg in die Workflow-Abbildung auf einer Website mit ASP.NET
und WF:
"... This starter kit is a Visual Studio 2005 project that demonstrates
using Windows Workflow Foundation for simple task-oriented workflow in an ASP.NET
Web application. A workflow model is used to automate work order requests at a small
example company. It includes three pre-defined roles which each play a part in the
work order creation, approval and monitoring. ..."
[1] http://www.microsoft.com/downloads/details.aspx?FamilyId=A438A9B9[...]