Hello World WCF

by Agus Kurniawan 20. August 2009 16:48

Seperti sebelumnya gw jelas mengenai singkat WCF di http://blog.aguskurniawan.net/post/Introduction-to-Windows-Communication-Foundation-(WCF).aspx. Saatnya kita coba mempraktekan WCF.

Lab Environment

Untuk keperluan ini dibutuhkan

  • OS Windows XP/Vista atau Windows Server 2000/2003/2008
  • Visual Studio 2008

Membuat Aplikasi Hello World WCF 3.5

Disini kita membuat aplikasi WCF yang dihosting di web ASP.NET. Sedangkan client akan berbentuk console app.

WCF Server

Pertama-tama kita buat aplikasi WCF server yang bertindak sebagai service server. Berikut ini langkah-langkahnya:

Buat project dan pilih templet ASP.NET Web Application, lihat gambar dibawah 

wcf1

Beri nama project dan solution. Jika selesai klik tombol OK. Selanjutnya pada project tersebut, klik kanan dan pilih Add->New Item, contohnya seperti gambar dibawah

wcf2  

Kemudian akan muncul kotak dialog seperti gambar dibawah

wcf3

Pilih WCF Service dan tulis nama file nya. Jika selesai, klik tombol Add. Misalkan disini namanya MyWCF maka akan dihasilkan file IMyWCF.cs, MyWCF.svc, dan MyWCF.svc.cs

Berikut ini code untuk IMyWCF.cs

[ServiceContract]
public interface IMyWCF
{
    [OperationContract]
    string DoWork(string data);
}

Sedangkan implementasi pada file MyWCF.svc.cs

public class MyWCF : IMyWCF
{
    public string DoWork(string data)
    {
        return string.Format("Data={0}", data);
    }
}

Jika selesai, lakukan compile dan build. Pastikan tidak ada error. Kalau sudah ok, kita test WCF server nya. Caranya klik kanan file MyWCF.svc dan pilih menu View in Browser

wcf3-1

Selanjutnya pada browser akan muncul tampilan seperti dibawah ini

wcf3-2

Ok, pekerjaan pembuatan WCF server sudah selesai.

WCF Client

Setelah WCF server selesai dibuat, kita akan membuat aplikasi client berbasis console. Tambahkan project baru dengan template Console Application.

wcf4

Setelah project console dipilih maka pertama-tama kita menghubungkan aplikasi WCF client ke WCF Server. Caranya klik kanan project dan pilih menu Add Service Reference seperti gambar dibawah ini

wcf5

Selanjutnya akan muncul kotak dialog seperti gambar dibawah ini

wcf6

Isi URL WCF Server dan kemudian klik tombol Go. Jika selesai, klik tombol OK. Ini akan menghasil Service Reference dan penambahan file baru yaitu app.config. Isinya:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <wsHttpBinding>
                <binding name="WSHttpBinding_IMyWCF" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                    allowCookies="false">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
                        enabled="false" />
                    <security mode="Message">
                        <transport clientCredentialType="Windows" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="Windows" negotiateServiceCredential="true"
                            algorithmSuite="Default" establishSecurityContext="true" />
                    </security>
                </binding>
            </wsHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:3569/MyWCF.svc" binding="wsHttpBinding"
                bindingConfiguration="WSHttpBinding_IMyWCF" contract="RefWCF.IMyWCF"
                name="WSHttpBinding_IMyWCF">
                <identity>
                    <dns value="localhost" />
                </identity>
            </endpoint>
        </client>
    </system.serviceModel>
</configuration>

Nilai http://localhost:3569/MyWCF.svc, dapat diganti disesuaikan dengan URL dan port nya.

Selanjutnya pada file Program.cs, tulis code sebagai berikut:

using System;
 
using ClientWCF.RefWCF;
namespace ClientWCF
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Call WCF");
 
            MyWCFClient wcf = new MyWCFClient();
            string resultData = wcf.DoWork("Selamat datang WCF");
            Console.WriteLine(resultData);
 
            Console.ReadLine();
        }
    }
}

Jika selesai, lakukan compile dan build. Pastikan tidak ada error yang terjadi.

Menjalankan Aplikasi

Pertama-tama jalan app WCF Server nya. Selanjutnya baru jalankan WCF client, berikut ini contohnya

wcf7

Apabila app WCF client dijalankan melalui VS 2008 dengan mode debugging maka mungkin mendapatkan error seperti dibawah ini

wcf8

Supaya gak keluar error diatas, pada bagian  WCF server, pastikan debug dibuat true

wcf9

Source Code

Source aplikasi ini dapat didownload di http://download.aguskurniawan.net/DownloadFile.aspx?file=3975b820-6099-4f80-914b-105a9be0c883

Semoga berguna….

Tags: , ,

.NET | Distributed System

Comments (2) -

cash loans
cash loans United States
10/26/2009 7:30:13 AM #

Do you have any more info on this?

personal loans
personal loans United States
10/28/2009 10:38:20 PM #

Just try to smile for about 2-3 mins then you can get back to work

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading