2009-12-18

AppFabric och WF4.0 - intresset ökar

Har senaste veckorna varit ute på flera företag och pratat om WF4.0 och AppFabric. För mig är det jättekul att komma ut och prata med alla smarta människor som har kluriga funderingar om vart Microsoft är på väg med dessa tekniker och vad som kommer att hända framöver.

Det är även jättekul att fler och fler Biztalkutvecklare intresserar sig för dessa tekniker eftersom steget mellan egentligen inte är så långt (om vi bortser från mappningsfunktionen i biztalk som helt saknas i appfabric)

En fråga jag fick häromdagen är hur man enklast kommer igång med WF4.0 och jag rekommenderade då att läsa Matt W's blogg där har går igenom de exempel som finns ute för beta2.
http://blogs.msdn.com/mwinkle/archive/2009/10/22/navigating-the-wf4-beta-2-samples.aspx

Den totala bristen på stöd för BPEL är naturligtvis ett ämne som återkommer när jag pratar med er utvecklare och vi får hoppas att Microsoft bättrar sig på den punkten framöver.

2009-11-18

AppFabric

Tidigare har vi hört mycket om projektet som gått under namnet Dublin (se tagg nedan), nu på PDC presenterade Microsoft ännu ett nytt kodnamn och det är AppFabric.

"Windows Server AppFabric is a set of integrated technologies that make it easier to build, scale and manage web and composite applications that run on IIS"

AppFabric består av det som tidigare var dublin och velocity (cachning) och kommer att finnas både för Windows Server och för Azure.

Om ni vill ladda hem AppFabric eller bara lära er mer så finns rubbet här. Den skarpa produkten skall komma senare under 2010.

Allt kräver .NET4.0 samt något av följande operativsystem Windows Server 2008 (Sp2/R2), Windows Vista, Windows 7, Azure. Utveckling sker i Visual Studio 2010.

2009-11-11

WF i SP2010, nytt material på msdn

Nu har det börjat komma mer material på MSDN angående hur vi skall förhålla oss till workflows i SharePoint 2010. Detta möjligör att vi kan vara mkt bättre förberedda inför 2010, grymt jobbat Microsoft!

· Plan for workflow security and user management (SharePoint Server 2010)
·
Plan for approval and review processes in workflows (SharePoint Server 2010)
·
Choose a workflow authoring tool (SharePoint Foundation)
·
Workflow deployment processes (SharePoint Foundation 2010)
·
Workflow deployment processes (SharePoint Server 2010)
·
Configure global workflow settings (SharePoint Foundation 2010)
·
Configure global workflow settings (SharePoint Server 2010)
·
Manage workflows (SharePoint Foundation 2010)
·
Manage workflows (SharePoint Server 2010)
·
Monitor workflows (SharePoint Foundation 2010)
·
Monitor workflows (SharePoint Server 2010)

Som ni ser gör man skillnad på SharePoint Foundation och SharePoint Server även där det inte verkar finnas någon anledning, detta kanske innebär att det tillslut kommer att finnas en anledning eller också blir de två sidorna för vissa topics en sida framöver.

Det har hänt en del saker med Workflows och jag diggar främst delarna som rör Visio och Visio Services.

Länkarna är från New SharePoint Server 2010 (Beta) Content

2009-11-03

BPEL & WF4.0

Har pratat lite med Matt Winkler och tydligen har BPEL försvunnit på vägen, dvs det tooling stöd som utlovades på PDC förra året är inte längre med på banan.

Jag tycker detta är supertrist och hoppas på bättring framöver, vi behöver kunna interagera med de verktyg som finns på marknaden och inte behöva börja processen i Visual Studio.

Ett lyckat exempel är Visio toolingen som finns för workflows i SP2010, det är mer sådant jag vill se och då är BPEL en bra plattform eftersom verktyg som exempelvis Enterprise Architect redan har stödet.

Eller har jag fel i att följande låter som något som går att uppnå med WF&WCF

BPEL Design Goals
There were ten original design goals associated with BPEL:

*Define business processes that interact with external entities through Web Service operations defined using WSDL 1.1, and that manifest themselves as Web services defined using WSDL 1.1. The interactions are “abstract” in the sense that the dependence is on portType definitions, not on port definitions.

*Define business processes using an XML-based language. Do not define a graphical representation of processes or provide any particular design methodology for processes.

*Define a set of Web service orchestration concepts that are meant to be used by both the external (abstract) and internal (executable) views of a business process. Such a business process defines the behavior of a single autonomous entity, typically operating in interaction with other similar peer entities. It is recognized that each usage pattern (i.e. abstract view and executable view) will require a few specialized extensions, but these extensions are to be kept to a minimum and tested against requirements such as import/export and conformance checking that link the two usage patterns.

*Provide both hierarchical and graph-like control regimes, and allow their use to be blended as seamlessly as possible. This should reduce the fragmentation of the process modeling space.

*Provide data manipulation functions for the simple manipulation of data needed to define process data and control flow.

*Support an identification mechanism for process instances that allows the definition of instance identifiers at the application message level. Instance identifiers should be defined by partners and may change.

*Support the implicit creation and termination of process instances as the basic lifecycle mechanism. Advanced lifecycle operations such as "suspend" and "resume" may be added in future releases for enhanced lifecycle management.

*Define a long-running transaction model that is based on proven techniques like compensation actions and scoping to support failure recovery for parts of long-running business processes.

*Use Web Services as the model for process decomposition and assembly.

*Build on Web services standards (approved and proposed) as much as possible in a composable and modular manner.

2009-11-02

VS2010 beta 1 -> beta 2

Nu finns ett dokument på msdn som beskriver de breaking changes som finns mellan beta 1 och beta 2.

Jag älskar personligen allt teamet gjort med beta2 och nu hänger det mesta ihop på ett bättre sätt. Att de även snyggat till designers, ikoner o annat gör naturligtvis även det livet lite roligare :-)

En annan personlig favorit är att du kan sätta text på exekveringsvägarna i flowcharts, nu är allt mer läsbart.

2009-10-20

Workflows i SharePoint 2010

Har nu landat på SharePoint Conference 2009 i Las Vegas och redan första dagen pratades det väldigt mycket om workflows i SharePoint.

Som jag redan bloggat om går det i SP2010 att skapa workflows i Visio 2010 och exekvera dem.

Hur det rent praktiskt fungerar är rätt enkelt, du skapar dina workflows i Visio 2010, gör en export och importerar dem i SharePoint Designer 2010 och sedan är du klar! Denna process är förövrigt tvåvägs, dvs du kan ändra ditt workflow i SharePoint Designer och göra en export till Visio.

Du kan även gå ett steg till och exportera ett workflow från SharePoint Designer 2010 till Visual Studio 2010 men det är en envägs process och du är sedan “fast” i Visual Studio.

Visio 2010 <-> SharePoint Designer 2010 –> Visual Studio 2010

Nu ska jag lyssna på hur Visio Services kan visa våra processer i SharePoint 2010 :-)

2009-10-05

Seminarier i höst

I höst kommer vi på Connecta att tillsammans med AddSkills hålla två seminarier, jag kommer att tala på båda och kommer att prata om WF vid båda dessa.

http://www.addskills.se/Utbildning/Seminarier/Nyheterna-i-SharePoint-2010
http://www.addskills.se/Utbildning/Seminarier/Nyheterna-i-SharePoint-2010

Båda dessa seminarier är gratis och jag hoppas på att många kommer.

Jag har även skickat in förslag till en session på TechDays 2010, vet även att flera andra från jobbet också gjort detta och hoppas naturligtvis på att Microsoft väljer ut några av våra förslag.

2009-09-17

Intresset för workflow foundation (WF)

Fram till i somras har intresset för WF känts relativt svalt om vi bortser implementationer i SharePoint där WF är en naturlig del. Nu har jag däremot märkt att något har hänt, jag har fått flera förfrågningar om att åka ut till diverse företag och prata om WF. Jag har även märkt av fler bokningar på kurser och ett generellt större intresse i olika forum.

Det många vill veta mera om är nästa version av WF, hur Dublin kommer att påverka framtiden men även en hel del investeringar i nuvarande version av WF.

Jag tycker detta är fantastiskt roligt, nu börjar vi se verktygen för att verkligen bygga affärsprocesser på WF och även att många inser att WF är en grym motor i en applikation.

Jag skall medverka i några större seminarier i höst och kommer att posta information om dessa inom kort.

2009-08-12

Workflows skapade i visio i SharePoint 2010

Först vill jag säga att nu är jag äntligen tillbaka efter sex veckors semester!

Mitt första inlägg efter semestern blir tyvärr ett rent copy/paste inlägg men jag vill verkligen tipsa om lite spännande läsning som handlar om hur vi kan skapa workflows i kommande versioner av visio och sharepoint.

Första länken är till Wictors blogg som alltid är matnyttig, snor även en bild från honom


http://www.wictorwilen.se/Post/Creating-SharePoint-2010-workflows-with-Visio-2010.aspx

I kommentarernt till det inlägget kom en annan spännande länk
http://www.visguy.com/2009/08/10/visio-2010-sharepoint-workflows/

Jag kör själv Visio 2010 och kommer att laborera rätt mkt med detta, det kan jag lova er.

2009-06-17

Tracking i WF4.0

I tidigare versioner av WF har vi fått med SqlTrackingService som på ett enkelt sätt ger oss möjligheten att skriva ned den data vi behöver för att spåra våra workflows till en sql-databas.

I WF4.0 är det ETW som gäller, dvs Event Tracing for Windows som funnits som en standardkomponent i windows i några generationer nu.

Vad innebär detta för oss? Antagligen kommer några att själv skapa en SQL tracker eller också anser alla att ETW är nog så bra. Hur som helst stöder arkitekturen i WF4.0 att vi skapar egna tracking participants som ni kan se på bilden nedan.



Vad är det då som sparas i vår tracking participant?
Workflow instance tracking records: Här sparas de stora händelserna, dvs start stop och fel.

· Activity tracking records: Här sparas de enskilda aktiviteternas händelser, dvs om de är schemalagda eller har något fel.

· Bookmark resumption tracking record: I WF4.0 finns begreppet bookmarks som vi pratat en del om tidigare, här sparas dessa

· User tracking records: Här sparas egen data, dvs upp till dig och mig :-)

Källa: The .NET endpoint

2009-06-11

TheWorkflowWay - Grymt dokument av David Chappell

Här finns ett bra och beskrivande dokument som tar upp varför WF är en bra teknik och hur vi kan utnyttja den i våra lösningar. Informationen är krispig och tar även upp dublin samt WF4.0

Jag har själv använt WF som applikationsmotor i ett projekt där vi gjorde en stor migrering från en plattform till en annan. I det fallet styrde WF hela migreringen och vi kunde nyttja alla de fördelar som detta dokument tar upp.

2009-06-08

WF 4 Migration Guidance

Nu har några riktigt intressanta white papers sett dagens ljus, dessa är:

WF Migration Best Practices.docx
WF Migration Overview.docx
WF4 Rules Guidance.docx
WF4 State Machine Guidance.doc

Samtliga kan laddas hem här

Vi kan mycket riktigt lägga märke till att codeactivitys fortfarande är en big no-no och att vi får byta ut state machine mot flowcharts.

Förutom detta kan vi även se att våra gamla flöden kommer att fungera i .NET4.0 då hela runtimen finns kvar och allt det nya finns i nya namespaces. Detta innebär alltså att befintliga projekt kan välja .NET4.0 utan att vara nervös för om WF skall lira eller inte.

The .NET 4 release of WF has, from the beginning, had two fundamental high level objectives:
1. Maintain full application compatibility: all WF solutions built on .NET 3.0 and 3.5 must run, without requiring redesign or source artifact migration, on .NET 4.

2. Address customer feedback and enhance the capabilities of WF, particularly around: customer adoption blockers; key missing features and usability issues; utilization of complementary .NET technologies.
The first objective cannot be compromised, as it resides squarely within the overall application compatibility goals of the .NET Framework.
Given this, the team could address goal #2 either by continuing to make incremental (non-breaking) changes on top of the WF3 technology, or by developing new workflow technology.
After analysis of pros and cons, the team chose the latter approach.


Värt att notera är att dessa dokument inte är färdiga utan kommer att förändras så detta är en sida som är värd att bevaka.

2009-05-20

