2008-05-28

BPEL, vad händer...

Jag gissar att det inte bara är jag som längtar efter att BPEL-stödet skall utvecklas vidare och lämna CTP-stadiet (release i mars förra året).

Snacket då var att stöda OASIS BPEL 2.0 standard fullt ut och det lät otroligt lovande. Det senaste jag såg på ämnet var ett svar av Matt Winkle i en tråd där han säger "With regards to BPEL, I'm not sure what the status on that is, I'll send an email around internally". Detta får i alla fall mig att hoppas på lite nyheter inom kort.

Tidigare inlägg om BPEL kan ni läsa här

2008-05-23

Mer än en workflow runtime?

I betafasen av workflow foundation fanns en begränsning om att endast en WorkflowRuntime fick finnas i en AppDomain. Detta var naturligtvis en stor begränsning och är även något som teamet bakom WF valde att plocka bort (på samma sätt som vissa klasser slutade vara sealed).

Här finns en bra artikel som beskriver ämnet mer i detalj

2008-05-22

Artikel om repeatern

Repeatern är en inte helt enkel kontroll att förstå sig på och när man använder denna är det verkligen risk för att göra knepiga saker. Här finns i alla fall en bra artikel som beskriver hur man kan göra en repeat-until snurra via xoml eller kod.

Den stora utmaningen kommer när man sedan lägger in aktiviteter som konsumerar något mer avancerat än strängar och kanske måste binda data utåt men det är en helt annan historia =)

2008-05-07

WorkflowServiceHost, att ta tillbaka kontrollen

Ibland är det bra att kunna lägga in sina egna mekanismer mitt i befintlig kod och detta är något som WCF ger oss ett underbart stöd för.

Alla som startar ett nytt WF-projekt utanför sharepoint använder förhoppningsvis WorkflowServiceHost (.NET 3.5) och där finns naturligtvis stöd för att lägga sig i hur saker fungerar.

I grunden finns ServiceHostFactoryBase och WorkflowServiceHostFactory som ger oss möjligheten att påverka hur vi skapar vår WorkflowServiceHost.

Det hela beskrivs väldigt bra i följande artikel

public class MyWorkflowServiceHostFactory : WorkflowServiceHostFactory
{
public override System.ServiceModel.ServiceHostBase CreateServiceHost(string constructorString, Uri[] baseAddresses)
{
ServiceHostBase sh = base.CreateServiceHost(constructorString, baseAddresses);
//sh is the WorkflowServiceHost
WorkflowRuntimeBehavior wrb = sh.Description.Behaviors.Find<WorkflowRuntimeBehavior>();
wrb.WorkflowRuntime.WorkflowIdled += new EventHandler<System.Workflow.Runtime.WorkflowEventArgs>(WorkflowRuntime_WorkflowIdled);
return sh;
}