<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.netindonesia.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SonySe</title><link>http://geeks.netindonesia.net/blogs/sonyse/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Windows Communication Foundation Sample Project (VB)</title><link>http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-sample-project-vb.aspx</link><pubDate>Sun, 26 Apr 2009 13:51:44 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:107973</guid><dc:creator>Sony Setiawan</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/sonyse/rsscomments.aspx?PostID=107973</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-sample-project-vb.aspx#comments</comments><description>&lt;p&gt;Tulisan sebelumnya saya sudah membahas tentang overview dan sejarah teknologi WCF. Dikesempatan ini saya akan memberikan informasi bagaimana programming model di WCF. Setelah saya pelajari konsep WCF berdasarkan buku-buku yang ada saya akan menjelaskan 3 bagian yang harus kita pelajari :&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Services : tempat kita membuat services apa saja yang akan kita publish atau kita ekspos keluar &lt;/li&gt;    &lt;li&gt;Host : tempat dimana services yang akan kita buat di host untuk mendapatkan Address alamat serta port yang di protocol mana kita akan publish dan dipergunakan oleh client, dan juga menentukan binding tipe mana yang boleh digunakan disisi client. &lt;/li&gt;    &lt;li&gt;Client : teknologi di sisi client yang akan menggunakan services ini. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Pertama yang akan dibahas adalah membuat services.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Services &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Untuk memahami pembuatan services, kita harus menentukan dahulu metode, properti dan event mana saja yang akan kita publish keluar. Untuk&amp;#160; contoh pertama kita akan membuat sebuah metode sederhana untuk perhitungan matematika.&lt;/p&gt;  &lt;p&gt;Metode-metode yang akan kita publish keluar adalah :&lt;/p&gt;  &lt;p&gt;- Penambahan (nilai1,nilai2) return integer&lt;/p&gt;  &lt;p&gt;- Pengurangan (nilai1,nilai2) return integer&lt;/p&gt;  &lt;p&gt;- Perkalian (nilai1,nilai2) return integer&lt;/p&gt;  &lt;p&gt;- Pembagian (nilai1,nilai2) return integer&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;1&lt;/td&gt;        &lt;td&gt;Tahap pertama buat sebuah project WCF Services dengan menggunakan template yang sudah disiapkan oleh Visual Studio 2008. Saya menggunakan Visual Basic sebagai bahasa-nya.&lt;a href="http://geeks.netindonesia.net/blogs/sonyse/image_735ADBFA.png"&gt;            &lt;br /&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/sonyse/image_thumb_0BA9E217.png" width="499" height="358" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;2&lt;/td&gt;        &lt;td&gt;Hapus iService1.vb dan Service1.vb file ini otomatis muncul bersamaan ketika project baru dibuat&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;3&lt;/td&gt;        &lt;td&gt;Buat sebuah folder &lt;strong&gt;Contracts &lt;/strong&gt;yang nantinya akan dipakai untuk menyimpan interface &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;4&lt;/td&gt;        &lt;td&gt;Di dalam folder contracts tambahkan item baru &lt;strong&gt;Class &lt;/strong&gt;kemudian beri nama iMath.vb&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;5&lt;/td&gt;        &lt;td&gt;Buat coding sebagai di dalam &lt;strong&gt;iMath.vb &lt;/strong&gt;berikut :&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;         &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;           &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Namespace&lt;/span&gt; Test1.Exchange.Contracts&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ServiceContract()&amp;gt; _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Interface&lt;/span&gt; iMath&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;OperationContract()&amp;gt; _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; penambahan(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;OperationContract()&amp;gt; _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; pengurangan(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;OperationContract()&amp;gt; _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; perkalian(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;OperationContract()&amp;gt; _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; pembagian(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Interface&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Namespace&lt;/span&gt;&lt;/pre&gt;
        &lt;/div&gt;
      &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;6&lt;/td&gt;

      &lt;td&gt;Dari root-nya project folder tambahkan sebuah class Item diberi nama &lt;strong&gt;Math.vb &lt;/strong&gt;kemudian ketik coding dibawah ini : 

        &lt;br /&gt;

        &lt;br /&gt;

        &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;
          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Imports&lt;/span&gt; System.ServiceModel&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Imports&lt;/span&gt; MathService.Test1.Exchange.Contracts&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Namespace&lt;/span&gt; Test1.Exchange&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ServiceBehavior(InstanceContextMode:=InstanceContextMode.Single)&amp;gt; _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt; Math&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Implements&lt;/span&gt; iMath&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; pembagian(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) _ &lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;            &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt; &lt;span style="color:blue;"&gt;Implements&lt;/span&gt; Contracts.iMath.pembagian&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Return&lt;/span&gt; nilai1 / nilai2&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Function&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; penambahan(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) _ &lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;            &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt; &lt;span style="color:blue;"&gt;Implements&lt;/span&gt; Contracts.iMath.penambahan&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Return&lt;/span&gt; nilai1 + nilai2&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Function&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; pengurangan(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) _ &lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;            As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt; &lt;span style="color:blue;"&gt;Implements&lt;/span&gt; Contracts.iMath.pengurangan&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Return&lt;/span&gt; nilai1 - nilai2&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Function&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; perkalian(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) _ &lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;            As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt; &lt;span style="color:blue;"&gt;Implements&lt;/span&gt; Contracts.iMath.perkalian&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Return&lt;/span&gt; nilai1 * nilai2&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Function&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Namespace&lt;/span&gt;&lt;/pre&gt;
        &lt;/div&gt;
      &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;7&lt;/td&gt;

      &lt;td&gt;Sampai tahap ini coba di compile dan dicek apakah masih ada error, kalau tidak ada kita masuk ke dalam tahap selanjutnya yaitu membungkus menjadi sebuah host.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;

&lt;p&gt;Kita sudah selesai membuat Services-nya dari WCF Project yang akan kita lanjutkan. Di dalam services ini kita harus mempersiapkan sebuah contract dari services yang akan kita buat. Simple-nya adalah buat interface dari semua metode, properti dan event yang akan kita tampilkan ke luar dan dipanggil dari client.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Host &lt;/strong&gt;&lt;/p&gt;

&lt;table cellspacing="0" cellpadding="2"&gt;
    &lt;tr&gt;
      &lt;td&gt;1&lt;/td&gt;

      &lt;td&gt;tambahkan sebuah project Console Application dari solution dengan cara &lt;strong&gt;File –&amp;gt; Add New Project &lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;2&lt;/td&gt;

      &lt;td&gt;Beri nama &lt;strong&gt;MathConsoleHost&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;3&lt;/td&gt;

      &lt;td&gt;Kemudian ganti isi module1.vb dengan coding berikut : &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&amp;#160;&lt;/td&gt;

      &lt;td&gt;
        &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;
          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Imports&lt;/span&gt; System.ServiceModel&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Imports&lt;/span&gt; MathService.Test1.Exchange&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Imports&lt;/span&gt; MathService.Test1.Exchange.Contracts&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Namespace&lt;/span&gt; Test1.Exchange.Hosts&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Module&lt;/span&gt; Module1&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt; Main()&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;&amp;#39;Bikin EndPoint URI ( Uniform Resource Identifier)&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;&amp;#39;A = Address&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; address &lt;span style="color:blue;"&gt;As&lt;/span&gt; Uri = &lt;span style="color:blue;"&gt;New&lt;/span&gt; Uri(&lt;span style="color:#a31515;"&gt;&amp;quot;http://localhost:8888/Test1/Exchange&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;&amp;#39;B = Binding&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; svcType &lt;span style="color:blue;"&gt;As&lt;/span&gt; Type = &lt;span style="color:blue;"&gt;GetType&lt;/span&gt;(Math)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; binding &lt;span style="color:blue;"&gt;As&lt;/span&gt; BasicHttpBinding = &lt;span style="color:blue;"&gt;New&lt;/span&gt; BasicHttpBinding()&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; host &lt;span style="color:blue;"&gt;As&lt;/span&gt; ServiceHost = &lt;span style="color:blue;"&gt;New&lt;/span&gt; ServiceHost(svcType)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;&amp;#39;tambahkan endpoint / address kedalam host&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; host.AddServiceEndpoint(&lt;span style="color:blue;"&gt;GetType&lt;/span&gt;(iMath), binding, address)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; host.Open()&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Service Math Started : Press Return to exit&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.ReadLine()&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Module&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Namespace&lt;/span&gt;&lt;/pre&gt;
        &lt;/div&gt;
      &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;4&lt;/td&gt;

      &lt;td&gt;Compile dan coba jalankan host ini dengan cara dari solution explorer – klik kanan project MathConsoleHost –&amp;gt; debug –&amp;gt; &lt;strong&gt;start new instance&lt;/strong&gt; tunggu sebentar hingga muncul dialog console berikut : &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&amp;#160;&lt;/td&gt;

      &lt;td&gt;&lt;a href="http://geeks.netindonesia.net/blogs/sonyse/image_0A715B06.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/sonyse/image_thumb_1B451782.png" width="478" height="252" /&gt;&lt;/a&gt; &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&amp;#160;&lt;/td&gt;

      &lt;td&gt;Sampai tahapan ini kita sudah membuat host services kita yang berjalan dengan menggunakan &lt;strong&gt;basicHttpBinding&amp;#160; &lt;/strong&gt;atau sama dengan membuat web service menggunakan protocol http.Next step-nya adalah ngetes dari client menggunakan console application juga&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&amp;#160;&lt;/td&gt;

      &lt;td&gt;&amp;#160;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Client&lt;/strong&gt;&lt;/p&gt;

&lt;table cellspacing="0" cellpadding="2"&gt;
    &lt;tr&gt;
      &lt;td&gt;1&lt;/td&gt;

      &lt;td&gt;Step-nya sama dengan pembuatan host akan tetapi module1.vb-nya diganti dengan coding sebagai berikut :&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&amp;#160;&lt;/td&gt;

      &lt;td&gt;
        &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;
          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Imports&lt;/span&gt; System.ServiceModel&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Imports&lt;/span&gt; System.ServiceModel.Activation&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Imports&lt;/span&gt; System.ServiceModel.Channels&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Imports&lt;/span&gt; System.Runtime.Serialization&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;Namespace&lt;/span&gt; Test1.Exchange.Clients&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ServiceContract()&amp;gt; _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Interface&lt;/span&gt; iMath&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;&amp;#39;&amp;#39; TODO: Add your service operations here&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;OperationContract()&amp;gt; _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; penambahan(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;OperationContract()&amp;gt; _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; pengurangan(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;OperationContract()&amp;gt; _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; perkalian(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;OperationContract()&amp;gt; _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Function&lt;/span&gt; pembagian(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nilai2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;) &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Interface&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Module&lt;/span&gt; Module1&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt; Main()&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;&amp;#39; proses memulai ABC of Services sampai proxy object&amp;#39;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; address &lt;span style="color:blue;"&gt;As&lt;/span&gt; EndpointAddress = &lt;span style="color:blue;"&gt;New&lt;/span&gt; EndpointAddress(&lt;span style="color:#a31515;"&gt;&amp;quot;http://localhost:8888/Test1/Exchange&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; binding &lt;span style="color:blue;"&gt;As&lt;/span&gt; BasicHttpBinding = &lt;span style="color:blue;"&gt;New&lt;/span&gt; BasicHttpBinding()&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; channelFactory &lt;span style="color:blue;"&gt;As&lt;/span&gt; IChannelFactory(&lt;span style="color:blue;"&gt;Of&lt;/span&gt; iMath) = _&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;New&lt;/span&gt; ChannelFactory(&lt;span style="color:blue;"&gt;Of&lt;/span&gt; iMath)(binding)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; proxy &lt;span style="color:blue;"&gt;As&lt;/span&gt; iMath = channelFactory.CreateChannel(address)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;&amp;#39;proses akses service class-nya Math&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; hasilPenambahan &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; hasilPenambahan = proxy.penambahan(3, 4)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Hasil Penambahan 3 + 4 = {0}&amp;quot;&lt;/span&gt;, hasilPenambahan)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; hasilPengurangan &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; hasilPengurangan = proxy.pengurangan(6, 2)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Hasil Pengurangan 6 + 2 = {0}&amp;quot;&lt;/span&gt;, hasilPengurangan)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; hasilPerkalian &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; hasilPerkalian = proxy.perkalian(5, 2)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Hasil Perkalian 5 x 2 = {0}&amp;quot;&lt;/span&gt;, hasilPerkalian)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;Dim&lt;/span&gt; hasilPembagian &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; hasilPembagian = proxy.pembagian(10, 2)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Hasil Pembagian 10 : 2 = {0}&amp;quot;&lt;/span&gt;, hasilPembagian)&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.ReadLine()&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Module&lt;/span&gt;&lt;/pre&gt;

          &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Namespace&lt;/span&gt;&lt;/pre&gt;
        &lt;/div&gt;
      &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;2&lt;/td&gt;

      &lt;td&gt;Test dengan cara yang sama seperti Host project sebelumnya sehingga nanti akan muncul nilai dan hasil-nya seperti ini :&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&amp;#160;&lt;/td&gt;

      &lt;td&gt;&lt;a href="http://geeks.netindonesia.net/blogs/sonyse/image_31A7903C.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/sonyse/image_thumb_01D90049.png" width="529" height="281" /&gt;&lt;/a&gt; &lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&amp;#160;&lt;/td&gt;

      &lt;td&gt;sampai disini kita sudah selesai melakukan test ke sebuah WCF sample project yang sudah kita buat tadi. Selamat mencoba.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-sample-project-vb.aspx&amp;amp;subject=Windows Communication Foundation Sample Project (VB)" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-sample-project-vb.aspx&amp;amp;t=Windows+Communication+Foundation+Sample+Project+(VB)" target="_blank" title="Submit Windows Communication Foundation Sample Project (VB) to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-sample-project-vb.aspx&amp;amp;title=Windows+Communication+Foundation+Sample+Project+(VB)" target="_blank" title="Submit Windows Communication Foundation Sample Project (VB) to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-sample-project-vb.aspx&amp;amp;phase=2" target="_blank" title="Submit Windows Communication Foundation Sample Project (VB) to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-sample-project-vb.aspx&amp;amp;title=Windows+Communication+Foundation+Sample+Project+(VB)" target="_blank" title="Add Windows Communication Foundation Sample Project (VB) to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=107973" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/sonyse/archive/tags/wcf/default.aspx">wcf</category></item><item><title>Windows Communication Foundation Based on SOA Perception</title><link>http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-based-on-soa-perception.aspx</link><pubDate>Sun, 26 Apr 2009 13:49:15 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:107970</guid><dc:creator>Sony Setiawan</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/sonyse/rsscomments.aspx?PostID=107970</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-based-on-soa-perception.aspx#comments</comments><description>&lt;p&gt;Saat ini terminologi SOA (Service Oriented Architecture) sudah menjadi buah bibir banyak kalangan terutama para pemain di industri yang terkait dengan lingkungan Enterprise. Memang topik ini cukup advanced untuk dipelajari oleh karena itu dibutuhkan pemahaman terlebih dahulu tentang SOA sendiri.&lt;/p&gt;  &lt;p&gt;5 tahun terakhir ini Web Services sudah banyak dipakai oleh industri terutama oleh pengguna di kalangan enterprise. Web Services pada jaman itu sudah menjadi bentuk SOA yang paling generic dikarenakan kemampuan dia untuk dipakai oleh berbagai macan client runtime termasuk diantaranya adalah java based application , PHP, phyton dsb. Kemudian penyedia Web Services-nya pun semakin banyak tidak hanya dari Microsoft Based tapi juga dari PHP, Java Enterprise, Oracle, BEA dan masih banyak yang lainnya. &lt;/p&gt;  &lt;p&gt;SOA sebenarnya terdiri dari 3 komponen utama :&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Service Provider : sebuah node di network yang mempunyai jasa layanan services yang dapat digunakan oleh Service Consumer. &lt;/li&gt;    &lt;li&gt;Service Consumer : aplikasi yang sudah support SOAP Messages yang dapat mengkonsumsi Services Provider. &lt;/li&gt;    &lt;li&gt;Service Broker : makelar di dunia SOA yang tugas-nya sebagai tempat bagi siapapun untuk mencari services-services yang ada di sebuah network, mirip-mirip kayak fungsi-nya DNS / Google. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sejarah SOA&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SOA tidak bisa lepas keterkaitannya dengan sejarah distributed application sejak jaman VB 6 sampai .NET 2.0. Kalian tentu pernah tahu apa yang dimaksud COM (Component Object Model) , COM + (versi-nya COM yang disimpan dalam Component Services) dan .NET Remoting. Tidak ketinggalan Web Services versi .NET 1.1 hingga 2.0. Beberapa kelemahan dari beberapa teknologi yang tadi saya sebutkan adalah sebagai berikut :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;COM / COM + : Walaupun banyak aplikasi yang masih support teknologi ini, tetapi kelemahannya adalah client-nya harus menggunakan Windows Operating System terutama yang sudah support RPC (Remote Procedure Call) &lt;/li&gt;    &lt;li&gt;.NET Remoting : kurang populer karena antara host dan client harus menggunakan teknologi .NET. Kemudian untuk membungkus transportation layer-nya harus menggunakan proses coding yang sangat rumit. &lt;/li&gt;    &lt;li&gt;Web Services : harus selalu menggunakan http protocol untuk distribusi-nya walaupun untuk client-nya bisa menggunakan teknologi manapun yang support SOAP. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sebelum Visual Studio 2008 release, VS 2005 sudah mempunyai add in tools tersendiri untuk membuat SOA ini tentunya dengan menggunakan .NET Framework 3.0. add inn tools ini dapat di download di &lt;a href="http://downloads.zdnet.co.uk/0,1000000375,39328336s,00.htm"&gt;sini&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Apa Keunggulan WCF&lt;/strong&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Pertanyaan berikut-nya apa yang membuat WCF menarik dibandingkan dengan pendahulu-nya ? tentunya jawaban pertanyaan ini adalah untuk kekurangan-kekurangan ini teknologi sebelumnya. Jadi secara umum WCF mencoba merangkum apa yang kekurangan-kekurangan di teknologi sebelumnya, tetapi sifatnya bukan menimpa teknologi sebelumnya malah melakukan extend dari teknologi sebelumnya.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cukup dulu pengantar-nya tentang WCF di sesi berikut-nya saya akan membuat simple project dengan teknologi WCF dan SOA.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-based-on-soa-perception.aspx&amp;amp;subject=Windows Communication Foundation Based on SOA Perception" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-based-on-soa-perception.aspx&amp;amp;t=Windows+Communication+Foundation+Based+on+SOA+Perception" target="_blank" title="Submit Windows Communication Foundation Based on SOA Perception to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-based-on-soa-perception.aspx&amp;amp;title=Windows+Communication+Foundation+Based+on+SOA+Perception" target="_blank" title="Submit Windows Communication Foundation Based on SOA Perception to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-based-on-soa-perception.aspx&amp;amp;phase=2" target="_blank" title="Submit Windows Communication Foundation Based on SOA Perception to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/sonyse/archive/2009/04/26/windows-communication-foundation-based-on-soa-perception.aspx&amp;amp;title=Windows+Communication+Foundation+Based+on+SOA+Perception" target="_blank" title="Add Windows Communication Foundation Based on SOA Perception to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=107970" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/sonyse/archive/tags/wcf/default.aspx">wcf</category></item><item><title>Penggunaan WWF di ASP.NET</title><link>http://geeks.netindonesia.net/blogs/sonyse/archive/2008/12/07/penggunaan-wwf-di-asp-net.aspx</link><pubDate>Sun, 07 Dec 2008 04:36:43 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:82845</guid><dc:creator>Sony Setiawan</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/sonyse/rsscomments.aspx?PostID=82845</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/sonyse/archive/2008/12/07/penggunaan-wwf-di-asp-net.aspx#comments</comments><description>&lt;p&gt;Ternyata penggunaan workflow di dalam ASP.NET jauh berbeda dengan penggunaan workflow dalam windows based application,tadi-nya saya pikir konsep-nya sama saja ternyata tidak semudah dalam windows based application. Setelah melihat-lihat beberapa dokumentasi dari MSDN dan dari beberapa buku akhirnya ketemu juga beberapa hal yang mendasari perbedaan itu, yang paling penting adalah penempatan object Workflow Runtime-nya. Apakah mau disimpan ke dalam application variable atau mau disimpan ke dalam sebuah class host tersendiri yang berada dalam satu web based application tempat host dari workflow tersebut berada.&lt;/p&gt; &lt;p&gt;Hasil penelusuran saya akan dituangkan dalam tulisan berikut ini. Saat ini ada 2 cara untuk menggunakan WWF di dalam ASP.NET :&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Mempublish workflow menjadi web services.  &lt;li&gt;Membuat workflow dengan cara biasa&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Saya akan membahas cara yang kedua saat ini. Dimulai dengan membuat new website baru dengan menggunakan Visual Studio 2008. Kemudian tambahkan 1 project Sequential Workflow baru dengan menggunakan VB / C# sebagai language-nya. Untuk memudahkan pemahaman saya akan gunakan perhitungan matematika biasa. &lt;/p&gt; &lt;p&gt;VS 2008 Solution explorer akan terlihat seperti ini :&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/PenggunaanWWFdiASP.NET_11172/gbr1_4.png"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" border="0" alt="gbr1" src="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/PenggunaanWWFdiASP.NET_11172/gbr1_thumb_1.png" width="236" height="244" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Buka Worflow Editor kemudian tambahkan 1 buah Code Activity kedalam workflow, double click code activity. Didalam code view kita tambahkan 3 buah property.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.ComponentModel;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.ComponentModel.Design;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Drawing;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Linq;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Workflow.ComponentModel.Compiler;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Workflow.ComponentModel.Serialization;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Workflow.ComponentModel;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 10&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Workflow.ComponentModel.Design;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 11&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Workflow.Runtime;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 12&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Workflow.Activities;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 13&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Workflow.Activities.Rules;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 14&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 15&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 16&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; WFMath&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 17&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;sealed&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Workflow1&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;SequentialWorkflowActivity&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 19&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 20&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt; m_nilai1;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 21&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt; m_nilai2;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 22&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt; m_hasil;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 23&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 24&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; Workflow1()&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 25&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 26&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 27&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 28&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 29&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt; nilai1 {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 30&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;get&lt;/span&gt; {&lt;span style="color:blue;"&gt;return&lt;/span&gt; m_nilai1;}&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 31&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;set&lt;/span&gt; {m_nilai1 = &lt;span style="color:blue;"&gt;value&lt;/span&gt;;}&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 32&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 33&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 34&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt; nilai2{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 35&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;get&lt;/span&gt; {&lt;span style="color:blue;"&gt;return&lt;/span&gt; m_nilai2;}&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 36&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;set&lt;/span&gt; {m_nilai2 = &lt;span style="color:blue;"&gt;value&lt;/span&gt;;}&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 37&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 38&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 39&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt; hasil {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 40&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; m_hasil; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 41&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;set&lt;/span&gt; { m_hasil = &lt;span style="color:blue;"&gt;value&lt;/span&gt;; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 42&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 43&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 44&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; codeActivity1_ExecuteCode(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 45&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 46&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_hasil = m_nilai1 + m_nilai2;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 47&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Workflow tereksekusi&amp;quot;&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 48&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(m_hasil.ToString());&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 49&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Workflow selesai&amp;quot;&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 50&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 51&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 52&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 53&lt;/span&gt; }&lt;/p&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Kemudian modifikasi web.config untuk mempersiapkan penggunaan library yang akan dipakai.&lt;/p&gt; &lt;p&gt;1. Sisipkan baris dibawah didalam &amp;lt;ConfigSections&amp;gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;section&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;WorkflowRuntime&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;System.Workflow.Runtime.Configuration.WorkflowRuntimeSection,System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;2.&amp;nbsp; Setelah close tag &amp;lt;/ConfigSections&amp;gt; sisipkan runtime dibawah.&lt;/p&gt; &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;WorkflowRuntime&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;WorkflowServiceContainer&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Services&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;add&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService,System.Workflow.Runtime, Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;add&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;System.Workflow.Runtime.Hosting.DefaultWorkflowCommitWorkBatchService,System.Workflow.Runtime, Version=3.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Services&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;WorkflowRuntime&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;3.&amp;nbsp; Di dalam assemblies section sisipkan ini :&lt;/p&gt; &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;add&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;assembly&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;System.Workflow.Runtime, Version=3.0.0.0,Culture=neutral, PublicKeyToken=31BF3856AD364E35&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;add&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;assembly&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;System.Workflow.ComponentModel, Version=3.0.0.0,Culture=neutral, PublicKeyToken=31BF3856AD364E35&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;add&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;assembly&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;System.Workflow.Activities, Version=3.0.0.0,Culture=neutral, PublicKeyToken=31BF3856AD364E35&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;Kemudian didalam global.asax Simpan object workflow runtime pada saat application start berjalan dan stop workflow runtime pada saat application on end.&lt;/p&gt; &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 41&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Application_Start(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, EventArgs e) &lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 42&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 43&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// Code that runs on application startup&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 44&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Workflow.Runtime.WorkflowRuntime workflowRuntime =&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 45&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;new&lt;/span&gt; System.Workflow.Runtime.WorkflowRuntime(&lt;span style="color:#a31515;"&gt;&amp;quot;WorkflowRuntime&amp;quot;&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 46&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//start the workflow runtime&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 47&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; workflowRuntime.StartRuntime();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 48&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//save the runtime for use by individual pages&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 49&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application[&lt;span style="color:#a31515;"&gt;&amp;quot;WorkflowRuntime&amp;quot;&lt;/span&gt;] = workflowRuntime;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 50&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 51&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 52&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 53&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Application_End(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, EventArgs e) &lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 54&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 55&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//&amp;nbsp; Code that runs on application shutdown&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 56&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Workflow.Runtime.WorkflowRuntime workflowRuntime = &lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application[&lt;span style="color:#a31515;"&gt;&amp;quot;WorkflowRuntime&amp;quot;&lt;/span&gt;] &lt;span style="color:blue;"&gt;as&lt;/span&gt; System.Workflow.Runtime.WorkflowRuntime;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 57&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; workflowRuntime.StopRuntime();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 58&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Di defaut aspx buat tampilan seperti ini :&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/PenggunaanWWFdiASP.NET_11172/gbr2_2.png"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" border="0" alt="gbr2" src="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/PenggunaanWWFdiASP.NET_11172/gbr2_thumb.png" width="244" height="167" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;beri id utk masing textbox : txtnilai1,txtnilai2 dan txthasil&lt;/p&gt; &lt;p&gt;kemudian di bagian click button double click masuk ke event click &lt;/p&gt; &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 17&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;protected&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Button1_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 19&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;WorkflowRuntime&lt;/span&gt; workflowRuntime = Application[&lt;span style="color:#a31515;"&gt;&amp;quot;WorkflowRuntime&amp;quot;&lt;/span&gt;] &lt;span style="color:blue;"&gt;as&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;WorkflowRuntime&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 20&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;//retrieve the scheduler that is used to execute workflows&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 21&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;ManualWorkflowSchedulerService&lt;/span&gt; scheduler =&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 22&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; workflowRuntime.GetService(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;ManualWorkflowSchedulerService&lt;/span&gt;)) &lt;span style="color:blue;"&gt;as&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ManualWorkflowSchedulerService&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 23&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 24&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; workflowRuntime.WorkflowCompleted += &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;WorkflowCompletedEventArgs&lt;/span&gt;&amp;gt;(workflowRuntime_WorkflowCompleted);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 25&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt; iNilai1;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 26&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt; iNilai2;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 27&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt;.TryParse(txtnilai1.Text, &lt;span style="color:blue;"&gt;out&lt;/span&gt; iNilai1);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 28&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt;.TryParse(txtNilai2.Text, &lt;span style="color:blue;"&gt;out&lt;/span&gt; iNilai2);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 29&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 30&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;String&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;Object&lt;/span&gt;&amp;gt; wfArguments = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;, &lt;span style="color:blue;"&gt;object&lt;/span&gt;&amp;gt;();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 31&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wfArguments.Add(&lt;span style="color:#a31515;"&gt;&amp;quot;nilai1&amp;quot;&lt;/span&gt;, iNilai1);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 32&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wfArguments.Add(&lt;span style="color:#a31515;"&gt;&amp;quot;nilai2&amp;quot;&lt;/span&gt;, iNilai2);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 33&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 34&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;WorkflowInstance&lt;/span&gt; instance = workflowRuntime.CreateWorkflow(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(WFMath.&lt;span style="color:#2b91af;"&gt;Workflow1&lt;/span&gt;), wfArguments);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 35&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; instance.Start();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 36&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 37&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scheduler.RunWorkflow(instance.InstanceId);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 38&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 39&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 40&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; workflowRuntime_WorkflowCompleted(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;WorkflowCompletedEventArgs&lt;/span&gt; e)&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 41&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 42&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (e.OutputParameters.ContainsKey(&lt;span style="color:#a31515;"&gt;&amp;quot;hasil&amp;quot;&lt;/span&gt;))&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 43&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 44&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt; dHasil = (&lt;span style="color:#2b91af;"&gt;Double&lt;/span&gt;)e.OutputParameters[&lt;span style="color:#a31515;"&gt;&amp;quot;hasil&amp;quot;&lt;/span&gt;];&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 45&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtHasil.Text = dHasil.ToString();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 46&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp; 47&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Selesai semua-nya kemudian di test dari page defaut.aspx&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/PenggunaanWWFdiASP.NET_11172/gb3_2.png"&gt;&lt;img style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" border="0" alt="gb3" src="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/PenggunaanWWFdiASP.NET_11172/gb3_thumb.png" width="244" height="157" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;hasil-nya akan keluar seperti ini, dimana proses perhitungannya dilakukan didalam WWF bukan di dalam coding-nya.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/sonyse/archive/2008/12/07/penggunaan-wwf-di-asp-net.aspx&amp;amp;subject=Penggunaan WWF di ASP.NET" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/12/07/penggunaan-wwf-di-asp-net.aspx&amp;amp;t=Penggunaan+WWF+di+ASP.NET" target="_blank" title="Submit Penggunaan WWF di ASP.NET to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/12/07/penggunaan-wwf-di-asp-net.aspx&amp;amp;title=Penggunaan+WWF+di+ASP.NET" target="_blank" title="Submit Penggunaan WWF di ASP.NET to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/12/07/penggunaan-wwf-di-asp-net.aspx&amp;amp;phase=2" target="_blank" title="Submit Penggunaan WWF di ASP.NET to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/12/07/penggunaan-wwf-di-asp-net.aspx&amp;amp;title=Penggunaan+WWF+di+ASP.NET" target="_blank" title="Add Penggunaan WWF di ASP.NET to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=82845" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/sonyse/archive/tags/wwf/default.aspx">wwf</category></item><item><title>Windows Workflow Foundation Part I</title><link>http://geeks.netindonesia.net/blogs/sonyse/archive/2008/09/29/windows-workflow-foundation-part-i.aspx</link><pubDate>Mon, 29 Sep 2008 01:15:23 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:64604</guid><dc:creator>Sony Setiawan</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/sonyse/rsscomments.aspx?PostID=64604</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/sonyse/archive/2008/09/29/windows-workflow-foundation-part-i.aspx#comments</comments><description>&lt;p&gt;Di dalam bagian pertama tulisan ini saya akan memberikan beberapa informasi tentang apa yang dimaksud dengan Windows Workflow Foundation (WWF). WWF adalah bagian integral dari sebuah perkembangan dotnet framework yang terbaru yaitu .NET Framework 3.5 selain WCF (Windows Communication Foundation) dan WPF (Windows Presentation Foundation). Dengan menggunakan WWF diharapkan mempermudah programmer dotnet untuk membuat sebuah aplikasi berbasis workflow secara cepat. Kenapa bisa cepat karena di dalamnya sudah disediakan beberapa programming model, in process workflow engine&amp;nbsp; serta set tools yang sudah lengkap untuk mempercepat pembuatan aplikasi berbasis workflow.&lt;/p&gt; &lt;p&gt;Garis besar dari pemanfaatan WWF saat ini adalah :&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Workflow Designer di Visual Studio 2008  &lt;li&gt;Workflow classes dan type data  &lt;li&gt;In Process Workflow Engine (sebuah engine yang sudah built-in di dalamnya utk menjalankan proses workflow)&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Dengan workflow diharapkan dapat menterjemahkan apa yang &lt;strong&gt;terjadi di dalam kondisi bisnis sebenarnya&lt;/strong&gt;, dan di dalamnya terdapat penjelasan atau bagaimana kita melaksanakan workflow tersebut yang disebut sebagai &lt;strong&gt;Activity.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bagaimana Sebuah Workflow dapat Bekerja&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Sebuah atau beberapa workflow harus berada dalam 1 buah &lt;strong&gt;HOST &lt;/strong&gt;apa yang dimaksud dengan host ? Host adalah sebuah proses yang berjalan dalam aplikasi yang akan menggunakan workflow tersebut dalam menjalankan aktifitas-nya. Contoh-contoh &lt;strong&gt;HOST&lt;/strong&gt; adalah aplikasi berbasis WEB ASP.NET, Windows Application atau Services dan juga yang sudah ada yaitu workflow yang sudah built-in yang nempel di Sharepoint Portal 2007 dan Windows Share Point Services 3.0&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/WindowsWorkflowFoundationPartI_CB1/image_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px 10px 0px 5px;border-right-width:0px;" height="244" alt="image" src="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/WindowsWorkflowFoundationPartI_CB1/image_thumb.png" width="163" align="left" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bagaimana Cara Coding di WWF.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Sebagaimana sebuah bagian dari proses pengembangan aplikasi maka tentunya ada standard bagaimana kita melakukan coding dengan menggunakan WWF, ternyata ada 3 cara yang bisa dilakukan utk melakukan coding dengan WWF.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Code-Only Authoring Mode (tidak perlu menggunakan VS 2008 utk compile)  &lt;li&gt;Code-Separation Authoring Mode ( default dengan menggunakan VS 2008, definisi workflow dalam XAML dan coding di dalam code behind).  &lt;li&gt;No-Code Authoring Mode (XAML, bisa di compile atau di upload ke dalam Host process.)&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;Ada Berapa Type Workflow ?&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Saat ini ada 2 type workflow yang biasa digunakan :&lt;/p&gt; &lt;p&gt;1. Sequential Workflow (terlebih dahulu membuat aktifitas yang sudah bisa diprediksi dalam proses sekuensial)&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;a href="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/WindowsWorkflowFoundationPartI_CB1/image_4.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="145" alt="image" src="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/WindowsWorkflowFoundationPartI_CB1/image_thumb_1.png" width="120" align="left" border="0" /&gt;&lt;/a&gt;  &lt;li&gt; &lt;li&gt; &lt;li&gt; &lt;li&gt; &lt;li&gt; &lt;li&gt; &lt;li&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;2. State Machine Workflow (perubahan status workflow berdasarkan respon dari event)&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/WindowsWorkflowFoundationPartI_CB1/image_6.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px 10px 0px 30px;border-right-width:0px;" height="148" alt="image" src="http://geeks.netindonesia.net/blogs/sonyse/WindowsLiveWriter/WindowsWorkflowFoundationPartI_CB1/image_thumb_2.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Sekian itu dulu bagian pertama dari tulisan tentang WWF, berikut-nya kita lanjutkan bagaimana membuat Sequential Workflow.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/sonyse/archive/2008/09/29/windows-workflow-foundation-part-i.aspx&amp;amp;subject=Windows Workflow Foundation Part I" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/09/29/windows-workflow-foundation-part-i.aspx&amp;amp;t=Windows+Workflow+Foundation+Part+I" target="_blank" title="Submit Windows Workflow Foundation Part I to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/09/29/windows-workflow-foundation-part-i.aspx&amp;amp;title=Windows+Workflow+Foundation+Part+I" target="_blank" title="Submit Windows Workflow Foundation Part I to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/09/29/windows-workflow-foundation-part-i.aspx&amp;amp;phase=2" target="_blank" title="Submit Windows Workflow Foundation Part I to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/09/29/windows-workflow-foundation-part-i.aspx&amp;amp;title=Windows+Workflow+Foundation+Part+I" target="_blank" title="Add Windows Workflow Foundation Part I to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=64604" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/sonyse/archive/tags/wwf/default.aspx">wwf</category></item><item><title>Membuat Audit Delete Record dengan trigger di SQL 2005</title><link>http://geeks.netindonesia.net/blogs/sonyse/archive/2008/02/16/membuat-audit-delete-record-dengan-trigger-di-sql-2005.aspx</link><pubDate>Sat, 16 Feb 2008 06:32:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:39489</guid><dc:creator>Sony Setiawan</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/sonyse/rsscomments.aspx?PostID=39489</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/sonyse/archive/2008/02/16/membuat-audit-delete-record-dengan-trigger-di-sql-2005.aspx#comments</comments><description>&lt;p&gt;Tulisan ini sebenarnya merupakan pemenuhan janji saya kepada salah satu 
peserta training yang ingin mengetahui tentang konsep Auditing Record Log di 
sebuah database MS SQL Server 2005 (any edition). Saya mohon maaf kepada Pak 
Indra yang sudah menanti cukup lama untuk tulisan ini &lt;img src="http://miimlc.metrodata.co.id/forum/emoticons/emotion-1.gif" alt="Smile" /&gt;.&lt;/p&gt;
&lt;p&gt;Kita mulai dari cara yang sederhana yaitu dengan membuat&amp;nbsp;sebuah database / 
menggunakan sebuah database yang sudah ada.&amp;nbsp;Beberapa prasyarat awal untuk 
mengetahui lebih detail konsep ini bisa dimulai pemahaman tentang 
&lt;b&gt;Trigger. &lt;/b&gt;Kenaapa menggunakan trigger ? Sebagai sebuah object 
database yang sebenarnya &amp;#39;berdiri sendiri&amp;#39;, trigger mempunyai kemampuan utk 
meng-antisipasi sebuah &lt;b&gt;aksi&lt;/b&gt; yang dilakukan ke database / table 
dengan merespon balik berupa &lt;b&gt;reaksi &lt;/b&gt;terhadap table itu sendiri 
(tempat trigger berada) / kepada object (table,view dll) yang juga terdapat di 
dalam database itu. Fungsi trigger sebenarnya mirip &lt;b&gt;Check constraint 
&lt;/b&gt;tetapi &amp;nbsp;trigger mempunya fungsionalitas yang lebih luas dibandingkan 
dengan &lt;b&gt;Check Constraint&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Mari kita mulai pembahasan topik ini dengan membuat sebuah skenario&amp;nbsp;berikut : 
Sebuah aplikasi berbasis windows based client dan database MS SQL 2005 sebagai 
backend-nya sering mendapatkan sebuah&amp;nbsp;kasus dimana&amp;nbsp;database-nya / tabel / 
record-nya tiba-tiba data-nya menghilang, sebagai seorang DBA tentunya kita 
harus mempunyai cara untuk mengetahui siapa, kapan, dan lewat mana data tersebut 
&amp;#39;terhapus&amp;#39; entah itu sengaja atau tidak sengaja. Beberapa prasyarat untuk 
membuatnya adalah sebagai berikut :&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Tentukan terlebih dahulu mana tabel yang akan di audit, karena semakin 
banyak trigger yang harus di aktifkan di sebuah database dapat menurunkan 
performance dari database tersebut.&lt;/li&gt;&lt;li&gt;Buat database dan table kosong yang baru di SQL&amp;nbsp;2005 dengan menggunakan SQL 
Management Studio nama-nya terserah anda : &lt;b&gt;&amp;quot;testingAudit&amp;quot; 
&lt;/b&gt;dengan menggunakan&amp;nbsp;konfigurasi standard : 
&lt;p&gt;&lt;b&gt;&lt;i&gt;create database testingAudit&lt;br /&gt;go&lt;br /&gt;create table 
testDelete&lt;br /&gt;(&lt;br /&gt;id_record varchar(5),&lt;br /&gt;Deskripsi 
varchar(20)&lt;br /&gt;)&lt;br /&gt;go&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&amp;#39;insert&amp;nbsp;data dummy ke table 
testDelete, jalankan script :&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;i&gt;insert into testDelete&amp;nbsp;values (&amp;#39;ABC&amp;#39;,&amp;#39;testing 123&amp;#39;)&lt;br /&gt;insert 
into testDelete&amp;nbsp;values (&amp;#39;BCD&amp;#39;,&amp;#39;testing 124&amp;#39;)&lt;br /&gt;insert into testDelete&amp;nbsp;values 
(&amp;#39;CDE&amp;#39;,&amp;#39;testing 125&amp;#39;)&lt;br /&gt;insert into testDelete&amp;nbsp;values (&amp;#39;EFG&amp;#39;,&amp;#39;testing 
126&amp;#39;)&lt;br /&gt;insert into testDelete&amp;nbsp;values (&amp;#39;FGH&amp;#39;,&amp;#39;testing 126&amp;#39;)&lt;br /&gt;insert into 
testDelete&amp;nbsp;values (&amp;#39;GHI&amp;#39;,&amp;#39;testing 127&amp;#39;)&lt;br /&gt;insert into testDelete&amp;nbsp;values 
(&amp;#39;HIJ&amp;#39;,&amp;#39;testing 128&amp;#39;)&lt;br /&gt;insert into testDelete&amp;nbsp;values (&amp;#39;IJK&amp;#39;,&amp;#39;testing 
129&amp;#39;)&lt;br /&gt;insert into testDelete&amp;nbsp;values (&amp;#39;JKL&amp;#39;,&amp;#39;testing 130&amp;#39;)&lt;br /&gt;insert into 
testDelete&amp;nbsp;values (&amp;#39;KLM&amp;#39;,&amp;#39;testing 131&amp;#39;)&lt;br /&gt;insert into testDelete&amp;nbsp;values 
(&amp;#39;LMN&amp;#39;,&amp;#39;testing 132&amp;#39;)&lt;br /&gt;insert into testDelete&amp;nbsp;values (&amp;#39;MNO&amp;#39;,&amp;#39;testing 
133&amp;#39;)&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Setelah kita tentukan tabel mana yang akan di audit yaitu &lt;b&gt;testdelete 
&lt;/b&gt;table, buatlah sebuah tabel yang dimanfaatkan sebagai &lt;b&gt;audit log 
table &lt;/b&gt;yang di dalamnya terdapat beberapa informasi seperti : 
deleted_date_hour_minute,who_deleted,id_record_deleted,application. Berikut 
contoh script untuk membuat tabel-nya :&lt;br /&gt;&lt;b&gt;&lt;i&gt;use 
testingAudit&lt;br /&gt;go&lt;br /&gt;create table log_record&lt;br /&gt;(&lt;br /&gt;dateDeleted 
datetime,&lt;br /&gt;personWho varchar(30),&lt;br /&gt;Id_record 
varchar(10)&lt;br /&gt;)&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Setelah table log dibuat, tahap berikut-nya adalah membuat trigger on delete 
di dalam table &lt;b&gt;testDelete&lt;br /&gt;&lt;/b&gt;Setiap perintah transaction 
(insert,update,delete) statement di table MS SQL Server pasti selalu muncul 
beberapa table sementara yang hanya muncul disaat eksekusi trigger. Table-table 
itu diantaranya adalah sebagai berikut :&lt;br /&gt;-&amp;nbsp;&amp;nbsp; &lt;b&gt;inserted 
&lt;/b&gt;(muncul pada saat terjadi proses transaksi perintah 
&lt;b&gt;insert&lt;/b&gt; terhadap sebuah tabel)&lt;br /&gt;-&amp;nbsp;&amp;nbsp; 
&lt;b&gt;deleted&lt;/b&gt;&amp;nbsp;(muncul pada saat terjadi proses transaksi perintah 
&lt;b&gt;delete &lt;/b&gt;terhadap sebuah tabel)&lt;br /&gt;-&amp;nbsp;&amp;nbsp; Sedangkan untuk transaksi 
&lt;b&gt;Update , &lt;/b&gt;proses yang terjadi adalah &lt;b&gt;deleted 
&lt;/b&gt;yang pertama kali di kerjakan baru setelah itu 
&lt;b&gt;Inserted.&lt;/b&gt; 
&lt;p&gt;Gambaran script untuk pembuatan trigger-nya adalah sebagai berikut 
:&lt;br /&gt;&lt;b&gt;&lt;i&gt;create trigger tr_test on testdelete&lt;br /&gt;for 
delete&lt;br /&gt;as&lt;br /&gt;declare @date1 datetime,@person varchar(30) , @id 
varchar(10)&lt;br /&gt;set @date1 = getdate()&lt;br /&gt;set @person = suser_sname()&lt;br /&gt;select 
@id = id_record from deleted&lt;br /&gt;insert into log_record values 
(@date1,@person,@id)&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Pastikan trigger tr_test sudah terdapat dalam tabel &lt;b&gt;testDelete, 
&lt;/b&gt;dengan menggunaan SSMS (SQL Server Management Studio).&lt;/li&gt;&lt;li&gt;Coba jalankan perintah delete terhadap 1 record&amp;nbsp;di tabel 
&lt;b&gt;testDelete&lt;/b&gt; kemudian cek apakah &lt;b&gt;log_record 
&lt;/b&gt;table telah terisi siapa, kapan dan record mana yang terhapus.&lt;/li&gt;&lt;li&gt;Tolong dipastikan juga bahwa user yang authorized delete record di 
&lt;b&gt;testDelete &lt;/b&gt;bisa melakukan perintah insert di table 
&lt;b&gt;log_record&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;Selamat mencoba.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Feel free your comment,&lt;/p&gt;
&lt;p&gt;Sony&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/sonyse/archive/2008/02/16/membuat-audit-delete-record-dengan-trigger-di-sql-2005.aspx&amp;amp;subject=Membuat Audit Delete Record dengan trigger di SQL 2005" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/02/16/membuat-audit-delete-record-dengan-trigger-di-sql-2005.aspx&amp;amp;t=Membuat+Audit+Delete+Record+dengan+trigger+di+SQL+2005" target="_blank" title="Submit Membuat Audit Delete Record dengan trigger di SQL 2005 to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/02/16/membuat-audit-delete-record-dengan-trigger-di-sql-2005.aspx&amp;amp;title=Membuat+Audit+Delete+Record+dengan+trigger+di+SQL+2005" target="_blank" title="Submit Membuat Audit Delete Record dengan trigger di SQL 2005 to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/02/16/membuat-audit-delete-record-dengan-trigger-di-sql-2005.aspx&amp;amp;phase=2" target="_blank" title="Submit Membuat Audit Delete Record dengan trigger di SQL 2005 to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/sonyse/archive/2008/02/16/membuat-audit-delete-record-dengan-trigger-di-sql-2005.aspx&amp;amp;title=Membuat+Audit+Delete+Record+dengan+trigger+di+SQL+2005" target="_blank" title="Add Membuat Audit Delete Record dengan trigger di SQL 2005 to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=39489" width="1" height="1"&gt;</description></item></channel></rss>