VS2010 beta och WF4.0, en första snabbtitt

Har nu kört VS2010 beta lite och lekt med WF4.0 och måste säga att jag hittills är glad och nöjd.

Installationen gick relativt snabbt och enda negativa är att det krävdes en omstart och att det var ett kompatibilitetsproblem med SQL 2008 och Windows 7 RC. Detta löstes iofs snabbt med en SP till SQL 2008.

Det är som jag redan påtalat massor som skiljer sig mot tidigare versioner av WF och jag skall i framtida inlägg gå igenom flera av dessa saker. Idag börjar vi lite lätt.

Här är en första titt på den toolbox som finns för WF4.0

image

Som ni ser är det många nya aktiviteter som kan göra livet lite roligare för oss, här finns BPEL-aktiviteter (exempel pick, assign, switch) och massor av sköna aktiviteter som hanterar samlingar (generiska!!)

Vad gäller själva workflowen så är det sequential eller flowchart som gäller, dvs state machine verkar inte vara ett alternative längre. Själv är jag barnsligt förtjust i flowchart så jag är nöjd och glad.

image

Sedan kommer ännu en stor förändring, förut var det en hel del steg för att skapa en instans av ett workflow men nu går det relativt snabbt

image

Detta är ett stort lyft för alla som gillar TDD (testdriven utveckling)

Detta vara allt för denna gång, mer kommer!

2009-04-23

SharePoint Workflows på 64-bitars maskiner

Skall du bygga workflows för SharePoint i Visual Studio 2008/2005 på en burk med 64 bitars operativ och tänker använda extensions for SharePoint så får du problem i och med att detta inte är supportat och resulterar i en rejäl smäll.

Lösningen för tillfället är att använda WSPBuilderExtensions istället, finns att ladda hem på codeplex.

Uppdatering

Tyvärr verkar inte Microsoft vilja fixa detta:
“The plan for Visual Studio 2010 is to still not support SharePoint 2007 Workflow projects on a 64bit workstation. VS 2010 will avoid the problem of throwing exceptions by hiding the Project Templates for those two project types: SharePoint 2007 Sequential Workflow or SharePoint 2007 State Machine Workflow. However Visual Studio 2010 will support 64bit development of the future version of SharePoint”

Deras workaround är
”The workaround is to create, develop and debug your Workflow projects on a 32bit workstation and then later you can move your solution to a 64bit server for testing and production”

Båda citaten är från Christin Boyd, Program Manager, Visual Studio

“We understand that it is very inconvenient and expensive to maintain a 32bit workstation and a 64bit workstation”……

Workflow v4.0 på channel9

Hittade denna intressanta film på channel9 som visar WF4.0, den tar även helt kort upp hur vi kan använda testdriven utveckling i nästa version av WF.

Jag ser verkligen fram mot nästa version av WF pga många av de saker som jag tog upp redan under PDC men framförallt att DependencyProperties försvinner och den grymma prestandan.

 

Offtopic: Tack till alla som visade intresse på eventet som Connecta hade tillsammans med Addskills senast, jag pratade om workflows i SharePoint och jag tror inte någon somnade :)

2009-03-26

Nytt dokument om workflows och prestanda i SharePoint

På msdn finns nu ett nytt dokument som på ett bra sätt beskriver vilka parametrar som styr prestandan som vi får i våra workflowimplementationer i SharePoint.

Detta är ett ämne som jag delvis gick igenom på TechDays och något som är viktigt att tänka på när vi skall konfigurera vår farm och när vi bygger våra arbetsflöden.

Här är de parametrar som enligt mig är viktigast i dokumentet

Throttle
Batch size
Timeout
Workflow timer interval

Exempel
stsadm -o setproperty -pn workflow-eventdelivery-throttle -pv "25"
stsadm -o setproperty -pn workitem-eventdelivery-batchsize -pv "125"
stsadm -o setproperty -pn workflow-eventdelivery-timeout -pv "10"

En annan sak som jag tog upp på TechDays är att vi måste tänka på hur snabbt våra aktiviteter exekverar för att möjliggöra prestanda. Dokumentet på msdn tonar ned detta men jag anser fortfarande att det är en viktig designprincip att utföra varje aktivitet så snabbt som möjligt och implementera patterns som exempelvis business-task vilket jag visade på TechDays.

2009-03-18

TechDays 2009

Idag är det dags för min och Mattias session på TechDays, den heter SharePoint Workflows – experiences from the field och går klockan 10:45. Som jag förstått det hela kommer presentationen inklusive ljud att bli tillgänglig från techdays-sidan och jag kommer i så fall länka direkt till den.

Ni som läser detta under själva sessionen… lyssna istället ;-)

Hoppas att allt går bra och att tekniken fungerar

2009-02-18

Rolig dag på jobbet

I dagarna har jag vart lärare på AddSkills i kursen Visual Studio 2008 Windows Workflow Foundation.
På denna kurs finns en kollega vid namn Peter Ilis som visat sig vara en klurig kille. När jag gick igenom hur nya instanser av workflows får sina initiala värden så kom frågan om det inte fanns något enkelt sätt att göra detta hårt typat.

Problemet är alltså att den vanliga metoden att skapa nya instanser tar en Dictionary<string, object> som argument och det vanliga sättet att fylla den med data är via medföljande Add-metod. Här har vi alltså ingen validering att vi har rätt namn på våra properties och inte heller vet vi att vi använder rätt datatyp.. snyggt, njae

Tänk er ett workflow med två properties:
public class MyWorkflow
{
public string Name { get; set; }
public int Age{ get; set; }
}

Du vill sedan få möjligheten att skapa en dictionary som har hård typning och som vet vilka properties du har exponerat i ditt workflow. Exempelvis på följande sätt:
var d = new PropertyDictionary<MyWorkflow>();
d.Add(o => o.Age, 30)
.Add(o=> o.Name, "John Doe");

Hur går denna magi till? Tja, det är rätt enkelt egentligen och här är lösningen som Peter skapade grunden till och som jag trixade vidare lite med.


public class PropertyDictionary<TWorkflowType> : Dictionary<string, object>
{
public virtual PropertyDictionary<TWorkflowType> Add<TType>(Expression<Func<TWorkflowType, TType>> key, TType value)
{
Add(GetPropertyName(key), value);
return this;
}

    private string GetPropertyName<TType>(Expression<Func<TWorkflowType, TType>> propertyExpression)
{
MemberExpression expressionBody = (MemberExpression)propertyExpression.Body;
return expressionBody.Member.Name;
}
}




Kör så det ryker, jag tycker detta är grymt coolt!

2009-02-06

Trendspaning

Hur bygger vi workflows idag och hur kommer vi att bygga workflows i morgon, eller rättare sagt –hur vill Microsoft att vi bygger workflows i morgon?

Idag ser jag många projekt och kodningsexempel som bygger flöden med hjälp av de basaktiviteter som följer med .NET. Detta innebär ofta en hel del användning av CodeActivity och det innebär även att själva workflowet är byggt i kod och inte XOML. Vissa projekt går lite längre och bygger egna aktiviteter och utnyttjar möjligheten att bygga komposita aktiviteter, möjligheten att komponera är trots allt en av styrkorna med workflows. Även dessa aktiviteter använder rätt ofta CodeActivity för att utföra någon form av jobb.

Jag säger nu inte att något av ovanstående är fel utan detta inlägg handlar mer om vart vi är på väg.

I och med .NET 4.0, Dublin, Oslo börjar saker verkligen röra på sig. Vi tappar bakåtkompatibliteten med “gamla” workflow foundation och står på en ny bas. Vissa saker är tydliga och det är exempelvis

  • Ingen CodeActivity
  • Ingen XOML utan nu är det ren XAML som gäller
  • Mindre kod och mer markup
  • BPEL

Ur detta kan vi naturligtvis själva fundera över hur vi bäst bygger workflows som går att äga även på lite längre sikt. Ett naturligt val är att skippa CodeActivity, börja kika på hur vi kan minska mängden kod och utnyttja möjligheterna med markup och styra flödet med hjälp av policys och regler istället.

Några tankar?

2009-02-02

Nytt svenskt community för sharepoint

På detta community hänger många sköna svenska sharepointprofiler:
http://www.sharepointcommunity.se/

Jag finns själv på workflow-forumet på den sidan och försöker svara på frågor.

2009-01-15

[NonSerialized]

När ett workflow smäller i samband med persistering är det inte alltid busenkelt att veta vad som är problemet. Jag har med tiden upptäckt att felsökning av denna typ av problem kan vara rejält tidsödande och frustrerande och ibland så utmanande att utvecklarna tvekar till workflow foundation som teknik.

Problemet är ofta själva serialiseringen, detta är något du själv kan styra men det är knappast den vanligaste vägen att gå utan workflowet kör antagligen i en vanlig host eller i en host som exempelvis sharepoint bidrar med (som inte heller direkt förenklar felsökningen...)

Exempel på egen serialisering i en aktivitet

[DesignerSerializer(typeof(ExampleActivityMarkupSerializer), typeof(WorkflowMarkupSerializer))]
public class ExampleActivity : Activity { }

Vad är det då som kan vara problemet? Det handlar nästan uteslutande om fält som serialiseras i en aktivitet eller direkt i workflowet. Det kan vara bra att känna till att arrayer och generics är stora no-no's i dessa sammanhang. Detta gäller även längre ned i din objektgraf!

Det är även pga denna teknik vi inte kan använda nästlade aktiviteter, något som vi kan lösa med en egen serialiserare!

Slutsats

Tänk på vilka datatyper du exponerar för serialiseraren, använd inte arrayer och var sparsam med generics (dessa kan funka...ibland)

Läs mer här

2009-01-09

TechDays 2009

Glöm inte att anmäla er till TechDays 2009 i västerås!

Jag skall tillsammans med Mattias Lindberg på Microsoft AB hålla en session som heter

SharePoint Workflows – experiences from the field

This session talks about how you create a Workflow Foundation-based business process within Microsoft Office SharePoint Server 2007, we will share experiences and best-practices from projects we have been involved with. Focus will be on how you as a developer can create workflows that interact with humans, e.g. a manager needs to approve a request submitted by an employee. We will start with a quick overview of SharePoint workflows and then get into the design and coding details of a demo scenario, at the end we will share some additional experiences and best practices. Some of the topics covered will be creation of SharePoint tasks, using ASP.NET task forms, encapsulation of functionality in custom activities, deployment process and development environment.

TechDays Sverige • Västerås 17–18 mars 2009

Välkommen till Microsoft TechDays 2009, det största evenemanget arrangerat av Microsoft i Sverige för dig som är IT-chef, tekniker eller utvecklare.

Fler sessioner: Du som deltar i TechDays 2009 kan välja bland 90 sessioner, delar av programmet kan vi avslöja redan idag.

Labba på plats: Du har tillgång till labbdatorer och kan testa nya tekniker, metoder och produkter.

Oavsett om du arbetar inom en stor koncern eller på ett småföretag, i den privata eller den offentliga sektorn, kan du bredda och fördjupa dina tekniska kunskaper i Västerås den 17-18 mars 2009. Under de två dagarna kan du ta del av 90 tekniska sessioner – fördelade på parallella spår för IT-chefer, tekniker och utvecklare.

Under TechDays lanserar vi även vårt nya erbjudande inom Microsoft Online Services, som innebär att vi erbjuder några av våra viktigaste produkter som molnbaserade tjänster.

Hör presentationer och se demonstrationer av framtidens och nuvarande versioner av Microsofts produkter och teknologier – med inriktning mot just din vardag och verksamhet.

Några Microsoft-produkter och lösningsområden som vi presenterar under TechDays 17–18 mars 2009:

  • Windows Azure (molnbaserade tjänster)
  • Virtualisering
  • Windows Server 2008 och Windows Server 2008 R2
  • Se hur det fiktiva konsultföretaget TechKnights migrerar en IT-miljö från Basic till Rationalized – i realtid – på 48 timmar.
  • Windows Vista och Windows 7
  • Office 2007
  • WPF och Silverlight
  • Exchange 2007
  • Forefront, kodnamn “Stirling”
  • Unified Communications
  • Data management med System Center
  • Affärssystem
  • Identitets- och tillgångshantering
  • Nyheter i .NET-ramverket
  • Molntjänster inom Windows Live-plattformen
  • Och mycket mer

2.svenska_bloggknapp150x130