Konfigurationsvereinfachungen bei WCF 4.0

Die kommende Version 4.0 des .NET Framework bringt auch für die Windows Communication Foundation (WCF) einige Änderungen mit sich. Im Vergleich zur Workflow Foundation 4.0 fallen die Änderungen im WCF-Stack nicht so dramatisch aus. Alles was bisher funktioniert hat, wird auch weiterhin funktionieren. Es gibt allerdings einige Neuigkeiten, die Entwicklern das Leben mit der WCF in manchen Szenarien in der Tat leichter machen werden.

    

» Von , 07.12.2009 18:34.

von Damir Dobric

WCF-Entwickler dürften sich einig sein, dass die WCF-Konfiguration komplex und nicht besonders intuitiv ist. Ohne falsche Hoffnungen zu wecken, daran wird sich in der WCF-Welt in Zukunft nichts Grundlegendes ändern. Es gibt allerdings Neuerungen, die zu Vereinfachungen führen werden und genau um diese Neuerungen soll es in diesem Artikel gehen.

Listing 1 zeigt einen Service mit dem Namen "Service1". Es enthält einen Service- und einen Data-Contract. Die dazugehörige WCF 3.5-Konfiguration ist in Listing 2 zu sehen. Die Konfiguration enthält ein ServiceElement mit einem Endpoint. Das ServiceElement referenziert ein sog. ServiceBehavior-Element, das das Verhalten des Service festlegt. Darüber hinaus gibt es ein Pflicht-Element mit dem Namen Endpoint, das eine Adresse, ein Binding und einen Contract (manchmal ABC genannt) festlegt. Das ist beinahe die einfachste Konfiguration, die es bei WCF 3.5 geben kann.

Listing 1: Sample Service- und Data-Contracts

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Runtime.Serialization;
usingSystem.ServiceModel;


usingSystem.Text;



namespaceSimpleConfigSample


{
[ServiceContract]
public interface IService1


{
[OperationContract]
string GetData(int value);

[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);


}

[DataContract]
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";



[DataMember]
public bool BoolValue


{
get { return boolValue; }
set { boolValue = value; }


}

[DataMember]
public string StringValue


{
get { return stringValue; }


set { stringValue = value; }


}
}

Listing 2: WCF 3.5 Beispiel Konfiguration

<?xmlversion="1.0"encoding="utf-8"?>
<configuration>
<system.web>
<compilationdebug="true"/>
</system.web>
<system.serviceModel>
<services>
<servicename="WcfServiceLibrary1.Service1" <br>behaviorConfiguration="WcfServiceLibrary1.Service1Behavior">
<host>
<baseAddresses>
<addbaseAddress= "http://localhost:8080/Service1/"/>
</baseAddresses>
</host>
<endpointaddress=""binding="wsHttpBinding" contract="WcfServiceLibrary1.IService1">

KOMMENTARE

Keine Kommentare

KOMMENTAR SCHREIBEN

*
*
*
*

Alles Pflichfelder, E-Mail-Adresse wird nicht angezeigt.

Die Redaktion hält sich vor, unangebrachte, rassistische oder ehrverletzende Kommentare zu löschen.
Die Verfasser von Leserkommentaren gewähren der IDG Communications AG das unentgeltliche, zeitlich und räumlich unbegrenzte Recht, ihre Leserkommentare ganz oder teilweise auf dem Portal zu verwenden. Eingeschlossen ist zusätzlich das Recht, die Texte in andere Publikationsorgane, Medien oder Bücher zu übernehmen und zur Archivierung abzuspeichern.