Affärsnytta i fokus för sammankopplade system

Windows Communication Foundation, WCF, gick tidigare under kodnamnet Indigo. Det är en gemensam programmeringsmodell som tack vare sin uppbyggnad gör det möjligt att utveckla SOAapplikationer, bland annat. Mathias Olausson ger sin syn på WCF, vilka fördelar som finns och hur framtidsutsikterna ser ut.

Hur skulle du förklara WCF för dem som inte redan vet vad det är för något?
- WCF är Microsofts senaste ramverk för att bygga samman-kopplade system. Med WCF har Microsoft samlat det bästa från tidigare tekniker och skapat en produkt där vi kan fokusera på vad vi vill kommunicera och inte på hur. Alltså, när vi skapar sammankopplade system med WCF, bygger vi affärsnytta snarare än infrastruktur.

Vilka tekniker fanns innan WCF för att jobba med sammankopplade system? Vilka direkta fördelar ser du med WCF jämfört med dessa?
- Microsoft har en lång historia med olika tekniker för att bygga sammankopplade system. Med WCF får vi en gemensam programmeringsmodell för att lösa de behov som tidigare hanterades med hjälp av många olika tekniker, till exempel COM+, ASP.NET Web Services, .NET Remoting och MSMQ. WCF ger oss en enkel programmeringsmodell och därefter kan vi styra hur applikationen beter sig när den exekverar genom att konfigurera den.

I vilka sammanhang ser du den största nyttan med WCF?
- När WCF används som teknik för att bygga web services. Konceptet med en enad programmeringsmodell med ett gott stöd för avancerade web services-funktioner, plus ett starkt fokus på kontraktsdesign, gör WCF till ett kraftfullt ramverk för den här typen av lösning.

Vad var det som fick dig personligen att fastna för WCF? När förstod du att det var något du ville gräva djupare i?
- Jag var på Microsofts Professional Developer's Conference i Los Angeles år 2003 där .NET 3.0 visades för första gången. Ända sedan .NET kom hade vi känt att vi inte fått en riktigt bra lösning för byggandet av distribuerade system. Tidigare, med Windows DNA-arkitekturen, så fick vi en komplett program-meringsmiljö för den här typen av lösning som även innefattade en applikationsserver för exekveringen av serverkoden. .NET 3.0 och WCF verkade vara vägen framåt för de här lösningarna i .NET-miljön, där då IIS:en fungerar som vår applikationsserver. Det tråkiga var bara att det skulle dröja drygt tre år innan tekniken fanns tillgänglig!

WCF var en del av .NET 3.0. I och med .NET 3.5 skedde en del förändringar/förbättringar. Kan du berätta kort om dessa?
- .NET 3.5 har inte inneburit så väldigt nytt mycket för WCF. Det stora i mitt tycke är att vi har fått möjlighet att med samma progr-ammeringsmodell exponera web services enligt RESTprotokollet. För vissa typer av tillämpningar är det en fördel att på ett enkelt och lättviktigt sätt dela ut information från en applikation utan att behöva hantera alla detaljer i WCF. Typexemplet för en REST-applikation är en RSS-feed, där vi med exempelvis en webb-läsare kan navigera till en RSS-källa och enkelt titta på det som publiceras. Med .NET 3.5 kan vi implementera den typen av tjänst med bara ett fåtal rader kod.

Hur pass integrerat är WCF med andra nyheter i .NET-plattformen, som till exempel LINQ och Workflow Foundation? Vilka kopplingar hittar vi till dessa tekniker?
- Inte speciellt integrerat, skulle jag säga. WCF är en komplett-erande teknik till exempelvis LINQ och WF där WCF ger oss ramverket för att exponera data till andra applikationer. LINQ ger oss ett ramverk för hanteringen av data inuti applikationer och WF ger oss ett sätt att automatisera processandet av data. Så var och en löser sitt problem. Men de kan fungera mycket bra tillsammans. I .NET 3.5 finns till exempel möjligheten att exponera ett WF-arbetsflöde som en WCF-tjänst eller att implementera en WCF-tjänst som ett WF-arbetsflöde.

Vad är din känsla för användningen av WCF? Hur utbredd är den? Är det här en teknik som många utvecklare anammat eller kör man på i gamla fotspår?
- Det är lite blandat. Inom vissa områden, som exempelvis web service-lösningar, är WCF en direkt nyttig lösning. Men för andra
tekniker är inte fördelarna lika uppenbara. Att få en enhetlig programmeringsmodell är naturligtvis bra, men det är inte något
man lägger tid på bara för sakens skull. Nya projekt har givetvis lättare att ta till sig WCF, så det ökar sakta men säkert.

Kan du ge några faktiska exempel på lösningar du varit med och byggt som använt sig av WCF? Vilka lärdomar har du kunnat dra av dessa?
- Under de senaste åren har jag i huvudsak arbetat med WCF som en teknik för att skapa publika web services. Det har på det
hela taget fungerat bra. Min erfarenhet så här långt är att WCF leder oss till att jobba med kontraktsdesign (API-design) på ett
tidigt plan och att vi kan använda WCF i det övre skiktet i vår kommunikationslösning. Resten av systemet behöver inte känna till någonting om WCF. Projektmässigt innebär det här att det inte finns några stora hinder för att börja arbeta med WCF eftersom alla i projektet inte måste kunna WCF från första dagen. Det räcker ofta med att någon med erfarenhet av WCF sätter upp projektstrukturen och de initiala komponenterna så kan andra projektmedlemmar arbeta vidare från det.

Vilken förbättringspotential ser du i WCF? Vilka förbättringar tror du finns runt hörnet i form av nya versioner?
- Det är såklart svårt att sia om. Enklare programmerings- och deployment-modeller skulle kunna vara något, men med RESTstödet i .NET 3.5 så är vi ju i stort sett redan där. Så min förhoppning är att WCF är rätt designat och att vi framöver kommer att få fortsatt stöd för nya sätt att kommunicera, men med samma programmeringsmodell.

Skaffa kunskaperna på Informator
MS4994 Introduction to Programming Microsoft .NET Framework Applications with Microsoft Visual Studio 2005
MS2310 Developing Web Applications Using Microsoft Visual Studio 2008
MS6460 Visual Studio 2008: Windows Presentation Foundation
MS6461 Visual Studio 2008: Windows Communication Foundation
MS6462 Visual Studio 2008: Windows Workflow Foundation
T2820 LINQ

T2745 ASP.NET 3.5 Developer Deep Dive

Läs mer och boka på www.informator.se/visual_studio_2008

 
Gold Partner
Novell Partner

Senaste besökta utbildningar