<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.netindonesia.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Rully Yulian MF</title><subtitle type="html">Independent IT Trainer and Software Developer</subtitle><id>http://geeks.netindonesia.net/blogs/yulian/atom.aspx</id><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/yulian/default.aspx" /><link rel="self" type="application/atom+xml" href="http://geeks.netindonesia.net/blogs/yulian/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2008-02-16T05:24:20Z</updated><entry><title>LINQ To XML With VB 9.0 (Select and Join Multiple XML File)</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/yulian/archive/2008/11/20/linq-to-xml-with-vb-9-0-select-and-join-multiple-xml-file.aspx" /><id>http://geeks.netindonesia.net/blogs/yulian/archive/2008/11/20/linq-to-xml-with-vb-9-0-select-and-join-multiple-xml-file.aspx</id><published>2008-11-20T07:47:00Z</published><updated>2008-11-20T07:47:00Z</updated><content type="html">&lt;p&gt;LINQ To XML merupakan fitur baru yang terdapat di VB 9.0. Fitur ini digunakan 
untuk memudahkan melakukan query data yang disimpan di file XML. Sebelumnya hal 
tersebut dilakukan dengan menggunakan XMLReader, XPathDocument dengan XPath 
Query sebagai sarana untuk filtering data xml nya. Penggunaan class-class 
tersebut saya rasakan begitu &amp;quot;merepotkan&amp;quot; :) ...Beruntung lah dengan adanya 
fitur LINQ To XML ini.&lt;/p&gt;
&lt;p&gt;Kali ini saya akan membahas bagaimana caranya melakukan query data xml dan 
Join data dari dua file xml. Query operator yang digunakan sama dengan hal nya 
query operator untuk LINQ terhadap object lain. Namun LINQ To XML ini ada 
sedikit perbedaan dalam hal pengaksesan elemen dan atributnya.&lt;/p&gt;
&lt;p&gt;Misalkan saya memiliki file xml seperti dibawah ini (Book.xml) :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span&gt;xml &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;&amp;quot; &lt;span style="color:blue;"&gt;?&amp;gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;Books&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span&gt;Book &lt;/span&gt;&lt;span style="color:red;"&gt;CatID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Programming Visual Basic 9.0&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Apress&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span&gt;Book&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span&gt;Book &lt;/span&gt;&lt;span style="color:red;"&gt;CatID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Programming C# 3.0&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Adison Wesley&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span&gt;Book&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span&gt;Book &lt;/span&gt;&lt;span style="color:red;"&gt;CatID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;2&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;SQL Server 2008 Administration&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;MS Press&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span&gt;Book&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span&gt;Book &lt;/span&gt;&lt;span style="color:red;"&gt;CatID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;2&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;MS Access 2007&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Que&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span&gt;Book&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span&gt;Book &lt;/span&gt;&lt;span style="color:red;"&gt;CatID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;3&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Windows Vista Administration&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Sams&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span&gt;Book&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span&gt;Book &lt;/span&gt;&lt;span style="color:red;"&gt;CatID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;3&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Windows Server 2008&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;MS Press&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Publisher&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span&gt;Book&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Books&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Dengan Linq To XML untuk melakukan query data di atas sangatlah mudah. 
Berikut kode untuk menampilkan data dari atribut CatID, elemen Title dan elemen 
Publisher :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Option Strict On&lt;br /&gt;&lt;br /&gt;Module &lt;/span&gt;LinqToXML&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Sub &lt;/span&gt;Main()&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;xmlBook = XDocument.Load(&lt;span&gt;&amp;quot;../../Book.xml&amp;quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;xmlData = &lt;span style="color:blue;"&gt;From &lt;/span&gt;elem &lt;span style="color:blue;"&gt;In &lt;/span&gt;xmlBook.Descendants(&lt;span&gt;&amp;quot;Book&amp;quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:blue;"&gt;For Each &lt;/span&gt;elem &lt;span style="color:blue;"&gt;In &lt;/span&gt;xmlData&lt;br /&gt;            &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strID = &lt;span style="color:blue;"&gt;CStr&lt;/span&gt;(elem.Attribute(&lt;span&gt;&amp;quot;CatID&amp;quot;&lt;/span&gt;).Value)&lt;br /&gt;            &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strTitle = &lt;span style="color:blue;"&gt;CStr&lt;/span&gt;(elem.Element(&lt;span&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;).Value)&lt;br /&gt;            &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strPub = &lt;span style="color:blue;"&gt;CStr&lt;/span&gt;(elem.Element(&lt;span&gt;&amp;quot;Publisher&amp;quot;&lt;/span&gt;).Value)&lt;br /&gt;&lt;br /&gt;            &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strBook = &lt;span style="color:blue;"&gt;String&lt;/span&gt;.Format( _&lt;br /&gt;            &lt;span&gt;&amp;quot;CatID:{0,-2} Title:{1,-30} Publisher:{2}&amp;quot;&lt;/span&gt;, _&lt;br /&gt;                                        strID, strTitle, strPub)&lt;br /&gt;            Console.WriteLine(strBook)&lt;br /&gt;        &lt;span style="color:blue;"&gt;Next&lt;br /&gt;        &lt;/span&gt;Console.ReadLine()&lt;br /&gt;    &lt;span style="color:blue;"&gt;End Sub&lt;br /&gt;&lt;br /&gt;End Module&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Untuk load file xml gunakan XDocument class. XDocument class tersebut 
memiliki Shared Function Load yang membutuhkan input parameter berupa lokasi 
dari file xml yang akan digunakan.&lt;/p&gt;
&lt;p&gt;Fungsi Descendants digunakan untuk mengakses semua elemen-elemen relatif 
terhadap root elemen. Pada contoh di atas saya ingin akses semua elemen Book. 
Untuk menampilkan detail data elemen dan atributnya kita lakukan looping 
terhadap semua koleksi XElement (xmlData). &lt;/p&gt;
&lt;p&gt;Fungsi Attribute akan mengembalikan XAttribute type dan digunakan untuk akses 
atribute pada elemen dimana attribute tersebut berada, sedangkan fungsi Element 
akan mengembalikan XElement type dan digunakan untuk akses elemen.&lt;/p&gt;
&lt;p&gt;Anda dapat melakukan konversi ke primitive data type terhadap value dari 
elemen dan atribut dengan fungsi yang telah disediakan di .net framework class 
library. Berikut screen shot hasil eksekusi kode diatas :&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Artikel/VB/linqxmlselect1.jpg" style="margin:0px 0px 0px 10px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;VB 9.0 memiliki fitur yang berbeda dengan C# 3.0 dalam hal akses elemen, 
atribut, dan descendant. Perbedaan tersebut terletak pada fitur axis property 
yang diberikan dengan simbol ...&amp;lt;&amp;gt; untuk akses Descendant, &amp;lt;&amp;gt; untuk 
akses element, dan @ untuk akses atribut. Berikut modifikasi kode diatas dengan 
menggunakan fitur axis properti :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Dim &lt;/span&gt;xmlData = &lt;span style="color:blue;"&gt;From &lt;/span&gt;elem &lt;span style="color:blue;"&gt;In &lt;/span&gt;xmlBook...&lt;span&gt;&amp;lt;&lt;/span&gt;Book&lt;span&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;For Each &lt;/span&gt;elem &lt;span style="color:blue;"&gt;In &lt;/span&gt;xmlData&lt;br /&gt;    &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strID = &lt;span style="color:blue;"&gt;CStr&lt;/span&gt;(elem.&lt;span&gt;@&lt;/span&gt;CatID)&lt;br /&gt;    &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strTitle = &lt;span style="color:blue;"&gt;CStr&lt;/span&gt;(elem...&lt;span&gt;&amp;lt;&lt;/span&gt;Title&lt;span&gt;&amp;gt;&lt;/span&gt;.Value)&lt;br /&gt;    &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strPub = &lt;span style="color:blue;"&gt;CStr&lt;/span&gt;(elem...&lt;span&gt;&amp;lt;&lt;/span&gt;Publisher&lt;span&gt;&amp;gt;&lt;/span&gt;.Value)&lt;/pre&gt;
&lt;p&gt;Dapat kita lihat dengan menggunakan axis properti maka penulisan descendant, 
elemen dan atribute lebih &amp;quot;Human Readable&amp;quot; :)&lt;/p&gt;
&lt;p&gt;Lalu bagaimana caranya kalau kita ingin menampilkan data distinct terhadap 
sebuah elemen atau atribut? Misalkan saya ingin menampilkan data distinct untuk 
atribut CatID :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Sub &lt;/span&gt;Main()&lt;br /&gt;    &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;xmlBook = XDocument.Load(&lt;span&gt;&amp;quot;../../Book.xml&amp;quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;xmlData = &lt;span style="color:blue;"&gt;From &lt;/span&gt;elem &lt;span style="color:blue;"&gt;In &lt;/span&gt;xmlBook...&lt;span&gt;&amp;lt;&lt;/span&gt;Book&lt;span&gt;&amp;gt; &lt;/span&gt;_&lt;br /&gt;                  &lt;span style="color:blue;"&gt;Select &lt;/span&gt;elem.&lt;span&gt;@&lt;/span&gt;CatID &lt;span style="color:blue;"&gt;Distinct&lt;br /&gt;&lt;br /&gt;    For Each &lt;/span&gt;elem &lt;span style="color:blue;"&gt;In &lt;/span&gt;xmlData&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strID = elem&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strCatID = &lt;span style="color:blue;"&gt;String&lt;/span&gt;.Format(&lt;span&gt;&amp;quot;CatID:{0,-2}&amp;quot;&lt;/span&gt;, strID)&lt;br /&gt;        Console.WriteLine(strID)&lt;br /&gt;    &lt;span style="color:blue;"&gt;Next&lt;br /&gt;    &lt;/span&gt;Console.ReadLine()&lt;br /&gt;&lt;span style="color:blue;"&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Filtering data berdasarkan nilai dari elemen atau atribut tertentu?&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Dim &lt;/span&gt;xmlData = &lt;span style="color:blue;"&gt;From &lt;/span&gt;elem &lt;span style="color:blue;"&gt;In &lt;/span&gt;xmlBook...&lt;span&gt;&amp;lt;&lt;/span&gt;Book&lt;span&gt;&amp;gt; &lt;/span&gt;_&lt;br /&gt;              &lt;span style="color:blue;"&gt;Where CStr&lt;/span&gt;(elem.&lt;span&gt;@&lt;/span&gt;CatID).&lt;span style="color:blue;"&gt;Equals&lt;/span&gt;(&lt;span&gt;&amp;quot;1&amp;quot;&lt;/span&gt;)&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Kode diatas digunakan untuk filtering data xml dimana CatID bernilai &amp;quot;1&amp;quot;. 
Cukup sederhana bukan bila kita bandingkan dengan cara XPath Query konvensional? 
:D&lt;/p&gt;
&lt;p&gt;Kemudian sekarang ada pertanyaan lain...Bagaimana caranya kalau saya ingin 
melakukan join dari dua buah file xml? Misalkan kita memiliki satu file xml 
dengan nama Category.xml yang isinya sebagai berikut :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span&gt;xml &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;&amp;quot; &lt;span style="color:blue;"&gt;?&amp;gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;Categories&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span&gt;Category &lt;/span&gt;&lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Programming&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span&gt;Category&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span&gt;Category &lt;/span&gt;&lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;2&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Database&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span&gt;Category&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;&lt;/span&gt;&lt;span&gt;Category &lt;/span&gt;&lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;3&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Operating System&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;  &amp;lt;/&lt;/span&gt;&lt;span&gt;Category&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Categories&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Saya ingin gabungkan file Book.xml dan file Category.xml yang akan 
menampilkan output berupa Nama Kategori dari Title buku yang ada beserta Title 
nya itu sendiri. Mari kita lihat kode dibawah ini :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Sub &lt;/span&gt;Main()&lt;br /&gt;    &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;xmlBook = XDocument.Load(&lt;span&gt;&amp;quot;../../Book.xml&amp;quot;&lt;/span&gt;)&lt;br /&gt;    &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;xmlCategory = XDocument.Load(&lt;span&gt;&amp;quot;../../Category.xml&amp;quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;xmlData = &lt;span style="color:blue;"&gt;From &lt;/span&gt;book &lt;span style="color:blue;"&gt;In &lt;/span&gt;xmlBook...&lt;span&gt;&amp;lt;&lt;/span&gt;Book&lt;span&gt;&amp;gt; &lt;/span&gt;_&lt;br /&gt;                  &lt;span style="color:blue;"&gt;Join &lt;/span&gt;cat &lt;span style="color:blue;"&gt;In &lt;/span&gt;xmlCategory...&lt;span&gt;&amp;lt;&lt;/span&gt;Category&lt;span&gt;&amp;gt; &lt;/span&gt;_&lt;br /&gt;                  &lt;span style="color:blue;"&gt;On &lt;/span&gt;book.&lt;span&gt;@&lt;/span&gt;CatID &lt;span style="color:blue;"&gt;Equals &lt;/span&gt;cat.&lt;span&gt;@&lt;/span&gt;ID _&lt;br /&gt;                  &lt;span style="color:blue;"&gt;Select &lt;/span&gt;cat.&lt;span&gt;&amp;lt;&lt;/span&gt;Name&lt;span&gt;&amp;gt;&lt;/span&gt;, book.&lt;span&gt;&amp;lt;&lt;/span&gt;Title&lt;span&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:blue;"&gt;For Each &lt;/span&gt;elem &lt;span style="color:blue;"&gt;In &lt;/span&gt;xmlData&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strCatName = &lt;span style="color:blue;"&gt;CStr&lt;/span&gt;(elem.Name.Value)&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strTitle = &lt;span style="color:blue;"&gt;CStr&lt;/span&gt;(elem.Title.Value)&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;strBook = &lt;span style="color:blue;"&gt;String&lt;/span&gt;.Format( _&lt;br /&gt;        &lt;span&gt;&amp;quot;Category:{0,-20} Title:{1,-30}&amp;quot;&lt;/span&gt;, _&lt;br /&gt;                                    strCatName, strTitle)&lt;br /&gt;        Console.WriteLine(strBook)&lt;br /&gt;    &lt;span style="color:blue;"&gt;Next&lt;br /&gt;    &lt;/span&gt;Console.ReadLine()&lt;br /&gt;&lt;span style="color:blue;"&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Untuk Join dua file xml pertama anda harus load terlebih dahulu kedua file 
xml yang akan digunakan. Setelah itu untuk menggabungkan dua file xml yang telah 
diload tersebut gunakan perintah Join terhadap descendant elemen yang akan 
diakses diikuti dengan perintah On terhadap elemen yang digunakan sebagai link 
diantara kedua file xml. Perintah Equals harus digunakan untuk membandingkan 
nilai-nilai dari elemen atau atribut. Ya...mungkin perintah tersebut sangat 
familiar bila kita sering menggunakan perintah SQL dalam melakukan join :) 
...Berikut screen shot hasil dari eksekusi kode diatas :&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Artikel/VB/linqxmlselect3.jpg" style="margin:0px 0px 0px 10px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Happy coding Vb-ers :) ...pada artikel selanjutnya saya akan membahas 
bagaimana caranya melakukan modifikasi data file xml untuk operasi penambahan, 
hapus, dan edit terhadap elemen atau atribut.&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/yulian/archive/2008/11/20/linq-to-xml-with-vb-9-0-select-and-join-multiple-xml-file.aspx&amp;amp;subject=LINQ To XML With VB 9.0 (Select and Join Multiple XML File)" 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/yulian/archive/2008/11/20/linq-to-xml-with-vb-9-0-select-and-join-multiple-xml-file.aspx&amp;amp;t=LINQ+To+XML+With+VB+9.0+(Select+and+Join+Multiple+XML+File)" target="_blank" title="Submit LINQ To XML With VB 9.0 (Select and Join Multiple XML File) 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/yulian/archive/2008/11/20/linq-to-xml-with-vb-9-0-select-and-join-multiple-xml-file.aspx&amp;amp;title=LINQ+To+XML+With+VB+9.0+(Select+and+Join+Multiple+XML+File)" target="_blank" title="Submit LINQ To XML With VB 9.0 (Select and Join Multiple XML File) 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/yulian/archive/2008/11/20/linq-to-xml-with-vb-9-0-select-and-join-multiple-xml-file.aspx&amp;amp;phase=2" target="_blank" title="Submit LINQ To XML With VB 9.0 (Select and Join Multiple XML File) 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/yulian/archive/2008/11/20/linq-to-xml-with-vb-9-0-select-and-join-multiple-xml-file.aspx&amp;amp;title=LINQ+To+XML+With+VB+9.0+(Select+and+Join+Multiple+XML+File)" target="_blank" title="Add LINQ To XML With VB 9.0 (Select and Join Multiple XML File) 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=80502" width="1" height="1"&gt;</content><author><name>yulian</name><uri>http://geeks.netindonesia.net/members/yulian.aspx</uri></author><category term="LINQ" scheme="http://geeks.netindonesia.net/blogs/yulian/archive/tags/LINQ/default.aspx" /></entry><entry><title>Lambda Expression In VB 9.0 (Func and Function)</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/yulian/archive/2008/11/19/lambda-expression-in-vb-9-0-func-and-function.aspx" /><id>http://geeks.netindonesia.net/blogs/yulian/archive/2008/11/19/lambda-expression-in-vb-9-0-func-and-function.aspx</id><published>2008-11-19T14:14:00Z</published><updated>2008-11-19T14:14:00Z</updated><content type="html">&lt;p&gt;VB 9.0 syarat dengan fitur-fitur baru yang dapat &amp;quot;memanjakan&amp;quot; para programmer 
dalam menyelesaikan suatu kasus ataupun mempermudah penulisan code menjadi lebih 
simple. Kali ini saya akan membahas fitur Lambda Expression di VB 9.0. Func dan 
Function (Inline function) merupakan implementasi dari Lambda Expression. &lt;/p&gt;
&lt;p&gt;Func merupakan sebuah delegate type. Jadi anda dapat membuat sebuah delegate 
tanpa harus mendeklarasikan terlebih dahulu delegate type nya. Func dibuat 
dengan menggunakan input parameter yang maksimum jumlahnya empat atau tanpa 
input parameter. Didalam Func ini didefinisikan juga tipe data return value nya. 
&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Artikel/VB/func1.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Saya buat contoh sederhana terlebih dahulu penggunaan &amp;quot;Classic Delegate&amp;quot; 
:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Public Class &lt;/span&gt;LambdaExpressionVB9&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Delegate Function &lt;/span&gt;MyDelegateFunction(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;Input &lt;span style="color:blue;"&gt;As Integer&lt;/span&gt;) &lt;span style="color:blue;"&gt;As Boolean&lt;br /&gt;&lt;br /&gt;    Private Function &lt;/span&gt;IsEvenFunction(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;Number &lt;span style="color:blue;"&gt;As Integer&lt;/span&gt;) &lt;span style="color:blue;"&gt;As Boolean&lt;br /&gt;        Return &lt;/span&gt;Number &lt;span style="color:blue;"&gt;Mod &lt;/span&gt;2 = 0&lt;br /&gt;    &lt;span style="color:blue;"&gt;End Function&lt;br /&gt;&lt;br /&gt;    Private Sub &lt;/span&gt;btnClassicDelegate_Click(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.Object, _&lt;br /&gt;                                         &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.EventArgs) _&lt;br /&gt;                                         &lt;span style="color:blue;"&gt;Handles &lt;/span&gt;btnClassicDelegate.Click&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;execNumber &lt;span style="color:blue;"&gt;As &lt;/span&gt;MyDelegateFunction = &lt;span style="color:blue;"&gt;AddressOf &lt;/span&gt;IsEvenFunction&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;IsEven = execNumber(2)&lt;br /&gt;        MsgBox(IsEven) &lt;span style="color:green;"&gt;&amp;#39;// hasilnya True&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:blue;"&gt;End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Sekarang bandingkan penggunaan delegate dengan Func :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Public Class &lt;/span&gt;LambdaExpressionVB9&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Function &lt;/span&gt;IsEvenFunction(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;Number &lt;span style="color:blue;"&gt;As Integer&lt;/span&gt;) &lt;span style="color:blue;"&gt;As Boolean&lt;br /&gt;        Return &lt;/span&gt;Number &lt;span style="color:blue;"&gt;Mod &lt;/span&gt;2 = 0&lt;br /&gt;    &lt;span style="color:blue;"&gt;End Function&lt;br /&gt;&lt;br /&gt;    Private Sub &lt;/span&gt;btnFunc_Click(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.Object, _&lt;br /&gt;                              &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.EventArgs) _&lt;br /&gt;                              &lt;span style="color:blue;"&gt;Handles &lt;/span&gt;btnFunc.Click&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;execNumber &lt;span style="color:blue;"&gt;As &lt;/span&gt;Func(&lt;span style="color:blue;"&gt;Of Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;Boolean&lt;/span&gt;) = _&lt;br /&gt;                &lt;span style="color:blue;"&gt;AddressOf &lt;/span&gt;IsEvenFunction&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;IsEven = execNumber(3)&lt;br /&gt;        MsgBox(IsEven) &lt;span style="color:green;"&gt;&amp;#39;// hasilnya False&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:blue;"&gt;End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Kode diatas dibuat untuk mengecek apakah sebuah bilangan itu bilang genap 
atau ganjil. Func yang saya create membutuhkan satu buah input parameter dengan 
tipe data Integer (Of Integer), sedangkan return valuenya berupa Boolean. Dapat 
anda lihat diatas, dengan Func maka kita bisa menghilangkan deklarasi signature 
delegate seperti yang biasa kita lakukan. &lt;/p&gt;
&lt;p&gt;Lalu apa itu Function (Inline Function) ?? &lt;/p&gt;
&lt;p&gt;Inline Function ialah sebuah fungsi tanpa nama. Tipe data return valuenya di 
infer dari block code yang ditulis. Dengan Inline function ini kita dapat 
deklarasikan sebuah fungsi seperti kita deklarasikan variabel biasa. Kode di 
atas akan saya rubah dengan menggunakan Inline Function untuk delegate nya :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Public Class &lt;/span&gt;LambdaExpressionVB9&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;btnInlineFunction_Click(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.Object, _&lt;br /&gt;                                        &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.EventArgs) _&lt;br /&gt;                                        &lt;span style="color:blue;"&gt;Handles &lt;/span&gt;btnInlineFunction.Click&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;execNumber &lt;span style="color:blue;"&gt;As &lt;/span&gt;Func(&lt;span style="color:blue;"&gt;Of Integer&lt;/span&gt;, &lt;span style="color:blue;"&gt;Boolean&lt;/span&gt;) = _&lt;br /&gt;                        &lt;span style="color:blue;"&gt;Function&lt;/span&gt;(Num &lt;span style="color:blue;"&gt;As Integer&lt;/span&gt;) Num &lt;span style="color:blue;"&gt;Mod &lt;/span&gt;2 = 0&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;IsEven = execNumber(2)&lt;br /&gt;        MsgBox(IsEven) &lt;span style="color:green;"&gt;&amp;#39;// hasilnya True&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:blue;"&gt;End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Signature Inline Function harus sesuai dengan signature delegate Func (Untuk 
kasus diatas harus ada satu buah input parameter integer). Sedangkan tipe data 
return valuenya di infer dari block code Inline Function itu sendiri (Dalam hal 
ini Num Mod 2 = 0)...So mana yang lebih efektif dari sisi teknik pengkodeannya? 
;)&lt;/p&gt;
&lt;p&gt;Happy Coding Vb-ers !! :)&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/yulian/archive/2008/11/19/lambda-expression-in-vb-9-0-func-and-function.aspx&amp;amp;subject=Lambda Expression In VB 9.0 (Func and Function)" 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/yulian/archive/2008/11/19/lambda-expression-in-vb-9-0-func-and-function.aspx&amp;amp;t=Lambda+Expression+In+VB+9.0+(Func+and+Function)" target="_blank" title="Submit Lambda Expression In VB 9.0 (Func and Function) 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/yulian/archive/2008/11/19/lambda-expression-in-vb-9-0-func-and-function.aspx&amp;amp;title=Lambda+Expression+In+VB+9.0+(Func+and+Function)" target="_blank" title="Submit Lambda Expression In VB 9.0 (Func and Function) 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/yulian/archive/2008/11/19/lambda-expression-in-vb-9-0-func-and-function.aspx&amp;amp;phase=2" target="_blank" title="Submit Lambda Expression In VB 9.0 (Func and Function) 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/yulian/archive/2008/11/19/lambda-expression-in-vb-9-0-func-and-function.aspx&amp;amp;title=Lambda+Expression+In+VB+9.0+(Func+and+Function)" target="_blank" title="Add Lambda Expression In VB 9.0 (Func and Function) 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=79967" width="1" height="1"&gt;</content><author><name>yulian</name><uri>http://geeks.netindonesia.net/members/yulian.aspx</uri></author><category term=".Net Framework" scheme="http://geeks.netindonesia.net/blogs/yulian/archive/tags/.Net+Framework/default.aspx" /></entry><entry><title>Create Your Own Event and Event Handler With Your Own Delegate In VB.NET</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/yulian/archive/2008/11/19/create-your-own-event-and-event-handler-with-your-own-delegate-in-vb-net.aspx" /><id>http://geeks.netindonesia.net/blogs/yulian/archive/2008/11/19/create-your-own-event-and-event-handler-with-your-own-delegate-in-vb-net.aspx</id><published>2008-11-19T13:14:00Z</published><updated>2008-11-19T13:14:00Z</updated><content type="html">&lt;p&gt;Salah satu implementasi dari delegate ialah membuat event handler yang 
menangani event dengan signature yang telah ditentukan. Delegate merupakan 
sebuah type. Implementasi lain dari delegate ialah Callback mechanism. Namun 
pada artikel kali ini saya akan membahas implementasi delegate untuk event dan 
event handler.&lt;/p&gt;
&lt;p&gt;Bayangkan anda mempunyai sebuah class. Di dalam class tersebut terdapat 
sebuah property dimana proses assignment valuenya harus divalidasi dengan sebuah 
rule tertentu, lalu anda ingin propagate notifikasi ke user jika validasinya 
tidak valid berupa message errornya. Ok...mari kita buat class yang sederhana 
:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Public Class &lt;/span&gt;Order&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private &lt;/span&gt;mQty &lt;span style="color:blue;"&gt;As Integer&lt;br /&gt;    Public Property &lt;/span&gt;Quantity() &lt;span style="color:blue;"&gt;As Integer&lt;br /&gt;        Get&lt;br /&gt;            Return &lt;/span&gt;mQty&lt;br /&gt;        &lt;span style="color:blue;"&gt;End Get&lt;br /&gt;        Set&lt;/span&gt;(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;value &lt;span style="color:blue;"&gt;As Integer&lt;/span&gt;)&lt;br /&gt;            mQty = value&lt;br /&gt;        &lt;span style="color:blue;"&gt;End Set&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Misalkan aplikasi punya rule bahwa untuk memberikan nilai pada properti 
Quantity valuenya harus lebih besar nol, lalu notifikasi error message nya kita 
deliver ke user bila rule tersebut tidak dipenuhi. Bagaimana langkah2nya? 
Pertama buat terlebih dahulu delegate object nya :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Public Class &lt;/span&gt;Order&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Delegate Sub &lt;/span&gt;MyDelegateSub(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;Message &lt;span style="color:blue;"&gt;As String&lt;/span&gt;)&lt;/pre&gt;
&lt;p&gt;Delegate yang saya buat signature nya berupa sebuah Sub yang memiliki satu 
buah input parameter dengan tipe data string. Langkah kedua buat event yang kita 
definisikan sendiri namanya dimana event handler yang akan dibuat nantinya harus 
sesuai dengan signature delegate diatas :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Public Class &lt;/span&gt;Order&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Delegate Sub &lt;/span&gt;MyDelegateSub(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;Message &lt;span style="color:blue;"&gt;As String&lt;/span&gt;)&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Event &lt;/span&gt;MustBeGTZero &lt;span style="color:blue;"&gt;As &lt;/span&gt;MyDelegateSub&lt;/pre&gt;
&lt;p&gt;Langkah berikutnya buat event handler nya. Ingat syarat diatas :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Public Class &lt;/span&gt;Order&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Delegate Sub &lt;/span&gt;MyDelegateSub(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;Message &lt;span style="color:blue;"&gt;As String&lt;/span&gt;)&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Event &lt;/span&gt;MustBeGTZero &lt;span style="color:blue;"&gt;As &lt;/span&gt;MyDelegateSub&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;MustBeGTZeroHandler(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;Notification &lt;span style="color:blue;"&gt;As String&lt;/span&gt;)&lt;br /&gt;        MsgBox(Notification)&lt;br /&gt;    &lt;span style="color:blue;"&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Signature event handler sama dengan delegate (berupa Sub dengan satu buah 
input parameter yang bertipe data string, untuk nama input parameternya ga harus 
sama). &lt;/p&gt;
&lt;p&gt;Next step is, lakukan proses validasi pada Setter property. Disini kita harus 
lakukan assignment event handler dengan event secara run time, raise event, 
setelah itu disassociate event handler dengan eventnya, berikut code lengkapnya 
:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Public Class &lt;/span&gt;Order&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Delegate Sub &lt;/span&gt;MyDelegateSub(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;Message &lt;span style="color:blue;"&gt;As String&lt;/span&gt;)&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Event &lt;/span&gt;MustBeGTZero &lt;span style="color:blue;"&gt;As &lt;/span&gt;MyDelegateSub&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;MustBeGTZeroHandler(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;Notification &lt;span style="color:blue;"&gt;As String&lt;/span&gt;)&lt;br /&gt;        MsgBox(Notification)&lt;br /&gt;    &lt;span style="color:blue;"&gt;End Sub&lt;br /&gt;&lt;br /&gt;    Private &lt;/span&gt;mQty &lt;span style="color:blue;"&gt;As Integer&lt;br /&gt;    Public Property &lt;/span&gt;Quantity() &lt;span style="color:blue;"&gt;As Integer&lt;br /&gt;        Get&lt;br /&gt;            Return &lt;/span&gt;mQty&lt;br /&gt;        &lt;span style="color:blue;"&gt;End Get&lt;br /&gt;        Set&lt;/span&gt;(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;value &lt;span style="color:blue;"&gt;As Integer&lt;/span&gt;)&lt;br /&gt;            &lt;span style="color:blue;"&gt;If &lt;/span&gt;value &amp;lt;= 0 &lt;span style="color:blue;"&gt;Then&lt;br /&gt;                AddHandler &lt;/span&gt;MustBeGTZero, &lt;span style="color:blue;"&gt;AddressOf &lt;/span&gt;MustBeGTZeroHandler&lt;br /&gt;                &lt;span style="color:blue;"&gt;RaiseEvent &lt;/span&gt;MustBeGTZero(&lt;span&gt;&amp;quot;Input harus lebih besar dari Nol&amp;quot;&lt;/span&gt;)&lt;br /&gt;                &lt;span style="color:blue;"&gt;RemoveHandler &lt;/span&gt;MustBeGTZero, &lt;span style="color:blue;"&gt;AddressOf &lt;/span&gt;MustBeGTZeroHandler&lt;br /&gt;            &lt;span style="color:blue;"&gt;Else&lt;br /&gt;                &lt;/span&gt;mQty = value&lt;br /&gt;            &lt;span style="color:blue;"&gt;End If&lt;br /&gt;        End Set&lt;br /&gt;    End Property&lt;br /&gt;&lt;br /&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Untuk trigger event yang telah kita buat gunakan perintah RaiseEvent. Berikut 
contoh penggunaannya di aplikasi client :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;btnGetOrder_Click(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.Object, _&lt;br /&gt;                              &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.EventArgs) _&lt;br /&gt;                              &lt;span style="color:blue;"&gt;Handles &lt;/span&gt;btnGetOrder.Click&lt;br /&gt;    &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;myOrder = &lt;span style="color:blue;"&gt;New &lt;/span&gt;Order &lt;span style="color:blue;"&gt;With &lt;/span&gt;{.Quantity = -1}&lt;br /&gt;&lt;span style="color:blue;"&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Kembali saya menggunakan VB 9.0. Kode diatas menggabungkan fitur Local Type 
Inference dengan Object Initialization Expression. Screen shot nya seperti 
dibawah ini :&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Artikel/VB/customevent.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Happy Coding VB-ers !! ;)&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/yulian/archive/2008/11/19/create-your-own-event-and-event-handler-with-your-own-delegate-in-vb-net.aspx&amp;amp;subject=Create Your Own Event and Event Handler With Your Own Delegate In VB.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/yulian/archive/2008/11/19/create-your-own-event-and-event-handler-with-your-own-delegate-in-vb-net.aspx&amp;amp;t=Create+Your+Own+Event+and+Event+Handler+With+Your+Own+Delegate+In+VB.NET" target="_blank" title="Submit Create Your Own Event and Event Handler With Your Own Delegate In VB.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/yulian/archive/2008/11/19/create-your-own-event-and-event-handler-with-your-own-delegate-in-vb-net.aspx&amp;amp;title=Create+Your+Own+Event+and+Event+Handler+With+Your+Own+Delegate+In+VB.NET" target="_blank" title="Submit Create Your Own Event and Event Handler With Your Own Delegate In VB.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/yulian/archive/2008/11/19/create-your-own-event-and-event-handler-with-your-own-delegate-in-vb-net.aspx&amp;amp;phase=2" target="_blank" title="Submit Create Your Own Event and Event Handler With Your Own Delegate In VB.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/yulian/archive/2008/11/19/create-your-own-event-and-event-handler-with-your-own-delegate-in-vb-net.aspx&amp;amp;title=Create+Your+Own+Event+and+Event+Handler+With+Your+Own+Delegate+In+VB.NET" target="_blank" title="Add Create Your Own Event and Event Handler With Your Own Delegate In VB.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=79917" width="1" height="1"&gt;</content><author><name>yulian</name><uri>http://geeks.netindonesia.net/members/yulian.aspx</uri></author><category term=".Net Framework" scheme="http://geeks.netindonesia.net/blogs/yulian/archive/tags/.Net+Framework/default.aspx" /></entry><entry><title>Create VB.NET Event Handler In Various Way</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/yulian/archive/2008/11/19/create-vb-net-event-handler-in-various-way.aspx" /><id>http://geeks.netindonesia.net/blogs/yulian/archive/2008/11/19/create-vb-net-event-handler-in-various-way.aspx</id><published>2008-11-19T13:09:00Z</published><updated>2008-11-19T13:09:00Z</updated><content type="html">&lt;p&gt;Untuk para programmer yang sebelumnya berkecimpung di dunia VB 6.0 mungkin 
salah satu hal yang wajib dipelajari yaitu mengenai Event dan Event Handler. 
Mungkin selama ini kita buat event handler dengan cara yang standard. Artinya 
kita cukup cari nama event yang akan digunakan untuk object yang bersangkutan 
lewat properties window atau Code Viewer di Visual Studio.&lt;/p&gt;
&lt;p&gt;Berikut adalah event handler untuk event click kontrol Button :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;btnSave_Click(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.Object, _&lt;br /&gt;                              &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.EventArgs) _&lt;br /&gt;                              &lt;span style="color:blue;"&gt;Handles &lt;/span&gt;btnSave.Click&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;yang harus diperhatikan oleh VB 6 programmer yaitu keyword Handles. Keyword 
tersebut merupakan kunci assignment sebuah event handler dengan event nya. Anda 
bebas untuk mengubah nama event handler nya selama keyword Handles nya merujuk 
ke event dari object yang anda inginkan. Hal ini berbeda sekali dengan VB 6, 
bila anda ganti nama event handler nya maka prosedur tersebut tidak akan pernah 
di ekseskusi.&lt;/p&gt;
&lt;p&gt;Misalkan saya memiliki tiga buah control Button dengan masing-masing event 
handler nya untuk event Click seperti dibawah ini :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;btnSave_Click(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.Object, _&lt;br /&gt;                          &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.EventArgs) _&lt;br /&gt;                          &lt;span style="color:blue;"&gt;Handles &lt;/span&gt;btnSave.Click&lt;br /&gt;    MsgBox(&lt;span&gt;&amp;quot;Save&amp;quot;&lt;/span&gt;)&lt;br /&gt;&lt;span style="color:blue;"&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub &lt;/span&gt;btnDelete_Click(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.Object, _&lt;br /&gt;                            &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.EventArgs) _&lt;br /&gt;                            &lt;span style="color:blue;"&gt;Handles &lt;/span&gt;btnDelete.Click&lt;br /&gt;    MsgBox(&lt;span&gt;&amp;quot;Delete&amp;quot;&lt;/span&gt;)&lt;br /&gt;&lt;span style="color:blue;"&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub &lt;/span&gt;btnCancel_Click(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.Object, _&lt;br /&gt;                            &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.EventArgs) _&lt;br /&gt;                            &lt;span style="color:blue;"&gt;Handles &lt;/span&gt;btnCancel.Click&lt;br /&gt;    MsgBox(&lt;span&gt;&amp;quot;Cancel&amp;quot;&lt;/span&gt;)&lt;br /&gt;&lt;span style="color:blue;"&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Bila business rule dari ketiga event handler tersebut mirip dan kontrol nya 
juga sama, apakah kode diatas cukup efektif? Mungkin kita bisa buat cara lain 
untuk menghemat space code designer :)) bagaimana caranya? Kita bisa buat satu 
buah event handler yang menangani lebih dari satu event untuk masing-masing 
kontrol. Intinya terdapat pada Handles keyword :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;ClickEventHandler(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As Object&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;EventArgs) _&lt;br /&gt;    &lt;span style="color:blue;"&gt;Handles &lt;/span&gt;btnSave.Click, btnCancel.Click, btnDelete.Click&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Setelah Handles keyword anda tinggal definisikan event-event yang akan 
dibuatkan handler nya dari masing-masing kontrol dengan dipisahkan dengan tanda 
koma. Lalu sekarang bagaimana caranya kita mengetahui control mana yang 
mentrigger event tsb? Dengan variabel sender yang terdapat pada parameter 
pertama di prosedur tsb. Yang harus dilakukan adalah melakukan casting explicit 
ke kontrol yang mentrigger event tsb. Setelah didapatkan object nya maka kita 
dapat memanfaatkan properti yang dimiliki oleh kontrol tsb untuk identifikasi. 
Properti yang mudah dan umum digunakan yaitu properti Name. Berikut code nya 
:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;ClickEventHandler(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As Object&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;EventArgs) _&lt;br /&gt;    &lt;span style="color:blue;"&gt;Handles &lt;/span&gt;btnSave.Click, btnCancel.Click, btnDelete.Click&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;aButton = &lt;span style="color:blue;"&gt;DirectCast&lt;/span&gt;(sender, Button)&lt;br /&gt;    &lt;span style="color:blue;"&gt;Select Case &lt;/span&gt;aButton.Name.ToLower&lt;br /&gt;        &lt;span style="color:blue;"&gt;Case &lt;/span&gt;&lt;span&gt;&amp;quot;btnsave&amp;quot;&lt;br /&gt;            &lt;/span&gt;MsgBox(&lt;span&gt;&amp;quot;Save&amp;quot;&lt;/span&gt;)&lt;br /&gt;        &lt;span style="color:blue;"&gt;Case &lt;/span&gt;&lt;span&gt;&amp;quot;btncancel&amp;quot;&lt;br /&gt;            &lt;/span&gt;MsgBox(&lt;span&gt;&amp;quot;Cancel&amp;quot;&lt;/span&gt;)&lt;br /&gt;        &lt;span style="color:blue;"&gt;Case &lt;/span&gt;&lt;span&gt;&amp;quot;btndelete&amp;quot;&lt;br /&gt;            &lt;/span&gt;MsgBox(&lt;span&gt;&amp;quot;Delete&amp;quot;&lt;/span&gt;)&lt;br /&gt;    &lt;span style="color:blue;"&gt;End Select&lt;br /&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Lebih menghemat space kan :D ? Kode ini saya buat dengan VB 9.0, jadi 
variabel aButton tersebut tipe datanya langsung di Infer oleh si CLR. Cara 
lainnya gimana nih? Apakah ada cara lain untuk assignment event handler terhadap 
sebuah event? Ada...cara ini berguna kalau anda ingin membuat event handler 
secara dinamis. Pertama anda buat terlebih dahulu event handler nya dengan 
signature yang sama tanpa keyword Handles :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;ClickEventHandler(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As Object&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;EventArgs)&lt;br /&gt;    &lt;span style="color:blue;"&gt;Dim &lt;/span&gt;aButton = &lt;span style="color:blue;"&gt;DirectCast&lt;/span&gt;(sender, Button)&lt;br /&gt;    &lt;span style="color:blue;"&gt;Select Case &lt;/span&gt;aButton.Name.ToLower&lt;br /&gt;        &lt;span style="color:blue;"&gt;Case &lt;/span&gt;&lt;span&gt;&amp;quot;btnsave&amp;quot;&lt;br /&gt;            &lt;/span&gt;MsgBox(&lt;span&gt;&amp;quot;Save&amp;quot;&lt;/span&gt;)&lt;br /&gt;        &lt;span style="color:blue;"&gt;Case &lt;/span&gt;&lt;span&gt;&amp;quot;btncancel&amp;quot;&lt;br /&gt;            &lt;/span&gt;MsgBox(&lt;span&gt;&amp;quot;Cancel&amp;quot;&lt;/span&gt;)&lt;br /&gt;        &lt;span style="color:blue;"&gt;Case &lt;/span&gt;&lt;span&gt;&amp;quot;btndelete&amp;quot;&lt;br /&gt;            &lt;/span&gt;MsgBox(&lt;span&gt;&amp;quot;Delete&amp;quot;&lt;/span&gt;)&lt;br /&gt;    &lt;span style="color:blue;"&gt;End Select&lt;br /&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Setelah itu langkah yang harus dilakukan yaitu proses assignmentnya. Gunakan 
AddHandler keyword. Anda bisa tempatkan perintah tersebut dimana saja. Contoh 
berikut saya tempatkan di event Load dari form yang digunakan :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;EventAndEventHandler_Load(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.Object, _&lt;br /&gt;                                      &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.EventArgs) _&lt;br /&gt;                                      &lt;span style="color:blue;"&gt;Handles MyBase&lt;/span&gt;.Load&lt;br /&gt;    &lt;span style="color:blue;"&gt;AddHandler &lt;/span&gt;btnSave.Click, &lt;span style="color:blue;"&gt;AddressOf &lt;/span&gt;ClickEventHandler&lt;br /&gt;    &lt;span style="color:blue;"&gt;AddHandler &lt;/span&gt;btnCancel.Click, &lt;span style="color:blue;"&gt;AddressOf &lt;/span&gt;ClickEventHandler&lt;br /&gt;    &lt;span style="color:blue;"&gt;AddHandler &lt;/span&gt;btnDelete.Click, &lt;span style="color:blue;"&gt;AddressOf &lt;/span&gt;ClickEventHandler&lt;br /&gt;&lt;span style="color:blue;"&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Perintah AddressOf merupakan sebuah object Delegate. Lalu ada seseorang 
bertanya pada saya...Pak disitu pake perintah AddHandler, berarti ada dong 
perintah lainnya yang berseberangan dengan perintah tsb?? Ada...RemoveHandler 
jawabannya :) &lt;/p&gt;
&lt;p&gt;Perintah Remove Handler digunakan untuk &amp;quot;memutuskan&amp;quot; asosiasi antara event 
dengan event handler nya. Hal tersebut berguna agar tidak terjadi proses 
assignment event handler lebih dari satu kali. Penulisan kode nya sama, seperti 
berikut :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;btnRemoveHandler_Click(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.Object, _&lt;br /&gt;                                   &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.EventArgs) _&lt;br /&gt;                                   &lt;span style="color:blue;"&gt;Handles &lt;/span&gt;btnRemoveHandler.Click&lt;br /&gt;    &lt;span style="color:blue;"&gt;RemoveHandler &lt;/span&gt;btnSave.Click, &lt;span style="color:blue;"&gt;AddressOf &lt;/span&gt;ClickEventHandler&lt;br /&gt;    &lt;span style="color:blue;"&gt;RemoveHandler &lt;/span&gt;btnCancel.Click, &lt;span style="color:blue;"&gt;AddressOf &lt;/span&gt;ClickEventHandler&lt;br /&gt;    &lt;span style="color:blue;"&gt;RemoveHandler &lt;/span&gt;btnDelete.Click, &lt;span style="color:blue;"&gt;AddressOf &lt;/span&gt;ClickEventHandler&lt;br /&gt;&lt;span style="color:blue;"&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Begitulah ceritanya ;) ... anda tinggal memlilih cara mana yang sesuai dengan 
kebutuhan aplikasi tersebut. C U on the next articles ;)&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/yulian/archive/2008/11/19/create-vb-net-event-handler-in-various-way.aspx&amp;amp;subject=Create VB.NET Event Handler In Various Way" 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/yulian/archive/2008/11/19/create-vb-net-event-handler-in-various-way.aspx&amp;amp;t=Create+VB.NET+Event+Handler+In+Various+Way" target="_blank" title="Submit Create VB.NET Event Handler In Various Way 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/yulian/archive/2008/11/19/create-vb-net-event-handler-in-various-way.aspx&amp;amp;title=Create+VB.NET+Event+Handler+In+Various+Way" target="_blank" title="Submit Create VB.NET Event Handler In Various Way 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/yulian/archive/2008/11/19/create-vb-net-event-handler-in-various-way.aspx&amp;amp;phase=2" target="_blank" title="Submit Create VB.NET Event Handler In Various Way 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/yulian/archive/2008/11/19/create-vb-net-event-handler-in-various-way.aspx&amp;amp;title=Create+VB.NET+Event+Handler+In+Various+Way" target="_blank" title="Add Create VB.NET Event Handler In Various Way 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=79914" width="1" height="1"&gt;</content><author><name>yulian</name><uri>http://geeks.netindonesia.net/members/yulian.aspx</uri></author><category term=".Net Framework" scheme="http://geeks.netindonesia.net/blogs/yulian/archive/tags/.Net+Framework/default.aspx" /></entry><entry><title>Weekend Day with MUGI Bandung + MS Indo Event Reporting</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/yulian/archive/2008/11/10/weekend-day-with-mugi-bandung-ms-indo-event-reporting.aspx" /><id>http://geeks.netindonesia.net/blogs/yulian/archive/2008/11/10/weekend-day-with-mugi-bandung-ms-indo-event-reporting.aspx</id><published>2008-11-10T01:58:00Z</published><updated>2008-11-10T01:58:00Z</updated><content type="html">&lt;p&gt;Hari sabtu minggu kemarin tepatnya pada tanggal 8 Nov 2008 di Unpas Setiabudi 
Bandung telah diadakan Kuliah umum dengan tema Weekend Day With MUGI Bandung dan 
MS Indo. Acara ini merupakan hasil kerja sama antara pihak MUGI + MUGI Bandung + 
MS Indo + Jurusan Informatika Unpas. Acara dimulai sekitar pukul 9.00 pagi WIB 
yang dibuka oleh ketua Dekan Unpas, ketua jurusan IF Unpas, ketua Himpunan IF 
Unpas. Rencana semula sebenarnya akan dibuka oleh Rektor Unpas, namun beliau 
tidak dapat hadir karena ada halangan.&lt;/p&gt;
&lt;p&gt;Para peserta yang hadir tampak antusias sekali menyaksikan acara ini, dapat 
dilihat dari kehadiran mereka dari pagi sampai acara berakhir pada pukul 
setengah 5. Kami sangat berterima kasih sekali pada panitia yang telah membuat 
acara ini lebih dari yang kita bayangkan sebelumnya. Mereka telah membuat baligo 
ukuran besar, spanduk, flyer, stiker, menyediakan konsumsi makanan ringan plus 
teh botol dan aqua, sampai menyediakan makan siang prasmanan yang telah mereka 
sediakan...thanks!!! Mereka dengan sukarela mempersiapkan itu semua tanpa adanya 
&amp;quot;sumbangan&amp;quot; berupa dana dalam bentuk uang dari kita. Bahkan mereka memiliki 
budget sendiri untuk mempersiapkan itu semua dan para peserta ditarik uang tiket 
masuk sebesar Rp.15.000 atas inisiatif panitia itu sendiri. Jumlah peserta yang 
hadir mencapai 200 orang lebih. Itu pun mereka batasi dengan alasan kapasitas 
aula yang tidak cukup untuk menampung lebih dari 200 orang, dan sebenarnya 
banyak sekali para mahasiswa lainnya yang mereka tolak karena 
kapasitas...Wow...great job!! Thanks again to IF Unpas :)&lt;/p&gt;
&lt;p&gt;Ketika Mugiers datang ke kampus Unpas sekitar pukul 8.00, kita telah disambut 
oleh ketua Dekan, ketua jurusan IF, dosen IF. Disana kita berbincang-bincang 
mengenai acara ini. Dan ketua dekan tersebut sangat mendukung sekali acara-acara 
seperti ini, dan beliau berharap acara ini dapat berlangsung kontinu dan 
mengharapkan kegiatan yang lebih dari sekedar kuliah umum, mungkin seperti 
workhsop...We will do!!&lt;/p&gt;
&lt;p&gt;Pihak unpas sangat tertarik untuk bekerjasama dengan Mugi dan MS Indo, 
terutama dalam hal MSDNAA (Ini bagiannya mas Julius Fenata).&amp;nbsp; Mas Julius dan mas 
Irsan sempat membicarakan hal tsb dengan ketua jurusan IF ketika istirahat makan 
siang di ruang Dekan (gimana mas hasilnya? :D ). Mugi Bandung akan berencana 
untuk membentuk Mugi Kampus. Unpas akan kita jadikan pilot project pertama dalam 
pembentukan Mugi kampus.&lt;/p&gt;
&lt;p&gt;Tampak sekali para mahasiswa IF Unpas sangat jauh sekali dari &amp;quot;sentuhan&amp;quot; 
Microsoft technology. Mereka terbiasa dengan produk-produk open source dan 
produk non MS. Hal tersebut tidak ada salahnya. Namun kita memberikan perspektif 
dalam dunia nyata apabila mereka terjun nantinya ke dunia lapangan pekerjaan. Ya 
inilah target Mugi Bandung untuk &amp;quot;menjamah&amp;quot; kampus-kampus lainnya seperti Unpas 
ini...We will do again!!&lt;/p&gt;
&lt;p&gt;Banyak sekali goodies yang kita sediakan pada mereka :)...ada buku, dvd 
developer kit, sql server 2008, visual studio 2008, windows vista ultimate, 
windows server 2008, kaos-kaos, video-video training...sampai-sampai bersisa dan 
kita bagikan dengan cara dilempar ke para peserta :)) sebagai ice breaker juga, 
hoalah...seru-seru! (ini idenya mas Irsan nih :D ). Mereka juga mendapatkan 
sertifikat yang dibagikan setelah acara selesai. Selain itu disana juga terdapat 
stand lowongan kerja dari Jatis.&lt;/p&gt;
&lt;p&gt;Kami mengucapkan terima kasih pada pak Sony (Mugi Pusat) dan mugi jadetabek 
yang hadir, MS Indo yang telah mensupport kita. Dan satu lagi yaitu Bobby N.H 
yang telah menjadi fasilitator yang sukses :) antara pihak Unpas dengan Mugi 
Bandung...Memang cocok kamu jadi &amp;quot;Humas&amp;quot; Mugi Bandung bro! :)&lt;/p&gt;
&lt;p&gt;What&amp;#39;s next event? Kita berencana akan mengadakan acara serupa di STT Telkom 
pada bulan desember, semoga terlaksana :)&lt;/p&gt;
&lt;p&gt;Berikut foto-foto kegiatannya. Anda juga dapat melihat foto-fotonya di &lt;a href="http://www.facebook.com/photo_search.php?oid=25777201380&amp;amp;view=all" target="_blank"&gt;Facebook Mugi Bandung Group&lt;/a&gt; :D...O ya saat itu juga ada 
kamerawan dari TVRI (pihak Unpas yang mengundangnya), dan pak Firstman (ketua 
Mugi Bandung) sempat diwawancara oleh mereka (wah masuk TV nih pak firstman :D 
)...&lt;/p&gt;
&lt;p&gt;Pembacaan doa :&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/bacadoa.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Audience :&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/mugiscreen.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/audience1.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/audience2.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Sambutan dari Ketua Dekan :&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/ketuadekan.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Sambutan dari Ketua Jurusan IF:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/ketuajurusan.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Sambutan dari Ketua Jurusan Himpunan IF:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/ketuahim.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Sambutan dari Ketua Panitia:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/ketuapanitia.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Firstman On &amp;quot;Introducing MUGI Bandung&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/firstman1.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Irsan On &amp;quot;Microsoft Product Lincense&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/irsan.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Me On &amp;quot;Microsoft Certification&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/rully.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Aris On &amp;quot;Microsoft Certification&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/aris.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Fu On &amp;quot;Silverlight&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/fu.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Narenda On &amp;quot;Virtualization&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/naren.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Andri Yadi On &amp;quot;VSTO&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/andri.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Ronald On &amp;quot;WPF&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/ronald.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Julius Fenata On &amp;quot;Microsoft Imagine Cup 2009&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/julius.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Pertukaran Cindera mata antara MUGI Bandung dan Himpunan IF Unpas:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/mugihimpunan.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Setelah acara selesai, sekitar pukul 5 lebih kita masih diundang makan-makan 
oleh ketua jurusan IF dan dosen IF (Surabi nya enak + Singkong + Bajigur :D 
)...sayang mugiers yang lain sudah keburu pulang :D :&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/mugijurusan.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Bagi yang ingin melihat slide presentasi saya tentang sertifikasi Microsoft 
silahkan &lt;a href="http://www.yulianmf.com/Download/MS%20Certification2.rar" target="_blank"&gt;di download disini&lt;/a&gt;. Thx to All !!!&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/yulian/archive/2008/11/10/weekend-day-with-mugi-bandung-ms-indo-event-reporting.aspx&amp;amp;subject=Weekend Day with MUGI Bandung + MS Indo Event Reporting" 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/yulian/archive/2008/11/10/weekend-day-with-mugi-bandung-ms-indo-event-reporting.aspx&amp;amp;t=Weekend+Day+with+MUGI+Bandung+%2b+MS+Indo+Event+Reporting" target="_blank" title="Submit Weekend Day with MUGI Bandung + MS Indo Event Reporting 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/yulian/archive/2008/11/10/weekend-day-with-mugi-bandung-ms-indo-event-reporting.aspx&amp;amp;title=Weekend+Day+with+MUGI+Bandung+%2b+MS+Indo+Event+Reporting" target="_blank" title="Submit Weekend Day with MUGI Bandung + MS Indo Event Reporting 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/yulian/archive/2008/11/10/weekend-day-with-mugi-bandung-ms-indo-event-reporting.aspx&amp;amp;phase=2" target="_blank" title="Submit Weekend Day with MUGI Bandung + MS Indo Event Reporting 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/yulian/archive/2008/11/10/weekend-day-with-mugi-bandung-ms-indo-event-reporting.aspx&amp;amp;title=Weekend+Day+with+MUGI+Bandung+%2b+MS+Indo+Event+Reporting" target="_blank" title="Add Weekend Day with MUGI Bandung + MS Indo Event Reporting 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=74430" width="1" height="1"&gt;</content><author><name>yulian</name><uri>http://geeks.netindonesia.net/members/yulian.aspx</uri></author><category term="MUGI Bandung" scheme="http://geeks.netindonesia.net/blogs/yulian/archive/tags/MUGI+Bandung/default.aspx" /></entry><entry><title>Weekend Day With MUGI - Knowledge Sharing About Microsoft Technology</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/yulian/archive/2008/10/28/weekend-day-with-mugi-knowledge-sharing-about-microsoft-technology.aspx" /><id>http://geeks.netindonesia.net/blogs/yulian/archive/2008/10/28/weekend-day-with-mugi-knowledge-sharing-about-microsoft-technology.aspx</id><published>2008-10-28T10:31:00Z</published><updated>2008-10-28T10:31:00Z</updated><content type="html">&lt;p&gt;Beberapa bulan terakhir ini MUGI Bandung disibukkan untuk mengaktifkan 
kembali kegiatan-kegiatan yang sifatnya Sharing Knowledge baik itu berupa 
Seminar, Kuliah Umum, maupun Workshop. Setelah melakukan briefing beberapa kali 
maka diputuskan event yang pertama kali akan kita buat yaitu Kuliah Umum di 
Unpas Bandung. Event ini akan dijadikan sebagai langkah awal untuk melanjutkan 
kegiatan-kegiatan selanjutnya. &lt;/p&gt;
&lt;p&gt;MUGI Bandung berencana nantinya akan membuat agenda tahunan yang akan 
diadakan di kampus-kampus. Ibaratnya Road Show Campus To Campus :) Mungkin 
setelah event ini dalam waktu dekat ada beberapa kampus yang sudah masuk list 
MUGI Bandung untuk mengadakan kegiatan berikutnya. Jadi mari kita sukseskan 
event MUGI Bandung pertama ini sebagai langkah awal untuk dijadikan sebagai 
percontohan bagi kampus lainnya. Salut untuk mahasiswa Unpas yang begitu 
antusias dan bersemangat dalam mempersiapkan event ini !!!...So tunggu kita di 
hari H nya :D ...Terima kasih juga untuk semua&amp;nbsp;anggota MUGI Bandung yang telah 
membantu dalam mempersiapkan event ini, terutama Bobby N.H &amp;quot;Humas&amp;quot; MUGI Bandung 
:) yang menjadi fasilitator dengan pihak Unpas, Pak Sony MUGI Pusat, begitu juga dukungan dari 
Microsoft Indonesia. &lt;/p&gt;
&lt;p&gt;Berikut daftar acara yang akan dibawakan nanti :&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/eventUnpas1.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Bagi mahasiswa Unpas (Universitas Pasundan) Bandung, please be there...O ya bagi peserta yang mendaftarkan diri nanti kita bakal bagi-bagi goodies yaitu DVD Developer Kit, Buku (beberapa), Kaos (beberapa), CD Office (beberapa) dan Sertifikat :)&lt;br /&gt;&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/yulian/archive/2008/10/28/weekend-day-with-mugi-knowledge-sharing-about-microsoft-technology.aspx&amp;amp;subject=Weekend Day With MUGI - Knowledge Sharing About Microsoft Technology" 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/yulian/archive/2008/10/28/weekend-day-with-mugi-knowledge-sharing-about-microsoft-technology.aspx&amp;amp;t=Weekend+Day+With+MUGI+-+Knowledge+Sharing+About+Microsoft+Technology" target="_blank" title="Submit Weekend Day With MUGI - Knowledge Sharing About Microsoft Technology 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/yulian/archive/2008/10/28/weekend-day-with-mugi-knowledge-sharing-about-microsoft-technology.aspx&amp;amp;title=Weekend+Day+With+MUGI+-+Knowledge+Sharing+About+Microsoft+Technology" target="_blank" title="Submit Weekend Day With MUGI - Knowledge Sharing About Microsoft Technology 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/yulian/archive/2008/10/28/weekend-day-with-mugi-knowledge-sharing-about-microsoft-technology.aspx&amp;amp;phase=2" target="_blank" title="Submit Weekend Day With MUGI - Knowledge Sharing About Microsoft Technology 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/yulian/archive/2008/10/28/weekend-day-with-mugi-knowledge-sharing-about-microsoft-technology.aspx&amp;amp;title=Weekend+Day+With+MUGI+-+Knowledge+Sharing+About+Microsoft+Technology" target="_blank" title="Add Weekend Day With MUGI - Knowledge Sharing About Microsoft Technology 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=70774" width="1" height="1"&gt;</content><author><name>yulian</name><uri>http://geeks.netindonesia.net/members/yulian.aspx</uri></author><category term="MUGI Bandung" scheme="http://geeks.netindonesia.net/blogs/yulian/archive/tags/MUGI+Bandung/default.aspx" /></entry><entry><title>Finally...MCT listed in my certification transcript as my newly certification :)</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/yulian/archive/2008/09/28/finally-mct-listed-in-my-certification-transcript-as-my-newly-certification.aspx" /><id>http://geeks.netindonesia.net/blogs/yulian/archive/2008/09/28/finally-mct-listed-in-my-certification-transcript-as-my-newly-certification.aspx</id><published>2008-09-28T13:55:00Z</published><updated>2008-09-28T13:55:00Z</updated><content type="html">&lt;p&gt;Akhirnya setelah beberapa tahun belakangan ini keinginan saya untuk 
mendapatkan sertifikasi MCT (Microsoft Certified Trainer) terkabul juga. Setelah 
saya mengisi MCT Enrollment lewat MCP Member Site dan&amp;nbsp;sempat beberapa kali 
mengirim email ke searesc[at]microsoft.com karena dalam beberapa hari yang telah 
dijanjikan status MCT Applicationnya tidak juga Approved :))...sampai bosan juga 
bolak balik ke MCP member site hanya untuk melihat status Approved 
;))...finallly MCT is listed as my newly certification as you can see in 
my&amp;nbsp;certification transcript below :&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/mct1.jpg" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Bagi yang belum mengetahui apa itu MCT akan saya jelaskan secara singkat.&lt;/p&gt;
&lt;p&gt;MCT ialah sebuah sertifikasi dari Microsoft bagi orang yang berkecimpung di 
IT Training untuk produk-produk Microsoft. Syarat untuk menjadi MCT ialah harus 
sudah memiliki sertifikasi Microsoft sebelumnya, misalnya MCAD, MCSD, MCSE, 
MCPD, MCITP, dll. Untuk mendapatkan sertifikasi ini ada beberapa cara, seperti 
yang dapat anda lihat di situs ini &lt;a href="http://www.microsoft.com/learning/mcp/mct/guide/" target="_blank"&gt;http://www.microsoft.com/learning/mcp/mct/guide/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Lalu apa keuntungannya dengan mendapatkan sertifikasi MCT ini? Sudah pasti 
kita akan mendapatkan discount-discount untuk exam yang bisa mencapai 65%, 
discount buku-buku MS Press, link-link ke resources berguna yang telah 
disediakan Microsoft, MCT Summit, dll. Satu yang paling berguna bagi saya yaitu 
download Microsoft Official Curriculum (MOC). MOC ini merupakan kurikulum resmi 
dari Microsoft sebagai modul training yang diselenggarakan oleh CPLS. Artinya 
saya dapat menghemat untuk membeli buku-buku luar :)).&amp;nbsp;Lalu apa&amp;nbsp;itu CPLS 
(Certified Partner Learning Solution)?&lt;/p&gt;
&lt;p&gt;CPLS merupakan lembaga training center yang sudah di sertifikasi oleh 
Microsoft untuk mengadakan training produk Microsoft dengan menggunakan MOC. 
Selain itu untuk deliver MOC ini CPLS harus mempekerjakan seorang MCT (harusnya 
:D ).&lt;/p&gt;
&lt;p&gt;Seorang MCT juga sebenarnya harus deliver materi yang sesuai dengan track 
sertifikasi yang telah dia dapatkan. Seperti yang dapat anda lihat di potongan 
gambar transkrip saya dibawah ini :&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/mct2.jpg" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Hal tersebut di atas dikarenakan track sertifikasi saya di application 
developer (MCP, MCAD, MCTS, MCPD). Lalu modul-modul MOC apa saja yang dapat saya 
deliver sesuai dengan ketentuan di atas? Ini dia list MOC yang dapat saya 
deliver (you have to own more enough internet quota for download, upgrade your 
Indosat 3.5G Broadband Unlimited to the higher&amp;nbsp;package!! :)) you can&amp;#39;t use Eco! 
Package ;)) ) :&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/mct3.jpg" style="margin:0px;" alt="" /&gt; 
&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/mct4.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Act/mct5.jpg" style="margin:0px 0px 0px 15px;" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Banyak sekali bukan :D...Anyway i would like to say thanks to &amp;quot;Mr.SS&amp;quot; and 
Mr.Andi (from Nettrain Rasuna Park Office) for their help. Without them i 
couldn&amp;#39;t get this certification. Yang merasa ber inisial &amp;quot;SS&amp;quot; silahkan call me, 
i&amp;#39;ll take you to &amp;quot;Ngopi Doeloe&amp;quot; cafe Bandung :))...halah inisial-inisial segala 
:D, ini aja liat blognya &amp;quot;Mr.SS&amp;quot; disini&amp;nbsp; &lt;a href="http://mugi.or.id/blogs/sony/" target="_blank"&gt;http://mugi.or.id/blogs/sony/&lt;/a&gt;&amp;nbsp;O ya, yang pasti logo 
certification saya bertambah ;))&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/yulian/archive/2008/09/28/finally-mct-listed-in-my-certification-transcript-as-my-newly-certification.aspx&amp;amp;subject=Finally...MCT listed in my certification transcript as my newly certification :)" 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/yulian/archive/2008/09/28/finally-mct-listed-in-my-certification-transcript-as-my-newly-certification.aspx&amp;amp;t=Finally...MCT+listed+in+my+certification+transcript+as+my+newly+certification+%3a)" target="_blank" title="Submit Finally...MCT listed in my certification transcript as my newly certification :) 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/yulian/archive/2008/09/28/finally-mct-listed-in-my-certification-transcript-as-my-newly-certification.aspx&amp;amp;title=Finally...MCT+listed+in+my+certification+transcript+as+my+newly+certification+%3a)" target="_blank" title="Submit Finally...MCT listed in my certification transcript as my newly certification :) 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/yulian/archive/2008/09/28/finally-mct-listed-in-my-certification-transcript-as-my-newly-certification.aspx&amp;amp;phase=2" target="_blank" title="Submit Finally...MCT listed in my certification transcript as my newly certification :) 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/yulian/archive/2008/09/28/finally-mct-listed-in-my-certification-transcript-as-my-newly-certification.aspx&amp;amp;title=Finally...MCT+listed+in+my+certification+transcript+as+my+newly+certification+%3a)" target="_blank" title="Add Finally...MCT listed in my certification transcript as my newly certification :) 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=64523" width="1" height="1"&gt;</content><author><name>yulian</name><uri>http://geeks.netindonesia.net/members/yulian.aspx</uri></author><category term="MCT" scheme="http://geeks.netindonesia.net/blogs/yulian/archive/tags/MCT/default.aspx" /></entry><entry><title>ComboBox Color ala WPF</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/yulian/archive/2008/09/23/combobox-color-ala-wpf.aspx" /><id>http://geeks.netindonesia.net/blogs/yulian/archive/2008/09/23/combobox-color-ala-wpf.aspx</id><published>2008-09-23T05:27:00Z</published><updated>2008-09-23T05:27:00Z</updated><content type="html">&lt;p&gt;Di &lt;a href="http://www.yulianmf.com/DetailsArticle.aspx?art=70" target="_blank"&gt;posting terdahulu&lt;/a&gt; saya pernah ber coding ria untuk membuat 
Combobox yang berisi list predefined color beserta kotak berwarna yang memiliki 
warna yang sesuai dengan nama warna yang muncul di Combobox list tersebut. Saya 
tidak akan menjelaskan kembali teknik tersebut. Kali ini saya akan ber coding 
ria lagi untuk membuat object yang serupa namun dibuat dengan menggunakan 
WPF.&lt;/p&gt;
&lt;p&gt;Seperti yang kita ketahui semua, di WPF banyak sekali cool stuff yang dapat 
membuat tampilan lebih cantik dan wah. Selain itu ada beberapa teknik yang 
dipermudah dalam melakukan action tertentu, seperti misalnya penggunaan object 
graphics, bitmap effect, dll. Di WPF juga dikenal adanya Control Template. 
Template control ini sebelumnya mungkin kita kenal di asp.net. Pernah 
menggunakan Data Display Control seperti DataList, Repeater atau mungkin 
GridView? Ya seperti itulah kira-kira yang dapat kita lakukan juga di WPF. Ok 
mari kita lihat langkah-langkahnya:&lt;/p&gt;
&lt;p&gt;Pertama kali sudah pasti anda harus buat terlebih dahulu WPF Application 
project templatenya dari Visual Studio kesayangan anda. Disini saya menggunakan 
VS 2008. Buat code seperti di bawah ini pada Window1.xaml untuk interfacenya 
:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;Window &lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Window1&amp;quot;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:red;"&gt;Title&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Window1&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;300&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span&gt;StackPanel &lt;/span&gt;&lt;span style="color:red;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;10,10,10,10&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Horizontal&amp;quot; &lt;br /&gt;                    &lt;/span&gt;&lt;span style="color:red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Top&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span&gt;ComboBox &lt;/span&gt;&lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;310&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;40&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;cboColor&amp;quot;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span&gt;ComboBox.ItemTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;                    &amp;lt;&lt;/span&gt;&lt;span&gt;DataTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;                         &amp;lt;&lt;/span&gt;&lt;span&gt;StackPanel &lt;/span&gt;&lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Horizontal&amp;quot;&amp;gt;&lt;br /&gt;                            &amp;lt;&lt;/span&gt;&lt;span&gt;Label &lt;/span&gt;&lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;175&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Auto&amp;quot; &lt;br /&gt;                                   &lt;/span&gt;&lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span&gt;Binding &lt;/span&gt;&lt;span style="color:red;"&gt;Path&lt;/span&gt;&lt;span style="color:blue;"&gt;={}}&amp;quot;&lt;br /&gt;                                   &lt;/span&gt;&lt;span style="color:red;"&gt;FontSize&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;14&amp;quot;&amp;gt;&lt;br /&gt;                                &amp;lt;&lt;/span&gt;&lt;span&gt;Label.BitmapEffect&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;                                    &amp;lt;&lt;/span&gt;&lt;span&gt;DropShadowBitmapEffect &lt;br /&gt;                                        &lt;/span&gt;&lt;span style="color:red;"&gt;ShadowDepth&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;10&amp;quot; /&amp;gt;&lt;br /&gt;                                &amp;lt;/&lt;/span&gt;&lt;span&gt;Label.BitmapEffect&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;                            &amp;lt;/&lt;/span&gt;&lt;span&gt;Label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;                            &amp;lt;&lt;/span&gt;&lt;span&gt;Label &lt;/span&gt;&lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Auto&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Auto&amp;quot; &lt;br /&gt;                                   &lt;/span&gt;&lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot; : &amp;quot; &lt;br /&gt;                                   &lt;/span&gt;&lt;span style="color:red;"&gt;FontSize&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;14&amp;quot;  /&amp;gt;&lt;br /&gt;                            &amp;lt;&lt;/span&gt;&lt;span&gt;Label &lt;/span&gt;&lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;50&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;20&amp;quot; &lt;br /&gt;                                   &lt;/span&gt;&lt;span style="color:red;"&gt;Background&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span&gt;Binding &lt;/span&gt;&lt;span style="color:red;"&gt;Path&lt;/span&gt;&lt;span style="color:blue;"&gt;={}}&amp;quot; &amp;gt;&lt;br /&gt;                                &amp;lt;&lt;/span&gt;&lt;span&gt;Label.BitmapEffect&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;                                    &amp;lt;&lt;/span&gt;&lt;span&gt;DropShadowBitmapEffect &lt;/span&gt;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;br /&gt;                                &amp;lt;/&lt;/span&gt;&lt;span&gt;Label.BitmapEffect&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;                            &amp;lt;/&lt;/span&gt;&lt;span&gt;Label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;                        &amp;lt;/&lt;/span&gt;&lt;span&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;                    &amp;lt;/&lt;/span&gt;&lt;span&gt;DataTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;                &amp;lt;/&lt;/span&gt;&lt;span&gt;ComboBox.ItemTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span&gt;ComboBox&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span&gt;StackPanel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;/span&gt;&lt;span&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span&gt;Window&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p&gt;Saya menggunakan StackPanel sebagai layout. Combobox yang digunakan sudah 
tidak standard lagi. Disini digunakan template untuk menampilkan nama warna pada 
control label dan juga warnanya itu sendiri yang juga di render pada control 
label. Untuk membuat template seperti di atas, anda cukup memanggil 
&amp;lt;xxx.ItemTemplate&amp;gt; element. Dimana xxx tersebut bergantung pada control 
yang kita gunakan. Untuk mendefinisikan datanya digunakan &amp;lt;DataTemplate&amp;gt;. 
Di dalam DataTemplate element tersebut anda bebas mau merender apapun dengan 
control yang diingikan. &lt;/p&gt;
&lt;p&gt;Hal yang harus diperhatikan yaitu penggunaan perintah {Binding Path={}}. 
Perintah ini digunakan sebagai DataBinding. DataSource nya dapat kita 
definisikan secara runtime. Atribut Path diisi dengan nama member yang terdapat 
di dalam data source yang digunakan. Apabila anda lihat di atas, Path atribut 
yang terdapat di dalam {Binding Path={}} diisi dengan {}. Artinya tidak terdapat 
nama member yang digunakan, karena disini saya menggunakan enumerasi warna yang 
terdapat di dalam .net framework. Kecuali di dalam data source tersebut terdapat 
nama member yang akan digunakan sebagai DisplayMemberPath, seperi misalnya 
member CompanyName kalau data source diisi dengan data Customer table yang 
terdapat di dalam database Northwind.&lt;/p&gt;
&lt;p&gt;Pada code diatas terdapat penggunaan &amp;lt;Label.BitmapEffect&amp;gt;. Element ini 
digunakan untuk membuat effect pada object tersebut, salah satunya seperti 
DropShadow. Dengan DropShadow ini, maka object tersebut akan memiliki bayangan. 
Jarak antara object aslinya dengan bayangan dapat kita atur dengan menggunakan 
atribut ShadowDepth yang anda isi dengan angka tertentu.&lt;/p&gt;
&lt;p&gt;Label control terakhir yang terdapat di dalam DataTemplate digunakan untuk 
menampilkan kotak berwarna. Pengaturannya dilakukan terhadap properti 
Background. Sehingga warna background yang tampil akan sesuai dengan nama 
warnanya.&lt;/p&gt;
&lt;p&gt;Sekarang kita tambahkan sedikit code pada event window loaded di code behind 
Window1.xaml :&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;Private Sub &lt;/span&gt;Window1_Loaded(&lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;sender &lt;span style="color:blue;"&gt;As Object&lt;/span&gt;, _&lt;br /&gt;                           &lt;span style="color:blue;"&gt;ByVal &lt;/span&gt;e &lt;span style="color:blue;"&gt;As &lt;/span&gt;System.Windows.RoutedEventArgs) _&lt;br /&gt;                           &lt;span style="color:blue;"&gt;Handles Me&lt;/span&gt;.Loaded&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.cboColor.ItemsSource = _&lt;br /&gt;    &lt;span style="color:blue;"&gt;From &lt;/span&gt;c &lt;span style="color:blue;"&gt;In &lt;/span&gt;[Enum].GetNames(&lt;span style="color:blue;"&gt;GetType&lt;/span&gt;(System.Drawing.KnownColor))&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;End Sub&lt;/span&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Kode diatas digunakan untuk membuat data source yang diambil dari enumerasi 
predefined Color, yang akhirnya digunakan pada Combobox dengan set properti 
ItemsSourcenya terhadap object yang dihasilkan dari Query Expression diatas. O 
ya sebelumnya anda harus melakukan referensi terlebih dahulu terhadap 
System.Drawing library. Mari kita lihat screen shotnya :&lt;/div&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Artikel/VB/wpfcombo1.jpg" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Anda juga dapat merubah color fontnya dengan warna yang sesuai dengan nama 
warnanya, caranya simple, seperti yang dilakukan terhadap label object untuk 
menampilkan kotak warna diatas. Cukup rubah dengan code seperti dibawah ini 
:&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;ComboBox&lt;/span&gt;&lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;310&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;40&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;cboColor&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;ComboBox.ItemTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span&gt;DataTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&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;lt;&lt;/span&gt;&lt;span&gt;StackPanel&lt;/span&gt;&lt;span style="color:red;"&gt;Orientation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Horizontal&amp;quot;&amp;gt;&lt;br /&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;lt;&lt;/span&gt;&lt;span&gt;Label&lt;/span&gt;&lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;175&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Auto&amp;quot; &lt;br /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span&gt;Binding&lt;/span&gt;&lt;span style="color:red;"&gt;Path&lt;/span&gt;&lt;span style="color:blue;"&gt;={}}&amp;quot;&lt;br /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;FontSize&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;14&amp;quot;&lt;br /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:red;"&gt;Foreground&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span&gt;Binding&lt;/span&gt;&lt;span style="color:red;"&gt;Path&lt;/span&gt;&lt;span style="color:blue;"&gt;={}}&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Ok...cukup dengan mengatur properti Foreground yang di set ke perintah 
Binding maka hasilnya akan berubah seperti ini:&lt;/div&gt;
&lt;p&gt;&lt;img src="http://www.yulianmf.com/Images/Artikel/VB/wpfcombo2.jpg" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Cukup segitu aja dulu coding-ria nya untuk kali ini... :)&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/yulian/archive/2008/09/23/combobox-color-ala-wpf.aspx&amp;amp;subject=ComboBox Color ala WPF" 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/yulian/archive/2008/09/23/combobox-color-ala-wpf.aspx&amp;amp;t=ComboBox+Color+ala+WPF" target="_blank" title="Submit ComboBox Color ala WPF 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/yulian/archive/2008/09/23/combobox-color-ala-wpf.aspx&amp;amp;title=ComboBox+Color+ala+WPF" target="_blank" title="Submit ComboBox Color ala WPF 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/yulian/archive/2008/09/23/combobox-color-ala-wpf.aspx&amp;amp;phase=2" target="_blank" title="Submit ComboBox Color ala WPF 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/yulian/archive/2008/09/23/combobox-color-ala-wpf.aspx&amp;amp;title=ComboBox+Color+ala+WPF" target="_blank" title="Add ComboBox Color ala WPF 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=63438" width="1" height="1"&gt;</content><author><name>yulian</name><uri>http://geeks.netindonesia.net/members/yulian.aspx</uri></author><category term="WPF" scheme="http://geeks.netindonesia.net/blogs/yulian/archive/tags/WPF/default.aspx" /></entry><entry><title>Graph Your Data Using Silverlight 2.0 Visifire Chart Component</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/yulian/archive/2008/05/05/graph-your-data-using-silverlight-2-0-visifire-chart-component.aspx" /><id>http://geeks.netindonesia.net/blogs/yulian/archive/2008/05/05/graph-your-data-using-silverlight-2-0-visifire-chart-component.aspx</id><published>2008-05-05T08:45:00Z</published><updated>2008-05-05T08:45:00Z</updated><content type="html">&lt;p&gt;Saperti yang telah diterangkan oleh kawan saya yaitu &lt;a href="http://geeks.netindonesia.net/blogs/reyza/" target="_blank"&gt;Reza&lt;/a&gt;, bahwa Visifire itu merupakan free chart component yang berbasiskan Silverlight 2.0. Pada posting kali ini saya akan menerangkan bagaimana caranya menampilkan data yang sudah ada dengan component tersebut. &lt;/p&gt;
&lt;p&gt;Sudah pasti komputer yang akan dipakai harus terinstall terlebih dahulu silverlight 2.0 runtime nya. Component Visifire dapat didonwload disini &lt;a href="http://www.visifire.com/downloads/visifire_v1.0.5_beta_with_documentation.zip" target="_blank"&gt;http://www.visifire.com/downloads/visifire_v1.0.5_beta_with_documentation.zip&lt;/a&gt; . Sebelumnya saya akan memberikan gambaran secara umum mengenai penggunaan component ini point to point :&lt;/p&gt;
&lt;p&gt;1. Component ini memiliki dua file yang harus diinclude ke project, yaitu Visifire.js dan Visifire.xap. Kedua file ini harus ditempatkan pada direktori yang sama dengan direktori web form yang akan digunakan untuk menampilkan chart tersebut.&lt;/p&gt;
&lt;p&gt;2. Data source yang digunakan mempunyai dua alternatif pilihan, yaitu berupa file xml dan data xml yang diembed langsung ke dalam sebuah variable yang disimpan di java script.&lt;/p&gt;
&lt;p&gt;3. Component ini memiliki &amp;quot;kelemahan&amp;quot; apabila kita menggunakan file xml sebagai data source. Jika file xml nya memiliki nama file xml yang sama maka dia akan cache data tersebut, jika file xml nya berbeda maka chart tersebut akan invalidate data cache sebelumnya, dan saya belum tahu bagaimana caranya untuk invalidate cache data yang digunakan oleh komponen tersebut secara imperative.&lt;/p&gt;
&lt;p&gt;4. Solusi untuk point-3 yaitu kita bisa mengakalinya dengan create file xml secara random dengan menggunakan Guid setiap kali chart tersebut akan ditampilkan, sehingga chart tersebut dapat mendeteksi perubahan file xml. Akan tetapi kita harus menghapus kembali file-file xml tersebut setelah dipakai, kalau nggak bisa menuhin web servernya tuh :). &lt;/p&gt;
&lt;p&gt;5. Jika kita menggunakan teknik data embedded maka permasalahan cache data tersebut tidak terjadi.&lt;/p&gt;
&lt;p&gt;6. Agar datanya di load secara dinamis maka kita dapat membuat java scriptnya secara dinamis juga setiap kali chart tersebut akan di load.&lt;/p&gt;
&lt;p&gt;7. Jika kita menggunakan file xml yang disimpan di direktori tertentu maka xml declaration yang terdapat di dalam file xml tersebut harus dihilangkan, karena chart tersebut akan menganggap struktur data xml nya tidak valid. Lalu bagaimana caranya? Kita dapat menggunakan XmlWriterSettings class yang mulai ada di .Net Fx 2.0.&lt;/p&gt;
&lt;p&gt;8. Struktur file xml yang digunakan dapat anda lihat di dokumentasinya. Secara umum sih sederhana, anda dapat mengatur tampilan / style secara declarative di file xml nya. Anda dapat merubah Title, AxisXTile, AxisYTitle, View3d, dsb.&lt;/p&gt;
&lt;p&gt;9. Untuk membaca datanya, chart ini menggunakan elemen DataPoint dengan pengaturan atribut AxisLabel, YValue, dan Color untuk memberikan warna pada tiap-tiap data. Selengkapnya dapat dilihat di dokumentasi.&lt;/p&gt;
&lt;p&gt;Pada posting kali ini saya akan menjelaskan kedua teknik di atas, yaitu xml file sebagai sumber data, dan embedded data. Kita bisa render chart as Column, Line, Point, Bubble, dengan Marker Style as Triangle, Diamond...ok mari kita lihat saja langsung code nya (tanpa basa basi :) )...&lt;/p&gt;
&lt;p&gt;Kode pertama yang akan saya perlihatkan yaitu rendering chart dengan file xml sebagai sumber datanya. Disini saya gunakan XML Literal yang ada di VB 9.0 agar lebih mudah...&lt;/p&gt;
&lt;p&gt;Berikut kode HTML yang ada di body elemen&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;body&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;form &lt;/span&gt;&lt;span style="COLOR:red;"&gt;id&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;form1&amp;quot; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;runat&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;server&amp;quot;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;div&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ScriptManager &lt;/span&gt;&lt;span style="COLOR:red;"&gt;ID&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;ScriptManager1&amp;quot; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;runat&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;server&amp;quot;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ScriptManager&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;span &lt;/span&gt;&lt;span style="COLOR:red;"&gt;class&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;style1&amp;quot;&amp;gt;&lt;/span&gt;Chart Object Using Visifire&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;span&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;br &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;br &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;cc1&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;TabContainer &lt;/span&gt;&lt;span style="COLOR:red;"&gt;ID&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;TabContainer1&amp;quot; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;runat&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;server&amp;quot; 
        &lt;/span&gt;&lt;span style="COLOR:red;"&gt;ActiveTabIndex&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;0&amp;quot; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;Width&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;600px&amp;quot;
            &lt;/span&gt;&lt;span style="COLOR:red;"&gt;Height&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;480px&amp;quot;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;cc1&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;TabPanel &lt;/span&gt;&lt;span style="COLOR:red;"&gt;runat&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;server&amp;quot; 
            &lt;/span&gt;&lt;span style="COLOR:red;"&gt;HeaderText&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;Rendering Chart Using XML File&amp;quot; 
            &lt;/span&gt;&lt;span style="COLOR:red;"&gt;ID&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;TabPanel1&amp;quot;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                    &lt;/span&gt;Render As : &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;DropDownList 
                    &lt;/span&gt;&lt;span style="COLOR:red;"&gt;ID&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;ddlRenderAs&amp;quot; 
                    &lt;/span&gt;&lt;span style="COLOR:red;"&gt;runat&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;server&amp;quot; &amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;Point&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;Line&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;Bubble&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;DropDownList&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                    &lt;/span&gt;Marker Style : &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;DropDownList 
                    &lt;/span&gt;&lt;span style="COLOR:red;"&gt;ID&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;ddlMarkerStyle&amp;quot; 
                    &lt;/span&gt;&lt;span style="COLOR:red;"&gt;runat&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;server&amp;quot; &amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;Triangle&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;Diamond&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;Cross&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                        &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;Square&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ListItem&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;DropDownList&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;br &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;br &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;div &lt;/span&gt;&lt;span style="COLOR:red;"&gt;id&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;VisifireChart1&amp;quot;&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;div&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;br &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;Button &lt;/span&gt;&lt;span style="COLOR:red;"&gt;ID&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;btnXmlChart&amp;quot; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;runat&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;server&amp;quot; 
                    &lt;/span&gt;&lt;span style="COLOR:red;"&gt;Text&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;Load XML file&amp;quot; /&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;cc1&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;TabPanel&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;cc1&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;TabPanel &lt;/span&gt;&lt;span style="COLOR:red;"&gt;runat&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;server&amp;quot; 
            &lt;/span&gt;&lt;span style="COLOR:red;"&gt;HeaderText&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;Rendering Chart Using Embedded XML Data&amp;quot;
                &lt;/span&gt;&lt;span style="COLOR:red;"&gt;ID&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;TabPanel2&amp;quot;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;div &lt;/span&gt;&lt;span style="COLOR:red;"&gt;id&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;VisifireChart2&amp;quot;&amp;gt;
                    &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;div&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;br &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;/&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;Button &lt;/span&gt;&lt;span style="COLOR:red;"&gt;ID&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;btnEmbedData&amp;quot; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;runat&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;server&amp;quot; 
                    &lt;/span&gt;&lt;span style="COLOR:red;"&gt;Text&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;Load Embedded Data&amp;quot; /&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ContentTemplate&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;cc1&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;TabPanel&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;cc1&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;TabContainer&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;div&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;form&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;body&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Untuk menampilkan warna per customer saya membuat data dummy, dimana kelima customer tersebut sudah saya set warnanya sbb :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="COLOR:blue;"&gt;Private Function &lt;/span&gt;FindColor(&lt;span style="COLOR:blue;"&gt;ByVal &lt;/span&gt;CustID &lt;span style="COLOR:blue;"&gt;As String&lt;/span&gt;) &lt;span style="COLOR:blue;"&gt;As String
    Dim &lt;/span&gt;colorList = &lt;span style="COLOR:blue;"&gt;New &lt;/span&gt;Dictionary(&lt;span style="COLOR:blue;"&gt;Of String&lt;/span&gt;, &lt;span style="COLOR:blue;"&gt;String&lt;/span&gt;)
    colorList.Add(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;QUICK&amp;quot;&lt;/span&gt;, &lt;span style="COLOR:#a31515;"&gt;&amp;quot;Red&amp;quot;&lt;/span&gt;)
    colorList.Add(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;ERNSH&amp;quot;&lt;/span&gt;, &lt;span style="COLOR:#a31515;"&gt;&amp;quot;Blue&amp;quot;&lt;/span&gt;)
    colorList.Add(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;SAVEA&amp;quot;&lt;/span&gt;, &lt;span style="COLOR:#a31515;"&gt;&amp;quot;Yellow&amp;quot;&lt;/span&gt;)
    colorList.Add(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;RATTC&amp;quot;&lt;/span&gt;, &lt;span style="COLOR:#a31515;"&gt;&amp;quot;Green&amp;quot;&lt;/span&gt;)
    colorList.Add(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;HUNGO&amp;quot;&lt;/span&gt;, &lt;span style="COLOR:#a31515;"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;)

    &lt;span style="COLOR:blue;"&gt;Return &lt;/span&gt;colorList.Item(CustID)
&lt;span style="COLOR:blue;"&gt;End Function&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;Dibawah ini code behind untuk create file xml sebagai data source. Xml declaration dihilangkan lewat XmlWriterSetting class, file xml di create dengan menggunakan XML literal, dan java script di create secara dinamis. Data diambil dari database Northwind dengan view yang sudah ada yaitu Invoices. View ini saya gunakan untuk menghitung Top 5 customer dengan total nilai uang yang pernah mereka order dan di group kan berdasarkan customer id. Sebelumnya kita import terlebih dahulu namespacenya :&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="COLOR:blue;"&gt;Imports &lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#b96464;"&gt;xmlns:vc&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;clr-namespace:Visifire.Charts;assembly=Visifire.Charts&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Berikut code behind create xml chart data :&lt;/p&gt;&lt;pre class="code"&gt;    &lt;span style="COLOR:blue;"&gt;Protected Sub &lt;/span&gt;btnXmlChart_Click() &lt;span style="COLOR:blue;"&gt;Handles &lt;/span&gt;btnXmlChart.Click
        &lt;span style="COLOR:blue;"&gt;Dim &lt;/span&gt;xmlChartData = &lt;span style="COLOR:#6464b9;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#844646;"&gt;vc:Chart &lt;/span&gt;&lt;span style="COLOR:#b96464;"&gt;Theme&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;Theme3&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot; 
                               &lt;/span&gt;&lt;span style="COLOR:#b96464;"&gt;AnimationType&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;Type3&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot; 
                               &lt;/span&gt;&lt;span style="COLOR:#b96464;"&gt;View3D&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;True&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;&amp;gt;
                               &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#844646;"&gt;vc:Title &lt;/span&gt;&lt;span style="COLOR:#b96464;"&gt;Text&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;Customer-Order&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;/&amp;gt;
                               &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#844646;"&gt;vc:AxisX &lt;/span&gt;&lt;span style="COLOR:#b96464;"&gt;Title&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;Customers&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;/&amp;gt;
                               &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#844646;"&gt;vc:AxisY &lt;/span&gt;&lt;span style="COLOR:#b96464;"&gt;Title&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;Total&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;/&amp;gt;
                               &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#844646;"&gt;vc:DataSeries 
                                   &lt;/span&gt;&lt;span style="COLOR:#b96464;"&gt;RenderAs&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;&amp;lt;%=&lt;/span&gt; ddlRenderAs.Text &lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;%&amp;gt;
&lt;/span&gt;                                   &lt;span style="COLOR:#b96464;"&gt;MarkerStyle&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;&amp;lt;%=&lt;/span&gt; ddlMarkerStyle.Text &lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;%&amp;gt;
&lt;/span&gt;                                   &lt;span style="COLOR:#b96464;"&gt;MarkerSize&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;20&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot; 
                                   &lt;/span&gt;&lt;span style="COLOR:#b96464;"&gt;LabelEnabled&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;True&lt;/span&gt;&lt;span style="COLOR:#555555;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;&amp;gt;
                                   &lt;/span&gt;&lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;&amp;lt;%=&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;From &lt;/span&gt;data &lt;span style="COLOR:blue;"&gt;In &lt;/span&gt;db.Invoices _
                                       &lt;span style="COLOR:blue;"&gt;Group By &lt;/span&gt;ID = data.CustomerID _
                                       &lt;span style="COLOR:blue;"&gt;Into &lt;/span&gt;Total = Sum(data.ExtendedPrice) _
                                       &lt;span style="COLOR:blue;"&gt;Order By &lt;/span&gt;Total &lt;span style="COLOR:blue;"&gt;Descending &lt;/span&gt;_
                                       &lt;span style="COLOR:blue;"&gt;Select &lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#844646;"&gt;vc:DataPoint 
                                                  &lt;/span&gt;&lt;span style="COLOR:#b96464;"&gt;Color&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;&amp;lt;%=&lt;/span&gt; FindColor(ID) &lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;%&amp;gt;
&lt;/span&gt;                                                  &lt;span style="COLOR:#b96464;"&gt;AxisLabel&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;&amp;lt;%=&lt;/span&gt; ID &lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;%&amp;gt;&lt;/span&gt; 
                                                  &lt;span style="COLOR:#b96464;"&gt;YValue&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;=&lt;/span&gt;&lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;&amp;lt;%=&lt;/span&gt; Total &lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;/&amp;gt; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;Take &lt;/span&gt;(5) &lt;span style="BACKGROUND:#fffebf;COLOR:#555555;"&gt;%&amp;gt;
&lt;/span&gt;                               &lt;span style="COLOR:#6464b9;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#844646;"&gt;vc:DataSeries&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;&amp;gt;
                           &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#844646;"&gt;vc:Chart&lt;/span&gt;&lt;span style="COLOR:#6464b9;"&gt;&amp;gt;

        &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;Dim &lt;/span&gt;randomFile = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;ChartData/&amp;quot; &lt;/span&gt;&amp;amp; Guid.NewGuid.ToString &amp;amp; &lt;span style="COLOR:#a31515;"&gt;&amp;quot;.xml&amp;quot;

        &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;Dim &lt;/span&gt;xmlSetting = &lt;span style="COLOR:blue;"&gt;New &lt;/span&gt;XmlWriterSettings _
        &lt;span style="COLOR:blue;"&gt;With &lt;/span&gt;{.OmitXmlDeclaration = &lt;span style="COLOR:blue;"&gt;True&lt;/span&gt;, .Indent = &lt;span style="COLOR:blue;"&gt;True&lt;/span&gt;}

        &lt;span style="COLOR:blue;"&gt;Dim &lt;/span&gt;writer = XmlWriter.Create(Request.MapPath(randomFile), _
                                      xmlSetting)
        xmlChartData.WriteTo(writer)
        writer.Flush()
        writer.Close()

        &lt;span style="COLOR:blue;"&gt;If &lt;/span&gt;(&lt;span style="COLOR:blue;"&gt;Not &lt;/span&gt;ClientScript.IsStartupScriptRegistered(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;clientScript1&amp;quot;&lt;/span&gt;)) &lt;span style="COLOR:blue;"&gt;Then
            Dim &lt;/span&gt;scriptString &lt;span style="COLOR:blue;"&gt;As String &lt;/span&gt;= &lt;span style="COLOR:#a31515;"&gt;&amp;quot;&amp;lt;script type=&amp;quot;&amp;quot;text/javascript&amp;quot;&amp;quot;&amp;gt;&amp;quot;
            &lt;/span&gt;scriptString += &lt;span style="COLOR:#a31515;"&gt;&amp;quot;var vChart = new Visifire(&amp;#39;Visifire.xap&amp;#39;,500,400);&amp;quot;
            &lt;/span&gt;scriptString += &lt;span style="COLOR:#a31515;"&gt;&amp;quot;vChart.setDataUri(&amp;quot;&amp;quot;&amp;quot; &lt;/span&gt;+ randomFile + &lt;span style="COLOR:#a31515;"&gt;&amp;quot;&amp;quot;&amp;quot;);&amp;quot;
            &lt;/span&gt;scriptString += &lt;span style="COLOR:#a31515;"&gt;&amp;quot;vChart.render(&amp;quot;&amp;quot;VisifireChart1&amp;quot;&amp;quot;);&amp;quot;
            &lt;/span&gt;scriptString += &lt;span style="COLOR:#a31515;"&gt;&amp;quot;&amp;lt;/script&amp;gt;&amp;quot;
            &lt;/span&gt;ClientScript.RegisterStartupScript(&lt;span style="COLOR:blue;"&gt;Me&lt;/span&gt;.GetType, _
                                               &lt;span style="COLOR:#a31515;"&gt;&amp;quot;clientScript1&amp;quot;&lt;/span&gt;, scriptString)
        &lt;span style="COLOR:blue;"&gt;End If
    End Sub&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;Jangan lupa hapus kembali file xml yang terdapat di folder ChartData :) , sebaiknya dihapus secara run time...XMlWriterSetting digunakan untuk menghapus xml declaration, dan format penulisan xml file agar memiliki indentasi. Chart ini di render pada div eleme