<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><title>Geeks Portal</title><link>http://geeks.netindonesia.net/blogs/</link><description>From developers, to developers and for developers.</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/GeeksPortal" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="geeksportal" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Cara menambahkan assembly di &lt;SafeControl&gt;</title><link>http://geeks.netindonesia.net/blogs/pdanan/archive/2012/05/25/cara-menambahkan-assembly-di-lt-safecontrol-gt.aspx</link><pubDate>Fri, 25 May 2012 15:08:03 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193466</guid><dc:creator>pdanan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Klik 2x package di visual studio, dan klik Manifest di bawah package. dan tambahkan assembly dengan menuliskan di situ, berikut gambarnya:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/pdanan/image_6DEC5C64.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://netindonesia.net/blogs/pdanan/image_thumb_232548FD.png" width="244" height="88" /&gt;&lt;/a&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/pdanan/archive/2012/05/25/cara-menambahkan-assembly-di-lt-safecontrol-gt.aspx&amp;amp;subject=Cara menambahkan assembly di &amp;lt;SafeControl&amp;gt;" 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/pdanan/archive/2012/05/25/cara-menambahkan-assembly-di-lt-safecontrol-gt.aspx&amp;amp;t=Cara+menambahkan+assembly+di+%26lt%3bSafeControl%26gt%3b" target="_blank" title="Submit Cara menambahkan assembly di &amp;lt;SafeControl&amp;gt; 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/pdanan/archive/2012/05/25/cara-menambahkan-assembly-di-lt-safecontrol-gt.aspx&amp;amp;title=Cara+menambahkan+assembly+di+%26lt%3bSafeControl%26gt%3b" target="_blank" title="Submit Cara menambahkan assembly di &amp;lt;SafeControl&amp;gt; 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/pdanan/archive/2012/05/25/cara-menambahkan-assembly-di-lt-safecontrol-gt.aspx&amp;amp;phase=2" target="_blank" title="Submit Cara menambahkan assembly di &amp;lt;SafeControl&amp;gt; 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/pdanan/archive/2012/05/25/cara-menambahkan-assembly-di-lt-safecontrol-gt.aspx&amp;amp;title=Cara+menambahkan+assembly+di+%26lt%3bSafeControl%26gt%3b" target="_blank" title="Add Cara menambahkan assembly di &amp;lt;SafeControl&amp;gt; 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=193466" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/pdanan/archive/tags/Sharepoint/default.aspx">Sharepoint</category></item><item><title>HTTP ETag</title><link>http://geeks.netindonesia.net/blogs/cahnom/archive/2012/05/25/http-etag.aspx</link><pubDate>Fri, 25 May 2012 08:04:33 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193465</guid><dc:creator>cahnom</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Sebuat &lt;strong&gt;ETag&lt;/strong&gt; atau &lt;em&gt;entity tag &lt;/em&gt;adalah bagian dari HTTP, sebuah protokol untuk &lt;em&gt;Word Wide Web&lt;/em&gt;. ETag adalah salah satu mekanisme pada HTTP untuk validasi web cache. ETag memungkinkan untuk validasi &lt;em&gt;cache &lt;/em&gt;berdasarkan kondisi yang ditentukan.&lt;/p&gt;  &lt;p&gt;Ketika ada permintaan oleh klien, ETag dibuat oleh server kemudian dikirim ke klien melalui field ETag pada &lt;em&gt;header&lt;/em&gt;. &lt;/p&gt;  &lt;pre&gt;ETag: &amp;quot;686897696a7c876b7e&amp;quot; &lt;/pre&gt;

&lt;p&gt;Pada saat klien melakukan permintaan berikutnya, informasi ETag dikirim kembali ke server melalui field If-none-match pada &lt;em&gt;header&lt;/em&gt;. &lt;/p&gt;

&lt;pre&gt;If-None-Match: &amp;quot;686897696a7c876b7e&amp;quot;&lt;/pre&gt;

&lt;p&gt;Di server informasi ini akan dicocokkan dengan ETag yang ada di server. Jika informasi di server tidak ada perubahan data, maka server hanya akan mengirimkan respon singkat pada header berupa &lt;em&gt;304 Not modified. &lt;/em&gt;Jika terdapat perubahan informasi, server akan mengirimkan respon secara lengkap beserta ETag yang baru.&lt;/p&gt;

&lt;p&gt;Dengan pemanfaatan ETag, respon akan lebih cepat pada halaman yang sering diakses oleh user karena tidak perlu mengunduh ulang seluruh respon.&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/cahnom/archive/2012/05/25/http-etag.aspx&amp;amp;subject=HTTP ETag" 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/cahnom/archive/2012/05/25/http-etag.aspx&amp;amp;t=HTTP+ETag" target="_blank" title="Submit HTTP ETag 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/cahnom/archive/2012/05/25/http-etag.aspx&amp;amp;title=HTTP+ETag" target="_blank" title="Submit HTTP ETag 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/cahnom/archive/2012/05/25/http-etag.aspx&amp;amp;phase=2" target="_blank" title="Submit HTTP ETag 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/cahnom/archive/2012/05/25/http-etag.aspx&amp;amp;title=HTTP+ETag" target="_blank" title="Add HTTP ETag 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=193465" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/cahnom/archive/tags/HTTP/default.aspx">HTTP</category></item><item><title>Error “The URL provided is invalid …” ketika melakukan Export-SPWeb</title><link>http://geeks.netindonesia.net/blogs/pdanan/archive/2012/05/21/error-the-url-provided-is-invalid-ketika-melakukan-export-spweb.aspx</link><pubDate>Mon, 21 May 2012 13:47:12 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193463</guid><dc:creator>pdanan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Kemungkinan kita pernah mengalami Error berikut ini ketika melakukan &lt;strong&gt;Export-SPWeb&lt;/strong&gt;&amp;#160; : &lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;Export-SPWeb : The URL provided is invalid. Only valid URLs that are site colle&lt;/font&gt;&lt;font color="#0000ff"&gt;ctions or sites are allowed to be exported using stsadm.exe.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;masalahnya bisa jadi ada di isian parameter &lt;strong&gt;itemUrl, &lt;/strong&gt;yakni &lt;strong&gt;ada/tidaknya &lt;/strong&gt; karakter &lt;strong&gt;“/” &lt;/strong&gt;di depan,&lt;/p&gt;  &lt;p&gt;Maksudnya, untuk kondisi tertentu karakter “/” tidak boleh ada di depan seperti ini : &lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" size="2" face="Calibri"&gt;export-spweb &lt;/font&gt;&lt;a href="http://spvm1/sites/site1"&gt;&lt;font color="#0000ff" size="2" face="Calibri"&gt;http://spvm1/sites/site1&lt;/font&gt;&lt;/a&gt;&lt;font color="#0000ff" size="2" face="Calibri"&gt; -ItemUrl &amp;quot;Lists/list1&amp;quot; -path &amp;quot;C:\list1.cmp&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Namun untuk kondisi lain justru harus ada di kasus seperti ini :&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" size="2" face="Calibri"&gt;export-spweb &lt;/font&gt;&lt;font color="#0000ff" size="2" face="Calibri"&gt;&lt;a href="http://spvm1.edanan.com"&gt;http://spvm1.edanan.com&lt;/a&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Calibri"&gt; -ItemUrl &amp;quot;&lt;strong&gt;&lt;font size="4"&gt;/&lt;/font&gt;&lt;/strong&gt;Lists/list1&amp;quot; -path &amp;quot;C:\list1.cmp&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Dari pengalaman saya, hal tersebut tergantung site URL nya, silakan rekan-rekan menebak dari 2 contoh diatas, kondisi mana yang harus ada “/” dan yang sebaliknya (tidak boleh ada “/”)   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Reference: &lt;a href="http://edanan.wordpress.com/2012/05/21/export-spweb-the-url-provided-is-invalid/"&gt;http://edanan.wordpress.com/2012/05/21/export-spweb-the-url-provided-is-invalid/&lt;/a&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/pdanan/archive/2012/05/21/error-the-url-provided-is-invalid-ketika-melakukan-export-spweb.aspx&amp;amp;subject=Error “The URL provided is invalid …” ketika melakukan Export-SPWeb" 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/pdanan/archive/2012/05/21/error-the-url-provided-is-invalid-ketika-melakukan-export-spweb.aspx&amp;amp;t=Error+%e2%80%9cThe+URL+provided+is+invalid+%e2%80%a6%e2%80%9d+ketika+melakukan+Export-SPWeb" target="_blank" title="Submit Error “The URL provided is invalid …” ketika melakukan Export-SPWeb 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/pdanan/archive/2012/05/21/error-the-url-provided-is-invalid-ketika-melakukan-export-spweb.aspx&amp;amp;title=Error+%e2%80%9cThe+URL+provided+is+invalid+%e2%80%a6%e2%80%9d+ketika+melakukan+Export-SPWeb" target="_blank" title="Submit Error “The URL provided is invalid …” ketika melakukan Export-SPWeb 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/pdanan/archive/2012/05/21/error-the-url-provided-is-invalid-ketika-melakukan-export-spweb.aspx&amp;amp;phase=2" target="_blank" title="Submit Error “The URL provided is invalid …” ketika melakukan Export-SPWeb 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/pdanan/archive/2012/05/21/error-the-url-provided-is-invalid-ketika-melakukan-export-spweb.aspx&amp;amp;title=Error+%e2%80%9cThe+URL+provided+is+invalid+%e2%80%a6%e2%80%9d+ketika+melakukan+Export-SPWeb" target="_blank" title="Add Error “The URL provided is invalid …” ketika melakukan Export-SPWeb 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=193463" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/pdanan/archive/tags/Powershell/default.aspx">Powershell</category><category domain="http://geeks.netindonesia.net/blogs/pdanan/archive/tags/Sharepoint+2010/default.aspx">Sharepoint 2010</category></item><item><title>Windows 8 Learning Resources</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/19/windows-8-learning-resources.aspx</link><pubDate>Sat, 19 May 2012 15:38:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193461</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi rekan developer, 
&lt;/p&gt;&lt;p&gt;Saya menemukan beberapa resource yang dapat digunakan untuk memulai atau memperdalam pengetahuan anda mengenai Windows 8. Seperti yang kita ketahui sudah ada beberapa event yang diselengarakan berkaitan dengan Windows 8 di Indonesia. Mulai dari Windows 8 bootcamp di Bandung, Developer Conference Jakarta dan Windows 8 Hackhaton di Yogyakarta. Jika anda belum mendapat kesempatan untuk mengikuti acara tersebut dikarenakan waktu atau masalah tempat anda tidak perlu takut. Anda dapat melihat materi materi yang dibawakan di acara tersebut dari link berikut ini. 
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=29854&amp;amp;WT.mc_id=rss_alldownloads_all"&gt;&lt;strong&gt;Windows 8 Camp in a Box, Consumer Preview Edition&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;
		&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Materi yang disajikan pada link di atas sudah cukup lengkap dan sudah pasti merupakan yang terbaik, karena disajikan dari team utama microsoft Redmon. 
&lt;/p&gt;&lt;p&gt;Anda juga dapat melihat dan mendaftarkan diri anda untuk mengikuti Webcast berikut. 
&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/jaimer/archive/2012/05/10/msdn-webcast-series-on-building-metro-style-apps.aspx"&gt;&lt;strong&gt;MSDN Webcast series on building Metro style apps&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;
		&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Kemaren baru saja juga dilangsungkan Live Streaming khusus untuk developer c++ mengenai Windows 8. Materi yang dicakup spesifik untuk c++ dan cukup menyeluruh. Anda dapat melihat dan sering mengunjungi website tersebut karena rekamannya akan di publish dalam waktu dekat ini. 
&lt;/p&gt;&lt;p style="text-align:center;"&gt;&lt;a href="http://channel9.msdn.com/Events/Windows-Camp/Developing-Windows-8-Metro-style-apps-in-Cpp"&gt;&lt;img width="942" height="219" align="" style="width:584px;height:134px;" alt="" src="http://weltam.files.wordpress.com/2012/05/windows8cpp.jpg" border="0" hspace="-1" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Saya juga akan berusaha mengupdate sesering mungkin semua resource yang berhubungan dengan Windows 8 secepat mungkin setelah saya menemukannya. Saya berharap bahwa resource tersebut akan dapat bermanfaat bagi rekan developer untuk mengembangkan aplikasi yang bakalan menembus pasar dunia begitu Windows 8 di release ke pasar. 
&lt;/p&gt;&lt;p&gt;Let&amp;#39;s build an Apps. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Cheers&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/welly_tambunan/archive/2012/05/19/windows-8-learning-resources.aspx&amp;amp;subject=Windows 8 Learning Resources" 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/welly_tambunan/archive/2012/05/19/windows-8-learning-resources.aspx&amp;amp;t=Windows+8+Learning+Resources" target="_blank" title="Submit Windows 8 Learning Resources 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/welly_tambunan/archive/2012/05/19/windows-8-learning-resources.aspx&amp;amp;title=Windows+8+Learning+Resources" target="_blank" title="Submit Windows 8 Learning Resources 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/welly_tambunan/archive/2012/05/19/windows-8-learning-resources.aspx&amp;amp;phase=2" target="_blank" title="Submit Windows 8 Learning Resources 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/welly_tambunan/archive/2012/05/19/windows-8-learning-resources.aspx&amp;amp;title=Windows+8+Learning+Resources" target="_blank" title="Add Windows 8 Learning Resources 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=193461" width="1" height="1"&gt;</description></item><item><title>MetroStyle C++ Best practice from p&amp;p</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/14/metrostyle-c-best-practice-from-p-amp-p.aspx</link><pubDate>Mon, 14 May 2012 12:33:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193459</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hai rekan developer, 
&lt;/p&gt;&lt;p&gt;Bagi para developer yang sudah lama berkecimpung di development dengan microsoft platform, sudah pasti nama Microsoft Pattern and Practice tidak asing lagi. Ini adalah tim dari microsoft yang berbaik hati memberikan panduan, petuah dan wejangan kepada kita developer sehingga kita tidak salah jalan. Software yang baik tidak cukup hanya dapat bekerja saja dan memenuhi kebutuhan user, tetapi juga memiliki design yang baik sehingga mudah menambahkan atau mengubah fungsionalitas. Hal yang pertama tentu saja software tersebut harus bisa memuaskan user. Setelah user puas, maka biasanya yang terjadi adalah penambahan fungsionalitas dsb. Pengubahan dan penambahan tersebut hendaknya dapat dilakukan dengan cepat. Oleh karena itu kita perlu menerapkan design yang baik untuk software kita. Microsoft Pattern and Practice menyediakan segudang contoh yang dapat kita ikuti beserta contohnya sehingga kita dapat dengan mudah mengikutinya. 
&lt;/p&gt;&lt;p&gt;Jika anda lihat pada roadmap berikut maka kita tinggal menunggu kapan Windows 8 best practice guidance keluar. Ini merupakah salah satu bacaan wajib para developer MetroStyle apps. 
&lt;/p&gt;&lt;p style="text-align:center;"&gt;&amp;nbsp;&lt;img width="662" height="529" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/00-pp-roadmap.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Microsoft P&amp;amp;P melakukan reimagine pada sample project c++ untuk Windows 7 yaitu Hilo. Hilo ini merupakan simple photo browser. Sample tersebut dihosting di Codeplex. Silahkan langsung saja &lt;a href="http://hilo.codeplex.com/"&gt;cek&lt;/a&gt; dan kita pelajari bersama. Contoh ini mendemonstrasikan kepada kita contoh code untuk live tiles, virtualize scrolling, suspend and resume, search, share contract. Contoh ini masih dalam pengerjaan, jadi kemungkinan ada beberapa fungsionalitas yang belum tersedia. 
&lt;/p&gt;&lt;p style="text-align:center;"&gt;&amp;nbsp;&lt;img width="652" height="351" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/01-hilosample.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Untuk contoh yang ada sekarang hal-hal yang bisa kita peroleh adalah :
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;MetroStyle UX
&lt;/li&gt;&lt;li&gt;Penggunaan Blend untuk style dan animasi
&lt;/li&gt;&lt;li&gt;Live Tiles
&lt;/li&gt;&lt;li&gt;Model-View-ViewModel (MVVM)
&lt;/li&gt;&lt;li&gt;Control WinRT dan data binding
&lt;/li&gt;&lt;li&gt;Native Unit Testing C++
&lt;/li&gt;&lt;li&gt;Virtualized Scrolling
&lt;/li&gt;&lt;li&gt;Fast and Fluid dengan menggunakan asynch dan Parallel Pattern Library
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Contoh ini berusaha menerapkan fitur-fitur dari modern c++  (c++11) sehingga code kita benar-benar clean, safe and fast. 
&lt;/p&gt;&lt;p&gt;Anda dapat membaca artikel di bawah ini mengenai modern c++. 
&lt;/p&gt;&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/03/modern-c-not-your-granddaddy-c.aspx"&gt;&lt;strong&gt;Modern::C++ (Not Your GrandDaddy) C++&lt;/strong&gt;&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Sebelum anda melakukan explorasi terhadap contoh code ini saya berharap anda telah terlebih dahulu mengikuti &lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/"&gt;tutorial saya&lt;/a&gt; yang sebelumnya sehingga anda siap untuk melihat sample code tersebut. Karena penggunaan c++11 , c++/cx, async dan data binding sangat extensive pada tutorial tersebut. 
&lt;/p&gt;&lt;p&gt;Setelah itu anda dapat mendowload source code dari aplikasi Hilo tersebut dari &lt;a href="http://hilo.codeplex.com/SourceControl/list/changesets"&gt;Source Code linknya&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="1004" height="386" align="" style="width:773px;height:299px;" alt="" src="http://weltam.files.wordpress.com/2012/05/02-downloadsource.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p style="text-align:center;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Pada bagian selanjutnya saya akan mencoba mengupas satu per-satu bagian dari aplikasi ni yang dapat kita terapkan dalam pengembangan project anda di Yogyakarta nanti. Tops apps is Well Crafted software. Tidak hanya memuaskan customer tetapi juga memiliki design yang bagus. Kita harus menetapkan standard yang tinggi untuk aplikasi kita. &lt;/p&gt;&lt;p&gt;&amp;nbsp;Getting closer and closer to the D-Day&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;

&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;&lt;img width="713" height="107" title="Web Banner Windows 8 Hackathon" style="margin:5px 5px 5px 0px;border:0px currentColor;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none;" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_1E86F88B.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;Looking forward to see Tops and High quality apps from Jogja.
&lt;/a&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/welly_tambunan/archive/2012/05/14/metrostyle-c-best-practice-from-p-amp-p.aspx&amp;amp;subject=MetroStyle C++ Best practice from p&amp;amp;p" 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/welly_tambunan/archive/2012/05/14/metrostyle-c-best-practice-from-p-amp-p.aspx&amp;amp;t=MetroStyle+C%2b%2b+Best+practice+from+p%26amp%3bp" target="_blank" title="Submit MetroStyle C++ Best practice from p&amp;amp;p 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/welly_tambunan/archive/2012/05/14/metrostyle-c-best-practice-from-p-amp-p.aspx&amp;amp;title=MetroStyle+C%2b%2b+Best+practice+from+p%26amp%3bp" target="_blank" title="Submit MetroStyle C++ Best practice from p&amp;amp;p 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/welly_tambunan/archive/2012/05/14/metrostyle-c-best-practice-from-p-amp-p.aspx&amp;amp;phase=2" target="_blank" title="Submit MetroStyle C++ Best practice from p&amp;amp;p 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/welly_tambunan/archive/2012/05/14/metrostyle-c-best-practice-from-p-amp-p.aspx&amp;amp;title=MetroStyle+C%2b%2b+Best+practice+from+p%26amp%3bp" target="_blank" title="Add MetroStyle C++ Best practice from p&amp;amp;p 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=193459" width="1" height="1"&gt;</description></item><item><title>Not So "Metro" RSS Reader with C++ dan XAML</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/11/not-so-quot-metro-quot-rss-reader-with-c-dan-xaml.aspx</link><pubDate>Fri, 11 May 2012 16:33:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193457</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi guys
&lt;/p&gt;&lt;p&gt;Berikut adalah tutorial mengenai cara untuk membuat aplikasi RSS yang sangat sederhana dengan menggunakan pelajaran yang telah kita bahas sebelumnya. &lt;br /&gt;Pada bagian ini kita membahas mengenai beberapa konsep baru seperti data binding. Tutorial ini bertujuan untuk memberikan konsep dasar yang dibutuhkan dalam pembangunan aplikasi metrostyle. &lt;br /&gt;Sehingga banyak hal-hal yang dilakukan secara manual dengan tujuan memberi pengertian kepada pembaca sebelum kita menggunakan tools untuk membuat aplikasi. 
&lt;/p&gt;&lt;p&gt;Silahkan pelajari artikel dibawah ini.
&lt;/p&gt;&lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/05/simple-rss-reader.pdf"&gt;Simple RSS Reader&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Tutorial ini diterjemahkan dengan pengubahan seperlunya dari tutorial msdn berikut ini. 
&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465045.aspx"&gt;Create your first Metro style app using C++&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Aplikasi RSS diatas masih belum mencerminkan konsep metro yang sebenarnya. Pada bagian berikutnya kita akan menggali lebih dalam lagi mengenai konsep design metro, charm, tiles dsb yang membuat aplikasi kita menjadi lebih menyatu dengan Windows 8 Experience. 
&lt;/p&gt;&lt;p&gt;Kita juga akan membahas penggunaan template, visual studio dan blend untuk mendapatkan produktifitas dan kualitas dalam pembuatan aplikasi. 
&lt;/p&gt;&lt;p&gt;Saya harap anda semakin siap untuk menghadapi event Hackaton yang sudah di depan mata. 
&lt;/p&gt;&lt;p&gt;Jangan sia-siakan waktu anda. 
&lt;/p&gt;&lt;p&gt;Build amazing apps from now. Show to the world through this event. &lt;/p&gt;&lt;p&gt;
&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;&lt;img width="713" height="107" title="Web Banner Windows 8 Hackathon" style="margin:5px 5px 5px 0px;border:0px currentColor;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none;" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_1E86F88B.jpg" border="0" /&gt;

&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;I know you can do it !&lt;/a&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/welly_tambunan/archive/2012/05/11/not-so-quot-metro-quot-rss-reader-with-c-dan-xaml.aspx&amp;amp;subject=Not So &amp;quot;Metro&amp;quot; RSS Reader with C++ dan XAML" 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/welly_tambunan/archive/2012/05/11/not-so-quot-metro-quot-rss-reader-with-c-dan-xaml.aspx&amp;amp;t=Not+So+%26quot%3bMetro%26quot%3b+RSS+Reader+with+C%2b%2b+dan+XAML" target="_blank" title="Submit Not So &amp;quot;Metro&amp;quot; RSS Reader with C++ dan XAML 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/welly_tambunan/archive/2012/05/11/not-so-quot-metro-quot-rss-reader-with-c-dan-xaml.aspx&amp;amp;title=Not+So+%26quot%3bMetro%26quot%3b+RSS+Reader+with+C%2b%2b+dan+XAML" target="_blank" title="Submit Not So &amp;quot;Metro&amp;quot; RSS Reader with C++ dan XAML 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/welly_tambunan/archive/2012/05/11/not-so-quot-metro-quot-rss-reader-with-c-dan-xaml.aspx&amp;amp;phase=2" target="_blank" title="Submit Not So &amp;quot;Metro&amp;quot; RSS Reader with C++ dan XAML 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/welly_tambunan/archive/2012/05/11/not-so-quot-metro-quot-rss-reader-with-c-dan-xaml.aspx&amp;amp;title=Not+So+%26quot%3bMetro%26quot%3b+RSS+Reader+with+C%2b%2b+dan+XAML" target="_blank" title="Add Not So &amp;quot;Metro&amp;quot; RSS Reader with C++ dan XAML 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=193457" width="1" height="1"&gt;</description></item><item><title>Microsoft BizSpark Startup Night</title><link>http://geeks.netindonesia.net/blogs/risman/archive/2012/05/11/microsoft-bizspark-startup-night.aspx</link><pubDate>Fri, 11 May 2012 10:21:21 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193454</guid><dc:creator>Risman Adnan Mattotorang</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This is an invitation to all startups. Come together in this gathering discuss about devices and cloud. &lt;/p&gt;  &lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032513352&amp;amp;Culture=en-ID"&gt;&lt;img title="5 april_@america_presentation_Ideation Bootcamp_eposter_indo" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="5 april_@america_presentation_Ideation Bootcamp_eposter_indo" src="http://geeks.netindonesia.net/blogs/risman/15-may_america_gathering_MICROSOFT_eposter_indo_1AB3B77D.jpg" width="549" height="423" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;See you there. Don’t forget to register &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032513352&amp;amp;Culture=en-ID"&gt;here&lt;/a&gt; . &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cheers – Risman Adnan &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/risman/archive/2012/05/11/microsoft-bizspark-startup-night.aspx&amp;amp;subject=Microsoft BizSpark Startup Night" 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/risman/archive/2012/05/11/microsoft-bizspark-startup-night.aspx&amp;amp;t=Microsoft+BizSpark+Startup+Night" target="_blank" title="Submit Microsoft BizSpark Startup Night 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/risman/archive/2012/05/11/microsoft-bizspark-startup-night.aspx&amp;amp;title=Microsoft+BizSpark+Startup+Night" target="_blank" title="Submit Microsoft BizSpark Startup Night 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/risman/archive/2012/05/11/microsoft-bizspark-startup-night.aspx&amp;amp;phase=2" target="_blank" title="Submit Microsoft BizSpark Startup Night 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/risman/archive/2012/05/11/microsoft-bizspark-startup-night.aspx&amp;amp;title=Microsoft+BizSpark+Startup+Night" target="_blank" title="Add Microsoft BizSpark Startup Night 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=193454" width="1" height="1"&gt;</description></item><item><title>XAML for C++ Developers</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/08/xaml-for-c-developers.aspx</link><pubDate>Tue, 08 May 2012 13:45:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193446</guid><dc:creator>welly tambunan</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Jika anda c++ developers yang ingin terjun ke dunia MetroStyle apps, maka pengetahuan akan XAML (Extensible Application Markup Language) akan sangat dibutuhkan. &lt;br /&gt;MetroStyle apps memiliki pemisahan yang sangat baik untuk user interface dan logic diman user interface diatur dengan menggunakan XAML. 
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Tentu saja kita diberikan kemewahan untuk membuat user interface dengan bantuan Visual Studio Designer dan Blend. Tetapi pengetahuan terhadap dasar merupakan hal yang penting.&lt;br /&gt;Karena tetap saja hasil karya tangan manusia pasti lebih manis dan rapi daripada hasil buatan mesin kan? Saya tidak berharap anda membuat semua user interface dengan tangan kosong. &lt;br /&gt;Produktifitas tetap menjadi prioritas dalam pembuatan aplikasi. Setelah anda memahami konsep mengenai XAML maka saya harapkan anda memaksimalkan penggunaan Visual Studio dan Blend untuk membuat interface anda. Saya yakin bahwa anda akan menguasai kedua tools tersebut dengan cepat jika anda memiliki pemahaman yang baik terhadap dasar.&lt;br /&gt;
	&lt;/p&gt;&lt;p style="text-align:center;"&gt;&lt;strong&gt;&lt;em&gt;Learn to crawl before walk, learn to walk before run.
&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-align:center;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Saya tidak perlu berpanjang cerita lagi, silahkan baca pengantarnya pada pdf dibawah. Saya telah membuat beberapa catatan yang perlu diketahui sebagai dasar untuk XAML. Materi yang dicakup dalam artikel ini masih belum menyeluruh. Bagian seperti Style, Animation, Layout, Control, Visual State dkk akan saya bahas di bagian berikutnya. 
&lt;/p&gt;&lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/05/05-dasar-xaml-c.pdf"&gt;Pengenalan XAML&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Semoga rekan-rekan developer terbantu untuk mempersiapkan diri menghadapi event yang semakin dekat ini. &lt;/p&gt;&lt;p&gt;
&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;&lt;img width="713" height="107" title="Web Banner Windows 8 Hackathon" style="margin:5px 5px 5px 0px;border:0px currentColor;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none;" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_1E86F88B.jpg" border="0" /&gt;

&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;Go Indonesia !&lt;/a&gt;&lt;/p&gt;&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;

&lt;/a&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/welly_tambunan/archive/2012/05/08/xaml-for-c-developers.aspx&amp;amp;subject=XAML for C++ Developers" 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/welly_tambunan/archive/2012/05/08/xaml-for-c-developers.aspx&amp;amp;t=XAML+for+C%2b%2b+Developers" target="_blank" title="Submit XAML for C++ Developers 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/welly_tambunan/archive/2012/05/08/xaml-for-c-developers.aspx&amp;amp;title=XAML+for+C%2b%2b+Developers" target="_blank" title="Submit XAML for C++ Developers 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/welly_tambunan/archive/2012/05/08/xaml-for-c-developers.aspx&amp;amp;phase=2" target="_blank" title="Submit XAML for C++ Developers 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/welly_tambunan/archive/2012/05/08/xaml-for-c-developers.aspx&amp;amp;title=XAML+for+C%2b%2b+Developers" target="_blank" title="Add XAML for C++ Developers 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=193446" width="1" height="1"&gt;</description></item><item><title>Fast and fluid with WinRT Async in C++</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/07/fast-and-fluid-with-winrt-async-in-c.aspx</link><pubDate>Mon, 07 May 2012 14:30:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193445</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Bagi kita mungkin sudah tidak asing lagi jika mendengar kata-kata &amp;quot;Fast and Fluid&amp;quot;. Windows 8 benar-benar mengutamakan user experience dalam pengembangan aplikasinya. Kita para developer dimudahkan untuk membangun aplikasi yang responsive oleh WinRT. Salah satu fasilitasnya adalah pemrograman asyncrhonous.
&lt;/p&gt;&lt;p style="text-align:center;"&gt;&lt;strong&gt;&lt;em&gt;WinRT loves async
&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Hal ini ditunjukan dengan banyak nya API yang dibuat asyncrhonous. Sehingga kita tidak membuat kesalahan penggunaan API yang memungkinkan aplikasi kita tidak responsive atau bahkan hang. Jika aplikasi yang kita sampai hang dan user mendapatkan pengalaman yang buruk dengan aplikasi kita, dengan mudahnya user akan meng-uninstall aplikasi anda dan akan memberikan review buruk di market.
&lt;/p&gt;&lt;p&gt;Perhatikan jika kita ingin melakukan download file dari internet dan kita melakukannya dengan syncrhonous pada UI thread, maka UI thread akan di block sampai operasi tersebut selesai. Karena UI thread di block maka user tidak dapat lagi melakukan aksi apa2 terhadap aplikasi tersebut. Aplikasi tersebut menjadi tidak responsive. Dan pada akhirnya....
&lt;/p&gt;&lt;p style="text-align:center;"&gt;&amp;nbsp;&lt;img width="445" height="257" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/00-hang.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Kita pasti tidak ingin hal tersebut terjadi pada aplikasi kita. 
&lt;/p&gt;&lt;p&gt;Dengan pemrograman asyncrhonous tidak ada blocking yang disebabkan pemanggilan method dan ui dapat terus merespon aksi yang dilakukan user. 
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;WinRT dan Async
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Banyak kelas yang menyediakan asynchronous method. Beberapa diantaranya adalah MediaCapture dan StorageFile. Kita dapat melihat ciri dari method asyncrhonous yaitu diakhiri dengan Async. Berikut contohnya.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="560" height="111" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/01-asyncmethod.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Berikut adalah namespace yang menyediakan fungsionalitas async
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="625" height="350" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/02-asyncnamespace.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Win32 UI Thread
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Para developer Win32 mungkin tidak asing lagi dengan konsep message pumping. Kode seperti ini sudah sangat familiar sekali untuk pemrograman user interface.  
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="596" height="219" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/03-messagepump.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Karena aplikasi MetroStyle masih merupakan aplikasi Windows maka pada dasarnya konsep yang digunakan adalah sama. Tetapi kita tidak perlu lagi menangani detail seperti pemrograman Win32. 
&lt;/p&gt;&lt;p&gt;Anda sudah perhatikan bahwa proses mengambil message, menterjmahkan dan melemparkan ke handler yang sesuai dilakukan pada perulangan (looping). Bayangkan jika message ditangani dengan lama. Contohnya adalah operasi yang berhubungan dengan hardware dalam hal ini printer. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="763" height="251" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/04-printer.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Apakah ada kemungkinan bahwa GetPrinter akan memakan waktu yang lama untuk menyelesaikan proses eksekusinya ? Ya. Kita tidak dapat memprediksi apakah operasi tersebut akan diselesaikan dengan cepat atau tidak. Oleh karena pemanggilannya syncrhonous maka ada kemungkinan bakal terjadi blocking yang menyebabkan hang terhadap aplikasi. 
&lt;/p&gt;&lt;p&gt;Hal seperti ini yang tidak diharamkan oleh WinRT.  Pada WinRT semua diubah, sehingga WinRT API yang memiliki kemungkinan untuk dijalankan &amp;gt;15 ms akan dibuat async. Ketika kita menggunakan asynchronous API pada aplikasi metrostyle kita maka code kita membuat pemanggilan yang tidak menyebabkan terhambatnya thread UI. Dengan Asyncrhonous API kita tidak perlu melakukan pengaturan thread secara explicit atau low level.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Mekanisme Async API ?
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Berikut ini adalah gambaran mengenai mekanisme yang terjadi pada operasi asyncrhonous. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="685" height="332" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/05-openasync.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Pada gambar diatas kita melakukan pemanggilan secara asyncrhonous, propses tersebut mengembalikan object yang merepresentasikan operasi yang akan dieksekusi dimasa depan. Object tersebut adlah IAsyncOperation&amp;lt;&amp;gt;. Setelah pemanggilan asyncrhonous tersebut, maka thread UI akan segera dilepaskan. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="670" height="335" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/07-callback.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Kita meregister callback yang akan dipanggil jika operasi tersebut selesai dilaksanakan. Kita akan melakukan proses selanjutnya berdasarkan hasil yang kita terima dari IAsyncOperation tersebut. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="672" height="338" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/08-start.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Setelah operasi tersebut dijalankan dan Callback di set maka kita dapat melakukan pekerjaan lain.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="671" height="337" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/09-invoke.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Setelah operasi tersebut selesai dijalankan maka secara otomatis callback yang telah kita buat sebelumnya akan dieksekusi. Anda dapat mencoba dengan membuat program sederhana seperti dibawah ini dan melakukan set breakpoint pada kedua tempat tersebut. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="826" height="236" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/10-debugcode.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Perhatikan bahwa kita melakukan registrasi terhadap event handler Completed. Kita melakukanya dengan delegate dan lambda. 
&lt;/p&gt;&lt;p&gt;Anda dapat membaca lebih lanjut mengenai delegate pada artikel berikut ini
&lt;/p&gt;&lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/05/pengenalan-c_cx.pdf" target="_blank"&gt;Pengenalan C++/CX&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Jalankan program tersebut dengan menekan F5. Tekan button tersebut untuk memulai proses asyncrhonous. Perhatikan bahwa program kita berhenti pada break point yang kita set sebelumnya.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="820" height="223" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/11-stopbreak.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Lanjutkan eksekusi program tersebut dengan menekan tombol F10. Perhatikan bahwa ketika anda melewati operasi PickSingleFileAsync anda tidak di block melainkan dapat terus melanjutkan operasi sampai bagian selanjutnya sampai akhir method. Method MyButton_Click tidak di block. Setelah anda keluar dari method MyButton_Click anda akan ditampilkan pada layar seperti ini, tidak usah khawatir dan tekan saja button Continue untuk melanjutkan proses.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="841" height="359" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/12-threaderror.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Silahkan pilih file anda dan tekan Open
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="661" height="409" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/13-select.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Setelah anda memilih nya maka callback yang sebelumnya kita register di eksekusi. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="635" height="125" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/14-callback.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Dengan demikian kita dapat melakukan langkah selanjutnya terhadap file yang kita buka tadi. Dengan ini mungkin anda sudah memiliki gambaran mengenai proses yang terjadi dibelakang layar. 
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Async dengan Task
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Pada bagian sebelumnya kita telah melihat bagaimana cara untuk melakukan pemanggilan operasi asyncrhonous dengan menggunakan event dan delegate. Kita memiliki cara lain untuk melakukan pemanggilan async yang lebih baik dan disarankan yaitu dengan menggunakan task. Kelas task ini berada pada header ppltask.h dan namespace Concurrency. 
&lt;/p&gt;&lt;p&gt;Dengan menggunakan task kita mendapatkan kemudahan untuk 
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;menghubungkan beberapa operasi sinkronous dan asynchronous
&lt;/li&gt;&lt;li&gt;melakukan penanganan exception pada rantai task
&lt;/li&gt;&lt;li&gt;melakukan cancel pada operasi task
&lt;/li&gt;&lt;li&gt;memastikan setiap task dijalankan pada thread yang sesuai
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Sekarang kita akan merubah contoh yang sebelumnya dengan menggunakan task. Langkah yang perlu dilakukan adalah 
&lt;/p&gt;&lt;p&gt;Pastikan anda menginclude header ppltask.h dan menggunakan namespace Concurrency
&lt;/p&gt;&lt;p&gt;&lt;img width="375" height="175" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/15-include-task-name.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Panggil method *Async dan lewatkan Object IAsyncOperation^ ke konstruktor dari task
&lt;/p&gt;&lt;p&gt;&lt;img width="344" height="57" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/16-taskassign.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Panggil method then pada task dan buat fungsi dengan menggunakan lambda sebagai callback (dieksekusi pada saat operasi async selesai)
&lt;/p&gt;&lt;p&gt;&lt;img width="335" height="88" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/17-pickthen.jpg" border="0" hspace="-1" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The task yang dibuat dan dikembalikan oleh fungsi task::then disebut &lt;em&gt;continuation.&lt;/em&gt;
	&lt;/p&gt;&lt;p&gt;Berikut ini contoh code yang lengkap setelah dilakukan refactoring ke task.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="387" height="182" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/18-picker.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Bagaimana jika kita memiliki urutan operasi yang dilakukan secara asyncrhonous dan berurutan. Bagaimana menyusun retetan tersebut secara asyncrhonous ? 
&lt;/p&gt;&lt;p&gt;Apabila kita menggunakan delegate dan event untuk melakukan hal tersebut kita akan berakhir dengan code yang sangat berseni seperti berikut. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="737" height="382" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/19-staircase.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Tapi dengan menggunakan task semuanya menjadi lebih mudah. Hal ini disebabkan bahwa task dapat disusun menjadi satu rentetan eksekusi. Berikut hasil code setelah bagian diatas direfactor menjadi task. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="665" height="246" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/20-taskcompose.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;* kedua potongan kode diatas dapat dijalankan pada Windows Developer preview. Anda harus melakukan penyesuaian agar code diatas dapat dijalankan pada Consumer Preview.
&lt;/p&gt;&lt;p&gt;Kita lihat contoh yang lebih sederhana berikut agar mudah kita analisa bersama.
&lt;/p&gt;&lt;p&gt;&lt;img width="628" height="169" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/21-chain.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Berikut adalah hal yang dapat dianalisa dari program diatas
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Continuation yang pertama mengubah IAsyncAction^ ke task&amp;lt;void&amp;gt; dan mengembalikan task. 
&lt;/li&gt;&lt;li&gt;Continuation yang kedua tidak melakukan pengecekan error dan menerima void sebagai parameter. 
&lt;/li&gt;&lt;li&gt;Continuation yang kedua tidak akan dieksekusi sampai operasi DeleteAsync selesai.
&lt;/li&gt;&lt;li&gt;Jika operasi DeleteAsync melemparkan exception maka continuation yang kedua tidak akan dieksekusi. 
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Dengan ini anda sudah mengetahui bagaiman cara untuk menggunakan asyncrhonous API dengan menggunakan task. Untuk melanjutkan anda dapat mempelajari lebih lanjut mengenai hal ini dengan mengunjungi link berikut ini
&lt;/p&gt;&lt;p&gt;&lt;a title="Asynchronous programming in C++" href="http://msdn.microsoft.com/en-us/library/windows/apps/hh780559.aspx"&gt;Asynchronous programming in C++&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh750082.aspx"&gt;Creating Asynchronous Operations in C++ for Metro style Apps&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;That&amp;#39;s all. 
&lt;/p&gt;&lt;p&gt;Go write fast and fluid apps guys at &lt;span id="lblAddress4"&gt;Jogjakarta&lt;/span&gt;&lt;span id="lblAddress5"&gt;&lt;/span&gt;. :)
&lt;/p&gt;&lt;p&gt;&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;&lt;img width="713" height="107" title="Web Banner Windows 8 Hackathon" style="margin:5px 5px 5px 0px;border:0px currentColor;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none;" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_1E86F88B.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Slow isn&amp;#39;t an option !!&lt;/p&gt;&lt;p&gt;Join&amp;nbsp;with us.&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/welly_tambunan/archive/2012/05/07/fast-and-fluid-with-winrt-async-in-c.aspx&amp;amp;subject=Fast and fluid with WinRT Async in C++" 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/welly_tambunan/archive/2012/05/07/fast-and-fluid-with-winrt-async-in-c.aspx&amp;amp;t=Fast+and+fluid+with+WinRT+Async+in+C%2b%2b" target="_blank" title="Submit Fast and fluid with WinRT Async in C++ 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/welly_tambunan/archive/2012/05/07/fast-and-fluid-with-winrt-async-in-c.aspx&amp;amp;title=Fast+and+fluid+with+WinRT+Async+in+C%2b%2b" target="_blank" title="Submit Fast and fluid with WinRT Async in C++ 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/welly_tambunan/archive/2012/05/07/fast-and-fluid-with-winrt-async-in-c.aspx&amp;amp;phase=2" target="_blank" title="Submit Fast and fluid with WinRT Async in C++ 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/welly_tambunan/archive/2012/05/07/fast-and-fluid-with-winrt-async-in-c.aspx&amp;amp;title=Fast+and+fluid+with+WinRT+Async+in+C%2b%2b" target="_blank" title="Add Fast and fluid with WinRT Async in C++ 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=193445" width="1" height="1"&gt;</description></item><item><title>WinRT can do Desktop too</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/06/winrt-do-desktop-too.aspx</link><pubDate>Sun, 06 May 2012 00:30:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193444</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Pada bagian sebelumnya kita telah membahas mengenai kelebihan WinRT dibandingkan dengan COM, dan bagaimana c++/cx mempermudah pemrograman Windows. Lalu mungkin anda berpikir, mengapa tidak dari dulu seperti ini ? Apakah WinRT dan c++/cx hanya dapat dilakukan pada MetroStyle saja ? Bagaimana dengan Desktop ? Apakah tidak lebih baik jika untuk kedepannya COM benar-benar sepenuhnya digantikan dengan WinRT yang lebih bersahabat ?
&lt;/p&gt;&lt;p&gt;Yes. You can. 
&lt;/p&gt;&lt;p&gt;WinRT can do Desktop to. 
&lt;/p&gt;&lt;p&gt;One For All, All for One. 
&lt;/p&gt;&lt;p&gt;Pada bagian berikut ini saya akan membuat aplikasi Win32 console yang mengakses WinRT API. Tentu saja tidak semua API dapat diakses dari Desktop. API yang tidak spesifik untuk MetroStyle tidak dapat diakses. Anda dapat mengetahuinya dengan melihat pada &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br211377.aspx"&gt;API Reference&lt;/a&gt; untuk WInRT di msdn. 
&lt;/p&gt;&lt;p&gt;Perhatikan salah satu contoh berikut ini dari kelas &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.sensors.accelerometer.aspx"&gt;Accelerometer&lt;/a&gt;.  
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="812" height="396" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/01-accelerometerclass.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Memberi secercah harapan bukan ? Kita melihat bahwa kelas Accelerometer dapat digunakan juga untuk Desktop Apps. Silahkan menelusuri kelas-kelas yang dapat dikases dari Desktop Apps dari dokumentasi tersebut. 
&lt;/p&gt;&lt;p&gt;Sekarang saya akan mendemokan contoh sederhana membuat Aplikasi konsole Win32 dengan memanfaatkan WinRT dan c++/cx. 
&lt;/p&gt;&lt;p&gt;Pertama-tama buat project Win32 Console dengan Visual Studio
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="951" height="577" align="" style="width:644px;height:467px;" alt="" src="http://weltam.files.wordpress.com/2012/05/02-createproject.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Pada wizard yang ditampilkan langsung saja tekan tombol finish. Kita akan menerima nilai default dari wizard tersebut
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="619" height="529" align="" style="width:483px;height:451px;" alt="" src="http://weltam.files.wordpress.com/2012/05/03-finishit.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Buka property dari project tersebut. Kita akan melakukan perubahan setting untuk compiler switch dan header file.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="533" height="531" align="" style="width:420px;height:434px;" alt="" src="http://weltam.files.wordpress.com/2012/05/04-bukaproperty.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Aktifkan WinRT dari c/c++ -&amp;gt; General -&amp;gt; Consume Windows Runtime Extension. Pilih Yes (mengaktifkan switch compiler /ZW)
&lt;/p&gt;&lt;p&gt;&lt;img width="846" height="351" align="" style="width:662px;height:230px;" alt="" src="http://weltam.files.wordpress.com/2012/05/05-winrtextzw.jpg" border="0" hspace="-1" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Tambahkan Additional #using Directories ke tempat dimana platform.winmd dan Windows.winmd . Pada komputer saya lokasi platform.winmd ada di C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcpackages dan Windows.winmd ada di C:\Program Files (x86)\Windows Kits\8.0\Windows Metadata. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Lokasi platform.winmd
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="625" height="419" align="" style="width:488px;height:355px;" alt="" src="http://weltam.files.wordpress.com/2012/05/07-platformd.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Lokadi Windows.winmnd
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="648" height="159" align="" style="width:501px;height:111px;" alt="" src="http://weltam.files.wordpress.com/2012/05/07-windowsmd.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Tambahkan kedua path tersebut pada Additional #using Directories
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="621" height="213" align="" style="width:503px;height:132px;" alt="" src="http://weltam.files.wordpress.com/2012/05/06-addusingdirectory.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Disable Minimal Rebuild (/Gm-)&amp;nbsp; -&amp;gt; this is not compatible with /ZW
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="737" height="255" align="" style="width:587px;height:169px;" alt="" src="http://weltam.files.wordpress.com/2012/05/08-minmalrebuild.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Setelah semua nya selesai di setting maka kita merubah kode pada program utama dengan code berikut.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="673" height="318" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/09-code.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Perhatikan bahwa kita menggunakan WinRT API yaitu StorageFolder. Langsung saja jalankan dengan menekan F5. Dan perhatikan file dibuat pada folder Document anda.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="610" height="162" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/10-sample.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;WinRT loves you guys,, WinRT is Rocks!!!!
&lt;/p&gt;&lt;p&gt;Anda dapat mencoba-coba fitur c++/cx yang saya sudah jelaskan pada artikel berikut.. 
&lt;/p&gt;&lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/05/pengenalan-c_cx.pdf" target="_blank"&gt;Pengenalan C++/CX&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Selamat melakukan coding kata dengan WinRT dan c++/cx. Persiapkan diri anda sebaik mungkin untuk menghadapi event terbesar ini. &lt;/p&gt;&lt;p&gt;
&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;&lt;img width="713" height="107" title="Web Banner Windows 8 Hackathon" style="margin:5px 5px 5px 0px;border:0px currentColor;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none;" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_1E86F88B.jpg" border="0" /&gt;
&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Developers Developers Developers !!!&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/welly_tambunan/archive/2012/05/06/winrt-do-desktop-too.aspx&amp;amp;subject=WinRT can do Desktop too" 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/welly_tambunan/archive/2012/05/06/winrt-do-desktop-too.aspx&amp;amp;t=WinRT+can+do+Desktop+too" target="_blank" title="Submit WinRT can do Desktop too 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/welly_tambunan/archive/2012/05/06/winrt-do-desktop-too.aspx&amp;amp;title=WinRT+can+do+Desktop+too" target="_blank" title="Submit WinRT can do Desktop too 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/welly_tambunan/archive/2012/05/06/winrt-do-desktop-too.aspx&amp;amp;phase=2" target="_blank" title="Submit WinRT can do Desktop too 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/welly_tambunan/archive/2012/05/06/winrt-do-desktop-too.aspx&amp;amp;title=WinRT+can+do+Desktop+too" target="_blank" title="Add WinRT can do Desktop too 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=193444" width="1" height="1"&gt;</description></item><item><title>C++/Cx Tutorial 2: 3rd Party Library</title><link>http://geeks.netindonesia.net/blogs/risman/archive/2012/05/06/c-cx-tutorial-2-3rd-party-library.aspx</link><pubDate>Sat, 05 May 2012 18:37:15 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193443</guid><dc:creator>Risman Adnan Mattotorang</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Pada tutorial 1, saya menjelaskan mengenai beberapa dasar pemrograman C++/Cx seperti type, ref class dan property. Kali ini kita akan coba bermain-main dengan 3rd party library. Pada event &lt;a href="http://www.buildwindows.com/"&gt;BUILD&lt;/a&gt; sebelumnya Ale Contenti menunjukkan bagaimana dia menggunakan &lt;a href="http://bulletphysics.org"&gt;Bullet C++ physics engine&lt;/a&gt; untuk demo sederhana. Pada tutorial ini kita akan mencoba melakukan reuse Box2D di WinRT dan membuat UI sederhana dengan HTML/JavaScript. Semoga dengan contoh ini rekan-rekan akan semakin tertarik dengan pemrograman C++/Cx. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-789C"&gt;&lt;img title="image_thumb[10]" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image_thumb[10]" src="http://geeks.netindonesia.net/blogs/risman/image_thumb10_7BCFCEEF.png" width="586" height="300" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Saya menggunakan Physics engine untuk 2D games, &lt;a href="http://box2d.org/"&gt;Box2D&lt;/a&gt;, open source C++ engine untuk mensimulasikan rigid bodies dalam 2D. Beberapa fitur yang menarik dalam Box2D adalah collision dan aspek physics nya. Kita tidak akan mempelajari Newtonian untuk rigid body disini, tapi kita akan belajar bagaimana menggunakan Box2D codes untuk aplikasi game dengan HTML5/JavaScript atau XAML/JavaScript yang menggunakan WinRT komponen dari Box2D. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;     &lt;br /&gt;&lt;u&gt;1. Membuat WinRT Box2D Layer&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/image_74D7CE7D.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_thumb_4F706BC0.png" width="588" height="267" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Kita akan membuat satu WinRT layer dari original Box2D codes. Buat satu project WinRT Component DLL dengan Visual Studio 11 Express dan namakan dengan &lt;strong&gt;Box2DWinRT&lt;/strong&gt;. Untuk client, buat satu aplikasi Metro (Blank Template) dengan HTML/JavaScript yang memiliki reference ke project Box2DWinRT, beri nama &lt;strong&gt;Box2DHelloJS&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/image_5E3D3249.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_thumb_237AAAD5.png" width="325" height="433" /&gt;&lt;/a&gt;&amp;#160;&amp;#160; &lt;a href="http://geeks.netindonesia.net/blogs/risman/image_0DB5E3DA.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_thumb_33AE24E1.png" width="326" height="432" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Import source codes dari Box2D ke dalam project Box2DWinRT, dengan cara Add –&amp;gt; Existing Item. Sebelumnya buat New Filter di dalam project Box2DWinRT agar susunannya sama dengan struktur folder di source codes Box2D. Jangan panik jika menemukan error saat kompilasi pertama, pastikan bahwa lokasi #include header files anda benar sesuai dengan struktur folder. Setelah berhasil melakukan kompilasi, anda siap untuk membuat WinRT layer.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Selanjutnya kita akan membuat WinRT layer sederhana untuk Box2D. Buka file WinRTComponent.h dan buat ref class sebagai berikut:&lt;/p&gt;  &lt;div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:60bd606f-b4c0-4fb5-a439-828484ce1320" class="wlWriterEditableSmartContent" style="float:none;padding-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#ddd;max-height:300px;overflow:auto;"&gt; &lt;ol start="1" style="background:#ffffff;margin:0 0 0 2.5em;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#pragma&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;once&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#include&lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;lt;Box2D.h&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#include&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;lt;cstdio&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#include&lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;lt;map&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#include&lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;lt;Common/b2Math.h&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;using&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; std;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; Box2DWinRT&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;{&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;public&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;ref&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;class&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;Box2DHelloWorld&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;sealed&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;{&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;public&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;:&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;Platform::&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;String&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;^ CalculatePosition();&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;};&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;}&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Contoh code tersebut hanya memiliki satu class Box2DHelloWorld yang berisi satu method untuk menghitung posisi akhir dari satu vector. Implementasi dari ref class Box2DHelloWorld adalah sebagai berikut:&lt;/p&gt;  &lt;div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:747b04c2-92aa-42b4-855c-e464a3e7e4c3" class="wlWriterEditableSmartContent" style="float:none;padding-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#ddd;max-height:300px;overflow:auto;"&gt; &lt;ol start="1" style="background:#ffffff;margin:0 0 0 2.5em;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// WinRTComponent.cpp&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#include&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;quot;pch.h&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#include&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;quot;WinRTComponent.h&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#include&lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;lt;Common/b2Math.h&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#include&lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;lt;Dynamics/b2World.h&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#include&lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;lt;Dynamics/b2Body.h&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#include&lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;lt;Collision/Shapes/b2PolygonShape.h&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;#include&lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;lt;Dynamics/b2Fixture.h&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;using&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; Box2DWinRT;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;using&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; Platform;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;Platform::&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;String&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;^ Box2DWinRT::&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;Box2DHelloWorld&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;::CalculatePosition()&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;{&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Define the gravity vector.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;b2Vec2&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; gravity(0.0f, -10.0f);&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Construct a world object, which will hold and simulate the rigid bodies.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;b2World&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; world(gravity);&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Define the ground body.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;b2BodyDef&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; groundBodyDef;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;groundBodyDef.position.Set(0.0f, -10.0f);&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Call the body factory which allocates memory for the ground body&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// from a pool and creates the ground box shape (also from a pool).&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// The body is also added to the world.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;b2Body&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;* groundBody = world.CreateBody(&amp;amp;groundBodyDef);&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Define the ground box shape.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;b2PolygonShape&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; groundBox;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// The extents are the half-widths of the box.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;groundBox.SetAsBox(50.0f, 10.0f);&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Add the ground fixture to the ground body.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;groundBody-&amp;gt;CreateFixture(&amp;amp;groundBox, 0.0f);&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Define the dynamic body. We set its position and call the body factory.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;b2BodyDef&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; bodyDef;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;bodyDef.type = &lt;/span&gt;&lt;span style="background:#ffffff;color:#2f4f4f;"&gt;b2_dynamicBody&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;bodyDef.position.Set(0.0f, 4.0f);&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;b2Body&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;* body = world.CreateBody(&amp;amp;bodyDef);&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Define another box shape for our dynamic body.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;b2PolygonShape&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; dynamicBox;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;dynamicBox.SetAsBox(1.0f, 1.0f);&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Define the dynamic body fixture.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;b2FixtureDef&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; fixtureDef;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;fixtureDef.shape = &amp;amp;dynamicBox;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Set the box density to be non-zero, so it will be dynamic.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;fixtureDef.density = 1.0f;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Override the default friction.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;fixtureDef.friction = 0.3f;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Add the shape to the body.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;body-&amp;gt;CreateFixture(&amp;amp;fixtureDef);&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Prepare for simulation. Typically we use a time step of 1/60 of a&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// second (60Hz) and 10 iterations. This provides a high quality simulation&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// in most game scenarios.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;float32&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; timeStep = 1.0f / 60.0f;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;int32&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; velocityIterations = 6;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;int32&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; positionIterations = 2;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;b2Vec2&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; position(0.0f, 0.0f);&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// This is our little game loop.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;for&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; (&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;int32&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; i = 0; i &amp;lt; 60; ++i)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;{&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Instruct the world to perform a single step of simulation.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// It is generally best to keep the time step and iterations fixed.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;world.Step(timeStep, velocityIterations, positionIterations);&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Now print the position and angle of the body.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;position = body-&amp;gt;GetPosition();&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;}&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// return last position&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;Platform::&lt;/span&gt;&lt;span style="background:#ffffff;color:#2b91af;"&gt;String&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;^ stringResult = &lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;quot;x= &amp;quot;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; + position.x + &lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;quot;y= &amp;quot;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; + position.y;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; stringResult;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;}&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Setelah berhasil dikompilasi tanpa error, anda siap untuk membuat client sederhana dalam project &lt;strong&gt;Box2DHelloJS.&lt;/strong&gt; Codes nya seperti ini:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;default.html&lt;/strong&gt;&lt;/p&gt;  &lt;div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1ba3265d-1fae-4eb3-9bf2-3ec3262328e9" class="wlWriterEditableSmartContent" style="float:none;padding-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#ddd;max-height:300px;overflow:auto;"&gt; &lt;ol start="1" style="background:#ffffff;margin:0 0 0 2.5em;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;DOCTYPE&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#ff0000;"&gt;html&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;html&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;head&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;meta&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#ff0000;"&gt;charset&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;title&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;Box2DHelloJS&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;title&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#006400;"&gt;&amp;lt;!-- WinJS references --&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;link&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#ff0000;"&gt;href&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;=&amp;quot;//Microsoft.WinJS.0.6/css/ui-dark.css&amp;quot;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#ff0000;"&gt;rel&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;=&amp;quot;stylesheet&amp;quot;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;script&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#ff0000;"&gt;src&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;=&amp;quot;//Microsoft.WinJS.0.6/js/base.js&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;script&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;script&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#ff0000;"&gt;src&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;=&amp;quot;//Microsoft.WinJS.0.6/js/ui.js&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;script&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#006400;"&gt;&amp;lt;!-- Box2DHelloJS references --&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;link&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#ff0000;"&gt;href&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;=&amp;quot;/css/default.css&amp;quot;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#ff0000;"&gt;rel&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;=&amp;quot;stylesheet&amp;quot;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;script&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#ff0000;"&gt;src&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;=&amp;quot;/js/default.js&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;script&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;head&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;body&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;h1&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;Box2D Get Position&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;h1&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;br&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;h1&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;div&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; &lt;/span&gt;&lt;span style="background:#ffffff;color:#ff0000;"&gt;id&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;=&amp;quot;box2d&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;div&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;h1&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;body&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#ffffff;color:#800000;"&gt;html&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;strong&gt;default.js&lt;/strong&gt;&lt;/p&gt;  &lt;div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b3956130-7050-483a-a642-1a67697b39ce" class="wlWriterEditableSmartContent" style="float:none;padding-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#ddd;max-height:300px;overflow:auto;"&gt; &lt;ol start="1" style="background:#ffffff;margin:0 0 0 2.5em;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// For an introduction to the Blank template, see the following documentation:&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// http://go.microsoft.com/fwlink/?LinkId=232509&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;(&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;function&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; () {&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;quot;use strict&amp;quot;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;var&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; app = WinJS.Application;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;app.onactivated = &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;function&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; (eventObject) {&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;if&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; (eventObject.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;            &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;if&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; (eventObject.detail.previousExecutionState !== Windows.ApplicationModel.Activation.ApplicationExecutionState.terminated) {&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// TODO: This application has been newly launched. Initialize &lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;                &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// your application here.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style="background:#ffffff;color:#000000;"&gt;} &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;else&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; {&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;                &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// TODO: This application has been reactivated from suspension. &lt;/span&gt;&lt;/li&gt; &lt;li&gt;                &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// Restore application state here.&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;            &lt;span style="background:#ffffff;color:#000000;"&gt;}&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;            &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;var&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; positionString = &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; Box2DWinRT.Box2DHelloWorld();&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style="background:#ffffff;color:#000000;"&gt;document.getElementById(&lt;/span&gt;&lt;span style="background:#ffffff;color:#a31515;"&gt;&amp;quot;box2d&amp;quot;&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;).innerText = positionString.calculatePosition();&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;            &lt;span style="background:#ffffff;color:#000000;"&gt;WinJS.UI.processAll();&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;}&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;};&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;app.oncheckpoint = &lt;/span&gt;&lt;span style="background:#ffffff;color:#0000ff;"&gt;function&lt;/span&gt;&lt;span style="background:#ffffff;color:#000000;"&gt; (eventObject) {&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// TODO: This application is about to be suspended. Save any state&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// that needs to persist across suspensions here. You might use the &lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// WinJS.Application.sessionState object, which is automatically&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// saved and restored across suspension. If you need to complete an&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// asynchronous operation before your application is suspended, call&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;        &lt;span style="background:#ffffff;color:#000000;"&gt;&lt;/span&gt;&lt;span style="background:#ffffff;color:#008000;"&gt;// eventObject.setPromise(). &lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;};&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="background:#ffffff;color:#000000;"&gt;app.start();&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="background:#ffffff;color:#000000;"&gt;})();&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hasilnya setelah di debug dalam Simulator adalah sebagai berikut:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/image_47602FD7.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_thumb_218C9A25.png" width="606" height="394" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Dalam Windows 8 Hackathon di Jogjakarta (Mei 16-17), rekan-rekan akan bertemu dengan beberapa game makers untuk berdiskusi lebih lanjut dan bertukar ide dan informasi. Daftarkan diri anda untuk begabung bersama kami di Windows 8 Hackahton 24 jam. Saya berharap tutorial sederhana ini berguna untuk persiapan anda. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_003215EB.jpg"&gt;&lt;img title="Web Banner Windows 8 Hackathon" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_thumb_42C96376.jpg" width="610" height="92" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cheers – Risman Adnan &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/risman/archive/2012/05/06/c-cx-tutorial-2-3rd-party-library.aspx&amp;amp;subject=C++/Cx Tutorial 2: 3rd Party Library" 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/risman/archive/2012/05/06/c-cx-tutorial-2-3rd-party-library.aspx&amp;amp;t=C%2b%2b%2fCx+Tutorial+2%3a+3rd+Party+Library" target="_blank" title="Submit C++/Cx Tutorial 2: 3rd Party Library 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/risman/archive/2012/05/06/c-cx-tutorial-2-3rd-party-library.aspx&amp;amp;title=C%2b%2b%2fCx+Tutorial+2%3a+3rd+Party+Library" target="_blank" title="Submit C++/Cx Tutorial 2: 3rd Party Library 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/risman/archive/2012/05/06/c-cx-tutorial-2-3rd-party-library.aspx&amp;amp;phase=2" target="_blank" title="Submit C++/Cx Tutorial 2: 3rd Party Library 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/risman/archive/2012/05/06/c-cx-tutorial-2-3rd-party-library.aspx&amp;amp;title=C%2b%2b%2fCx+Tutorial+2%3a+3rd+Party+Library" target="_blank" title="Add C++/Cx Tutorial 2: 3rd Party Library 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=193443" width="1" height="1"&gt;</description></item><item><title>The amazing C++/CX</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/06/the-amazing-c-cx.aspx</link><pubDate>Sat, 05 May 2012 18:11:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193442</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;WinRT berdiri diatas COM yang tetap memiliki mekanisme reference counting. Tetapi WinRT tidaklah memiliki kerumitan yang dimiliki oleh COM sebelumnya. Hal ini dimungkinkan dengan c++/cx yang merupkan penambahan fitur terhadap terhadap bahasa C++. Penambahan tersebut memberikan kita kemudahan untuk mengkonsumsi dan membuat tipe WinRT kita sendiri. 
&lt;/p&gt;&lt;p&gt;Saya membuat artikela dalam bentuk pdf karena mungkin terlalu panjang untuk jadi satu postingan. Silahkan di unduh pada link dibawah ini. 
&lt;/p&gt;&lt;p&gt;&lt;a href="http://weltam.files.wordpress.com/2012/05/pengenalan-c_cx.pdf"&gt;Pengenalan C++/CX&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Tinggal 10 hari lagi kita akan melangsungkan perjuangan pada event &lt;strong&gt;Microsoft Developer Conference 2012: Windows 8 Hackathon. &lt;/strong&gt;Saya yakin rekan developer sekalian sudah melakukan persiapan untuk mengharumkan nama bangsa kita ini. Bagi yang belum melakukan registrasi silahkan melakukanya sekarang. Jangan sia-siakan kesempatan ini. 
&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;&lt;img width="713" height="107" title="Web Banner Windows 8 Hackathon" style="margin:5px 5px 5px 0px;border:0px currentColor;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none;" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_1E86F88B.jpg" border="0" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Majukan negara kita dengan karya terbaik anak bangsa.&lt;/p&gt;
&lt;p&gt;Go Developer Indonesia !!&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/welly_tambunan/archive/2012/05/06/the-amazing-c-cx.aspx&amp;amp;subject=The amazing C++/CX" 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/welly_tambunan/archive/2012/05/06/the-amazing-c-cx.aspx&amp;amp;t=The+amazing+C%2b%2b%2fCX" target="_blank" title="Submit The amazing C++/CX 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/welly_tambunan/archive/2012/05/06/the-amazing-c-cx.aspx&amp;amp;title=The+amazing+C%2b%2b%2fCX" target="_blank" title="Submit The amazing C++/CX 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/welly_tambunan/archive/2012/05/06/the-amazing-c-cx.aspx&amp;amp;phase=2" target="_blank" title="Submit The amazing C++/CX 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/welly_tambunan/archive/2012/05/06/the-amazing-c-cx.aspx&amp;amp;title=The+amazing+C%2b%2b%2fCX" target="_blank" title="Add The amazing C++/CX 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=193442" width="1" height="1"&gt;</description></item><item><title>C++/Cx Tutorial 1:  Fundamental Type, Class, dan Property</title><link>http://geeks.netindonesia.net/blogs/risman/archive/2012/05/06/c-cx-tutorial-1-fundamental-type-class-dan-property.aspx</link><pubDate>Sat, 05 May 2012 17:56:29 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193441</guid><dc:creator>Risman Adnan Mattotorang</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;C++/Cx (Component Extensions) adalah extension dari Microsoft C++ compilers yang memungkinkan C++ programmers untuk menulis program di atas WinRT. Sintaks dan library-nya berbasis model pemrograman WinRT (COM) dan penting untuk memahami bahwa walaupun C++/Cx mirip sekali dengan C++/CLI, infrastrukturnya sangat berbeda dengan CLR, karena compiler C++/Cx akan menghasilkan native code (x64, ARM, tergantung target device), bukan .NET assembly. &lt;/p&gt;  &lt;p&gt;Penggunaan C++/Cx untuk Metro style apps, biasanya untuk:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Membuat DLL (Windows Runtime components) yang dapat digunakan oleh Metro style apps yang ditulis dengan JavaScript+HTML atau C#+XAML. &lt;/li&gt;    &lt;li&gt;Membuat logic aplikasi Metro style, informasi kultural dan sensor-based data, dan menggunakan XAML untuk UI.&lt;/li&gt;    &lt;li&gt;Membuat game, graphics, hardware-dependent, intensif komputasi untuk high performance app, seperti DirectX, Parallel Patterns Library, dan C++ AMP.&lt;/li&gt;    &lt;li&gt;Reuse code/libraries yang pernah ditulis dengan C++. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Artikel ini akan membahas bahasa dan model pemrograman C++/Cx. Saya berasumsi bahwa pembaca pernah mengenal bahasa pemrograman C++ sebelumnya.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;C++/Cx Fundamental Type &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Setelah memberi contoh “Hello World”, biasanya semua buku pemrograman membahas type. Berikut ini adalah &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br212455(v=vs.110).aspx"&gt;quick reference&lt;/a&gt; untuk type mapping dari Standard C++ ke C++/Cx. Saya tidak akan membahas semua, hanya yang terkait. Jangan buang buku C++ anda dirumah karena masih akan sangat berguna. C++/CX mendukung type system yang didefinisikan dalam arsitektur WinRT yang mendukung data types dan functions yang dapat dipanggil dari bahasa pemrograman lainnya seperti C#, JS dan VB. Perbandingan fundamental type di Standard C++ dan C++/Cx dapat anda peroleh &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br212455(v=vs.110).aspx"&gt;disini&lt;/a&gt;. Beberapa type yang baru seperti:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/image_3D0ABEF6.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_thumb_3515AD45.png" width="598" height="224" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Type lainnya seperti Array, Anum, Class, Struct, dan Interface juga didukung dalam C++/Cx, tetapi yang menarik adalah, C++/Cx mendukung &lt;strong&gt;delegate&lt;/strong&gt; untuk menggantikan function pointer, &lt;strong&gt;event, &lt;/strong&gt;collection dari event handlers (delegate), &lt;strong&gt;property&lt;/strong&gt; dan &lt;strong&gt;generics&lt;/strong&gt;. Fitur-fitur ini membuat pemrograman dalam C++/Cx seperti layaknya dalam C# dan VB.NET. &lt;/p&gt;  &lt;p&gt;Seperti biasa, jangan menghapal fundamental types, yang perlu anda mengerti adalah konsep penggunaannya dan jika anda cukup “geeky” pelajari internal works nya dengan mempelajari WinRT metadata-nya via ILDASM. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Class dan Structure&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;C++/Cx mendukung user-defined reference &lt;strong&gt;classes&lt;/strong&gt; dan &lt;strong&gt;structs&lt;/strong&gt; seperti halnya C++ standard. Akan tetapi, accessibility public dari type ini dapat dilewatkan melalui WinRT komponen dan apps, sementara standard C++ classes dan structs tidak bisa. Ini yang menjadi bagian yang sangat menarik. Banyak sekali physics engine, game engine, numerical library, dan library lainnya yang masih ditulis dengan C++, yang tentu saja dapat digunakan dengan modern UX menggunakan XAML atau HTML5. &lt;/p&gt;  &lt;p&gt;Untuk mendeklarasikan class (ref class), gunakan ref class contextual keyword. Suatu ref class dapat berisi function yang bersifat public, protected, dan private , data members, dan nested classes. Secara default, accessibility adalah &lt;strong&gt;private&lt;/strong&gt;. Suatu reference struct (ref struct) sama seperti ref class, tetapi ref struct mendeklarasikan suatu ref class yang secara default bersifat &lt;strong&gt;public&lt;/strong&gt; accessibility.    &lt;br /&gt;&amp;#160; &lt;br /&gt;Kita dapat meninstansiasi ref class atau ref struct jika memiliki paling tidak satu implicit atau explicit public constructor. Kita juga dapat dengan mudah menggabungkan standard C++ types dan functions dalam suatu ref class. Meskipun demikian dalam WinRT komponen, kita hanya dapat melewatkan &lt;strong&gt;public ref classes&lt;/strong&gt;, &lt;strong&gt;ref structs&lt;/strong&gt;, &lt;strong&gt;value structs&lt;/strong&gt;, dan &lt;strong&gt;value classes&lt;/strong&gt;.    &lt;br /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sintaks untuk deklarasi ref class dan ref struct adalah sebagai berikut. Jika type tersebut public, harus di sealed agar tidak dapat di inherit. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;     &lt;br /&gt;&lt;em&gt;&lt;font color="#0000ff"&gt;ref class identifier sealed{}&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;font color="#0000ff"&gt;ref struct identifier sealed{}&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Contoh penulisan deklarasi untuk &lt;a href="http://msdn.microsoft.com/id-id/jj126250"&gt;HackathonParticipant&lt;/a&gt; ref class adalah:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;#pragma once&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;using namespace std;     &lt;br /&gt;#include&amp;lt;map&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;namespace CPPCX01     &lt;br /&gt;{      &lt;br /&gt;ref class HackathonParticipant sealed      &lt;br /&gt;{      &lt;br /&gt;public:      &lt;br /&gt;&amp;#160; typedef Windows::Foundation::Collections::IMapView&amp;lt;Platform::String^, Platform::String^&amp;gt; NumbersView;      &lt;br /&gt;&amp;#160; HackathonParticipant(Platform::String^ name);      &lt;br /&gt;&amp;#160; void AddPhoneNumber(Platform::String^ type, Platform::String^ number);      &lt;br /&gt;&amp;#160; &lt;strong&gt;property&lt;/strong&gt; NumbersView^ PhoneNumbers      &lt;br /&gt;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; NumbersView^ get();      &lt;br /&gt;&amp;#160; }      &lt;br /&gt;private:      &lt;br /&gt;&amp;#160; Platform::String^ name_;      &lt;br /&gt;&amp;#160; std::map&amp;lt;Platform::String^, Platform::String^&amp;gt; numbers_;      &lt;br /&gt;};&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Dalam ref class HackathonParticipant didefinisikan type NumbersViews dari IMapView interface untuk menampung property PhoneNumbers dari peserta Hackathon di jogja. Perhatikan bahwa type standard C++ &lt;strong&gt;std::map&lt;/strong&gt; digunakan dalam private members, dan WinRT C++/Cx IMapView interface digunakan dalam public interface. Juga perhatikan bagaimana handle-to-object modifier (^) digunakan dalam deklarasi reference type. &lt;/p&gt;  &lt;p&gt;Dalam WinRT type system, ref class dan and ref struct adalah reference type. Reference type diimplementasikan sebagai reference-counted pointers ke WinRT objects (COM). C++/CX secara otomatis merubah reference count (ref count) dari suatu object ketika di instantiasi di copy, di set ke null atau lainnya. Ketika reference count menjadi nol, object destructor dipanggil seperti halnya dalam program C++ lain. Tidak ada mekanisme GC dalam C++/CX   &lt;br /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;Contoh implementasi ref class HackathonParticipant akan menjadi seperti berikut: &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;// &lt;/font&gt;&lt;font color="#0000ff"&gt;WinRTComponent.cpp     &lt;br /&gt;#include &amp;quot;pch.h&amp;quot;      &lt;br /&gt;#include &amp;quot;WinRTComponent.h&amp;quot;      &lt;br /&gt;#include&amp;lt;map&amp;gt;      &lt;br /&gt;#include&amp;lt;collection.h&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;using namespace CPPCX01;     &lt;br /&gt;using namespace Platform;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;HackathonParticipant::HackathonParticipant(Platform::String^ name): name_(name) { }     &lt;br /&gt;void HackathonParticipant::AddPhoneNumber(Platform::String^ type, Platform::String^ number)      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160; numbers_[type] = number;      &lt;br /&gt;}      &lt;br /&gt;HackathonParticipant::NumbersView^ HackathonParticipant::PhoneNumbers::get()      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return ref new Platform::Collections::MapView&amp;lt;Platform::String^, Platform::String^&amp;gt;(numbers_);      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;Untuk menggunakan class tersebut dalam C++,&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;using namespace Platform;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;HackathonParticipant^ p = &lt;strong&gt;ref new&lt;/strong&gt; HackathonParticipant(&amp;quot;Risman Adnan&amp;quot;);      &lt;br /&gt;p-&amp;gt;AddPhoneNumber(&amp;quot;Home&amp;quot;, &amp;quot;021-78880000&amp;quot;);      &lt;br /&gt;p-&amp;gt;AddPhoneNumber(&amp;quot;Work&amp;quot;, &amp;quot;021-25518100&amp;quot;);      &lt;br /&gt;String^ workphone = p-&amp;gt;PhoneNumbers-&amp;gt;Lookup(&amp;quot;Work&amp;quot;);&lt;/font&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;Pada contoh tersebut kita gunakan &lt;strong&gt;ref new&lt;/strong&gt; expression untuk membuat reference-counted WinRT object. Kita menggunakan simbol ^ symbol sebagai pengganti pointer de-reference operator (*) ketika mendeklarasikan variable, tetapi menggunakan operator –&amp;gt; untuk mengakses anggota object. Kita tidak memanggil delete secara eksplisit pada object karena WinRT secara otomatis menghapus object ketika copy terakhir dimemory menjadi out of scope. Pada low level, WinRT object pada dasarnya adalah COM object yang dimiliki oleh suatu “&lt;strong&gt;smart pointer&lt;/strong&gt;”.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Standard C++ library (STL) dan Parallel pattern library dapat digunakan dengan baik di C++/Cx. Sebagian dari Win32 masih dapat digunakan, tetapi ada beberapa APIs yang tidak relevan di WinRT. Untuk 3rd party library atau library anda sendiri, perlu diperhatikan beberapa Win32 Call yang tidak relevan di WinRT object. Daftar Win32 API yang dapat digunakan pada Metro style app dapat diperoleh &lt;a href="http://msdn.microsoft.com/library/windows/apps/br205757.aspx"&gt;disini&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Pada Windows 8 Hackathon yang akan diadakan di Jogjakarta Mei 16-17, rekan-rekan akan belajar lebih banyak mengenai WinRT dan C++/Cx. Untuk mendaftarkan diri anda, klik gambar berikut ini. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://aka.ms/mdcjogja"&gt;&lt;img title="Web Banner Windows 8 Hackathon" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_6E53C64D.jpg" width="691" height="104" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Semoga tutorial ini bermanfaat. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ciao – Risman Adnan&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/risman/archive/2012/05/06/c-cx-tutorial-1-fundamental-type-class-dan-property.aspx&amp;amp;subject=C++/Cx Tutorial 1:  Fundamental Type, Class, dan Property" 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/risman/archive/2012/05/06/c-cx-tutorial-1-fundamental-type-class-dan-property.aspx&amp;amp;t=C%2b%2b%2fCx+Tutorial+1%3a++Fundamental+Type%2c+Class%2c+dan+Property" target="_blank" title="Submit C++/Cx Tutorial 1:  Fundamental Type, Class, dan Property 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/risman/archive/2012/05/06/c-cx-tutorial-1-fundamental-type-class-dan-property.aspx&amp;amp;title=C%2b%2b%2fCx+Tutorial+1%3a++Fundamental+Type%2c+Class%2c+dan+Property" target="_blank" title="Submit C++/Cx Tutorial 1:  Fundamental Type, Class, dan Property 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/risman/archive/2012/05/06/c-cx-tutorial-1-fundamental-type-class-dan-property.aspx&amp;amp;phase=2" target="_blank" title="Submit C++/Cx Tutorial 1:  Fundamental Type, Class, dan Property 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/risman/archive/2012/05/06/c-cx-tutorial-1-fundamental-type-class-dan-property.aspx&amp;amp;title=C%2b%2b%2fCx+Tutorial+1%3a++Fundamental+Type%2c+Class%2c+dan+Property" target="_blank" title="Add C++/Cx Tutorial 1:  Fundamental Type, Class, dan Property 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=193441" width="1" height="1"&gt;</description></item><item><title>WinRT is COM "done right"</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/04/winrt-is-com-quot-done-right-quot.aspx</link><pubDate>Fri, 04 May 2012 14:14:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193439</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Jika ada satu hal yang bisa saya sampaikan kepada C++ developer dengan kehadiran WinRT adalah... C++ Is Back. It&amp;#39;s Show time. :). C++ 11 dan C++/CX akan membuat kehidupan kita sebagai developer c++ lebih mudah lagi tanpa meninggalkan dunia native dan performance. 
&lt;/p&gt;&lt;p&gt;Pada saat ini sudah banyak terjadi perubahan terhadap c++. Banyak hal-hal yang baru telah terjadi dengan c++. Orang mungkin menganggap bahwa c++ merupakan bahasa pemrograman yang sulit untuk dipelajari karena berbagai konsep yang menyeramkan seperti pointer, memory management, RAII. Sebenarnya hal tersebut tidak perlu dilakukan secara manual lagi. C++ 11 telah merubah semua hal tersebut dan menjadikan c++ sama dengan bahasa pemrograman modern lainnya.
&lt;/p&gt;&lt;p&gt;Sekarang sudah saatnya kita melupakan hal-hal buruk yang pernah kita dengar mengenai c++. Modern c++ merupakan bahasa pemrograman yang bersih, aman dan cepat. Tentu saja hal tersebut dapat dicapai jika kita menerapkan kaidah-kaidah pemrograman c++ yang baru. Anda dapat melihat perubahan pada c++ 11 pada artikel sebelumnya.
&lt;/p&gt;&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/03/modern-c-not-your-granddaddy-c.aspx"&gt;Modern C++ - Not Your Granddaddy C++&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;&lt;strong&gt;WinRT Architecture
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Pada bagian ini saya akan fokus pada C++ yang digunakan untuk pemrograman WinRT. Berikut ini adalah arsitektur dari Windows 8. Meskipun banyak perdebatan dari arsitektur dari sisi kelengkapannya, anda perlu memahami bahwa pada dunia desktop tidak ada perubahan sama sekali.  Pada arsitektur tersebut juga tidak ditampilkan DirectX yang bisa diakses dengan c++.
&lt;/p&gt;&lt;p&gt;&lt;img width="1184" height="700" align="" style="width:717px;height:438px;" alt="" src="http://weltam.files.wordpress.com/2012/05/winrt-architecture.jpg" border="0" hspace="-1" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Kita pasti sering mendengar kata-kata atau slogan &amp;quot;fast and fluid&amp;quot; dalam ruang lingkup Windows 8. Jika anda mendengar kata-kata fast maka tidak asing lagi bahwa hal tersebut terkait dengan performance. Dan tidak ada bahasa lain yang mencintai kata fast and fluid lebih dari c++ sejak lama. Dan tidak ada developer yang lebih mengerti kinerja dari windows ketimbang developer c++. :)
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;C++ dan MetroStyle
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Ada beberapa skenario dalam development menggunakan c++. 
&lt;/p&gt;&lt;p&gt;Anda dapat menggunakan HTML 5 + JS untuk bagian interface (front end) dan c++ WinRT component untuk menangani logic aplikasi. WinRT component seperti yang telah dijelaskan pada tutorial Pak Risman dapat digunakan untuk High performance calculation dan logic. 
&lt;/p&gt;&lt;p&gt;Anda juga dapat menggunakan XAML dengan code behind c++. Jika anda ingin membuat games maka anda juga dapat menggunakan DirectX untuk membuatnya. Dimana kita sama-sama tau bahwa DirectX diakses dengan menggunakan C++. 
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;C++ untuk Windows Runtime
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Anda pasti sudah akrab dengan COM programming yang merupakan core dari pemrograman Windows. Mungkin anda juga sudah terbiasa dengan kerumitan yang ada di dalamnya. Banyak orang yang beranggapan bahwa COM merupakan dunia yang sangat menyeramkan. Tetapi tidak bisa dipungkiri bahwa sampai kapan pun COM tidak akan pernah punah selama Windows masih ada. :) 
&lt;/p&gt;&lt;p&gt;Konsep yang dianut oleh COM sebenarnya bagus yaitu Programming to Interface. COM menganut interface oriented programming. Sementara bagi teman-teman yang sudah terbiasa dengan Object oriented programming ini mungkin sulit diterima. Sehingga menimbulkan kesan yang tidak menyenangkan. 
&lt;/p&gt;&lt;p&gt;Apakah anda pernah membuat program untuk mengakses Camera dengan menggunakan c++ dan Win32 ? Ya . Anda bisa menggunakan DirectShow atau Windows Media Foundation.
&lt;/p&gt;&lt;p&gt;Berikut dua potongan code yang akan mengingatkan kita pada Inisialisasi COM, pengecekan HRESULT dsb.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="526" height="400" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/dshow1.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Perhatikan kita harus selalu melakukan pengecekan HRESULT apakah gagal atau berhasil. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="598" height="307" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/dshow2.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Jangan lupa kita juga harus melakukan release terhadap object yang telah kita gunakan. Kita melakukan management sendiri untuk resource. Tentu saja kita bisa menggunakan CComPtr dari ATL. Tetapi tetap saja banyak code boiler plate yang harus kita buat. 
&lt;/p&gt;&lt;p&gt;Berikut saya akan mendemokan kepada anda betapa mudahnya membuat aplikasi yang melakukan akses terhadap WebCam dengan WinRT menggunakan c++. Pada contoh program berikut ini kita akan membuat suatu aplikasi sederhana akan mengambil gambar dari kamera dan hasilnya akan ditampilkan ke layar. 
&lt;/p&gt;&lt;p&gt;Kita memulai dengan membuat project baru C++ MetroStyle
&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Segoe UI;font-size:9pt;"&gt;
&amp;nbsp;	&lt;img width="951" height="578" align="" style="width:814px;height:510px;" alt="" src="http://weltam.files.wordpress.com/2012/05/createnewproject.jpg" border="0" hspace="-1" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Segoe UI;font-size:9pt;"&gt;Untuk tutorial ini kita hanya perlu satu button dan satu image saja. Buka BlankPage.xaml dan tambahkan satu button dan satu image pada halaman BlankPage &lt;/span&gt;tersebut.&lt;span style="color:black;font-family:Segoe UI;font-size:9pt;"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Segoe UI;font-size:9pt;"&gt;
&amp;nbsp;	&lt;img width="747" height="355" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/button-image.jpg" border="0" hspace="-1" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Segoe UI;font-size:9pt;"&gt;Berikan nama myImage untuk image control tersebut, karena kita akan merujuknya dari code.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Segoe UI;font-size:9pt;"&gt;
&amp;nbsp;	&lt;img width="791" height="151" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/beri-nama-myimage.jpg" border="0" hspace="-1" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-size:10pt;"&gt;Kita tambahkan event handler terhadap page tersebut dengan melakukan double click pada button tersebut. Kita akan diarahkan untuk mengisi event handler yang kosong berikut. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Segoe UI;font-size:9pt;"&gt;
&amp;nbsp;	&lt;img width="786" height="117" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/event-handler-kosong.jpg" border="0" hspace="-1" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Kita akan menggunakan task maka kita harus menginclude header ppltasks.h. Tambahkan code berikut pada bagian atas BlankPage.xaml.cpp
&lt;/p&gt;&lt;p&gt;&lt;img width="438" height="183" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/pplinclude.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Hal ini dibutuhkan karena kita akan menggunakan task dari Parallel Pattern Library. Saya akan menjelaskan fungsi dari task ini lebih lanjut mengenai hal ini pada bagian berikutnya. Tambahkan juga namespace berikut ini karena kita akan menggunakan kelas dan struct yang ada di namespace tersebut.
&lt;/p&gt;&lt;p&gt;&lt;img width="428" height="284" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/add-using.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Sekarang kita isi event handler tersebut dengan code berikut. 
&lt;/p&gt;&lt;p&gt;&lt;img width="761" height="267" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/isi-event-handler.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Sangat singkat sekali bukan ? Saya akan menjelaskan apa maksud code tersebut kepada anda. Tetapi sebelumnya kita pastikan dulu bahwa semuanya berjalan lancar dengan menjalankannya. Tekan saja F5 untuk menjalankannya. Akan ditampilkan halaman berikut dan langsung saja klik buttonnya untuk melihat hasilnya.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="266" height="202" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/kili.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Wah.. tapi apa yang terjadi ? Kita diberikan pesan bahwa kita harus memiliki permission untuk menggunakan kamera.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="1303" height="259" align="" style="width:525px;height:96px;" alt="" src="http://weltam.files.wordpress.com/2012/05/settings.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Jika anda perhatikan pada kelas yang kita gunakan yaitu CameraCaptureUI, kelas tersebut membutuhkan permission yang harus kita deklarasikan terlebih dahulu. Hal ini diperlukan agar user merasa aman dalam penggunaan aplikasi kita. Kita tidak dapat mengakses jika tidak mempermisikannya terlebih dahulu. :)
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="508" height="142" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/cameraui-caps.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Anda dapat lihat bahwa akses diperlukannya adalah webcam dan microphone, disini kita hanya menggunakan kamera saja maka kita akan memberikan akses terhadap webcam. Kita mendeklarasikannya pada manifest dengan nama file Package.appxmanifest. Perhatikan solution explorer anda. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="282" height="337" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/manifest.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Silahkan double click file tersebut dan akan ditampilkan form berikut.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="493" height="545" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/capabilities.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Pilih tab Capabilities dan centang WebCam untuk memberikan akses terhadap aplikasi kita. Sekarang masalah sudah selesai. Silahkan anda menjalankan lagi dengan F5. Tekan button tersebut dan kepada user akan ditanyakan mengenai akses tersebut. Kita pilih Allow.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="1366" height="157" align="" style="width:737px;height:101px;" alt="" src="http://weltam.files.wordpress.com/2012/05/ask-permission.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Webcam akan diaktifkan dan kita akan diberikan tampilan user interface sebagai berikut. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="587" height="502" align="" style="width:376px;height:337px;" alt="" src="http://weltam.files.wordpress.com/2012/05/camera-take1.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Untuk mengambil foto anda tinggal melakukan double click pada kamera tersebut. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="538" height="468" align="" style="width:377px;height:325px;" alt="" src="http://weltam.files.wordpress.com/2012/05/double-klik.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Anda dapat melakukan crop, ok atau pengambilan kembali. Disini saya akan langsung Ok kan saja. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="422" height="390" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/mypics.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Maka foto yang anda baru saja ambil akan ditampilkan pada control image yang telah kita buat barusan. Mudah sekali bukan ? Dengan sedikit code, tanpa kerumitan COM kita membuat aplikasi yang memanfaatkan kamera. Yang saya tekankan kepada anda adalah code tersebut adalah native code. Kita mendapatkan kemudahan dari WinRT yang telah menangani COM dibelakang layar tanpa mengorbankan performance. 
&lt;/p&gt;&lt;p&gt;Tidak ada garbage collection yang dilibatkan, tetap sama seperti COM yang terdahulu memanfaatkan reference counting. Hanya saja sekarng kita tidak lagi menanganinya sendiri. Compiler sudah mengenerate code untuk hal tersebut untuk kita. Peranan dari c++/cx dalam hal ini sangatlah besar. Saya akan bahas pada bagian berikutnya. 
&lt;/p&gt;&lt;p&gt;Bagaimana developer c++ ? Apakah anda semakin bersemangat dengan kemudahan pengembangan aplikasi MetroStyle ini ?
&lt;/p&gt;&lt;p&gt;Saya menunggu kehadiran anda di event terbesar berikut ini &lt;/p&gt;&lt;p&gt;
&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;&lt;img width="713" height="107" title="Web Banner Windows 8 Hackathon" style="margin:5px 5px 5px 0px;border:0px currentColor;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none;" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_1E86F88B.jpg" border="0" /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Selamat mempersiapkan diri.
&lt;/p&gt;&lt;p&gt;Go Native. C++ Rocks.&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/welly_tambunan/archive/2012/05/04/winrt-is-com-quot-done-right-quot.aspx&amp;amp;subject=WinRT is COM &amp;quot;done right&amp;quot;" 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/welly_tambunan/archive/2012/05/04/winrt-is-com-quot-done-right-quot.aspx&amp;amp;t=WinRT+is+COM+%26quot%3bdone+right%26quot%3b" target="_blank" title="Submit WinRT is COM &amp;quot;done right&amp;quot; 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/welly_tambunan/archive/2012/05/04/winrt-is-com-quot-done-right-quot.aspx&amp;amp;title=WinRT+is+COM+%26quot%3bdone+right%26quot%3b" target="_blank" title="Submit WinRT is COM &amp;quot;done right&amp;quot; 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/welly_tambunan/archive/2012/05/04/winrt-is-com-quot-done-right-quot.aspx&amp;amp;phase=2" target="_blank" title="Submit WinRT is COM &amp;quot;done right&amp;quot; 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/welly_tambunan/archive/2012/05/04/winrt-is-com-quot-done-right-quot.aspx&amp;amp;title=WinRT+is+COM+%26quot%3bdone+right%26quot%3b" target="_blank" title="Add WinRT is COM &amp;quot;done right&amp;quot; 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=193439" width="1" height="1"&gt;</description></item><item><title>Twitter and the painful OAuth API</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2012/05/04/twitter-and-the-painful-oauth-api.aspx</link><pubDate>Fri, 04 May 2012 08:16:59 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193437</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="2"&gt;I Finally manage to get it to works. My previous manual code does not work.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Twitter will give you painful 401. but thanks to TweetSharp , I can get it up and running in just 10 minutes&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Cool TweetSharp&lt;/font&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/cipto/archive/2012/05/04/twitter-and-the-painful-oauth-api.aspx&amp;amp;subject=Twitter and the painful OAuth API" 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/cipto/archive/2012/05/04/twitter-and-the-painful-oauth-api.aspx&amp;amp;t=Twitter+and+the+painful+OAuth+API" target="_blank" title="Submit Twitter and the painful OAuth API 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/cipto/archive/2012/05/04/twitter-and-the-painful-oauth-api.aspx&amp;amp;title=Twitter+and+the+painful+OAuth+API" target="_blank" title="Submit Twitter and the painful OAuth API 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/cipto/archive/2012/05/04/twitter-and-the-painful-oauth-api.aspx&amp;amp;phase=2" target="_blank" title="Submit Twitter and the painful OAuth API 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/cipto/archive/2012/05/04/twitter-and-the-painful-oauth-api.aspx&amp;amp;title=Twitter+and+the+painful+OAuth+API" target="_blank" title="Add Twitter and the painful OAuth API 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=193437" width="1" height="1"&gt;</description></item><item><title>How to Upgrade from CRM 4 to 2011</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2012/05/04/how-to-upgrade-from-crm-4-to-2011.aspx</link><pubDate>Fri, 04 May 2012 05:49:05 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193436</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;ul&gt;   &lt;li&gt;&lt;font size="2"&gt;·First you need to upgrade from crm 4 to 2011. The current live instance. &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;After that Put all the changes to unmanaged Solution, and start using Solution for all customization.&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;ISV can be upgraded succesfully, &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg309571.aspx"&gt;&lt;font size="2"&gt;Detail&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Javascript you have to use a converter tool. Js changed alot in 2011 and will break the 4th version.&lt;/font&gt;&lt;a href="http://crm2011scriptconvert.codeplex.com/"&gt;&lt;font size="2"&gt;Tool&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Yes avoid Database changes. Just get on step1 changes into solution&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Plugin from Upgrade result to Solution&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;(Optional,if you don’t wont to change the code and Just a reference issue) &lt;a href="http://pogo69.wordpress.com/2011/03/31/microsoft-crm-sdk-dll-v4-0-vs-v5-0-crm-4-0-sdk-library-redirection-to-crm-2011/"&gt;Change the machine.config&lt;/a&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;Fix what Breaks&lt;/font&gt;&lt;/li&gt; &lt;/ul&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/cipto/archive/2012/05/04/how-to-upgrade-from-crm-4-to-2011.aspx&amp;amp;subject=How to Upgrade from CRM 4 to 2011" 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/cipto/archive/2012/05/04/how-to-upgrade-from-crm-4-to-2011.aspx&amp;amp;t=How+to+Upgrade+from+CRM+4+to+2011" target="_blank" title="Submit How to Upgrade from CRM 4 to 2011 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/cipto/archive/2012/05/04/how-to-upgrade-from-crm-4-to-2011.aspx&amp;amp;title=How+to+Upgrade+from+CRM+4+to+2011" target="_blank" title="Submit How to Upgrade from CRM 4 to 2011 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/cipto/archive/2012/05/04/how-to-upgrade-from-crm-4-to-2011.aspx&amp;amp;phase=2" target="_blank" title="Submit How to Upgrade from CRM 4 to 2011 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/cipto/archive/2012/05/04/how-to-upgrade-from-crm-4-to-2011.aspx&amp;amp;title=How+to+Upgrade+from+CRM+4+to+2011" target="_blank" title="Add How to Upgrade from CRM 4 to 2011 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=193436" width="1" height="1"&gt;</description></item><item><title>BlogEngine .NET how to Create Blog automatically for each user</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2012/05/04/blogengine-net-how-to-create-blog-automatically-for-each-user.aspx</link><pubDate>Fri, 04 May 2012 05:46:18 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193435</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="2"&gt;First have the tables in 1 database. after that Change the Services in BlogEngine.NET source&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Add this to the services&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;AppCode\Blog&lt;/font&gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;   &lt;pre id="codeSnippet" class="csharpcode"&gt;[WebMethod]&lt;br /&gt;       &lt;span class="kwrd"&gt;public&lt;/span&gt; JsonResponse SaveBlogAsAdmin(&lt;br /&gt;           &lt;span class="kwrd"&gt;string&lt;/span&gt; blogId,&lt;br /&gt;           &lt;span class="kwrd"&gt;string&lt;/span&gt; copyFromExistingBlogId,&lt;br /&gt;           &lt;span class="kwrd"&gt;string&lt;/span&gt; blogName,&lt;br /&gt;           &lt;span class="kwrd"&gt;string&lt;/span&gt; hostname,&lt;br /&gt;           &lt;span class="kwrd"&gt;bool&lt;/span&gt; isAnyTextBeforeHostnameAccepted,&lt;br /&gt;           &lt;span class="kwrd"&gt;string&lt;/span&gt; storageContainerName,    &lt;br /&gt;           &lt;span class="kwrd"&gt;string&lt;/span&gt; virtualPath,&lt;br /&gt;           &lt;span class="kwrd"&gt;bool&lt;/span&gt; isActive,&lt;span class="kwrd"&gt;string&lt;/span&gt; username,&lt;span class="kwrd"&gt;string&lt;/span&gt; password)&lt;br /&gt;       {&lt;br /&gt;           Security.ImpersonateUser(username, password);&lt;br /&gt;           Security.DemandUserHasRight(Rights.AccessAdminPages, &lt;span class="kwrd"&gt;true&lt;/span&gt;);       &lt;br /&gt;           Guid existingId = Guid.Empty;&lt;br /&gt;           Blog blog = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;           &lt;span class="kwrd"&gt;if&lt;/span&gt; (!&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(blogId) &amp;amp;&amp;amp; blogId.Length == 36)&lt;br /&gt;           {&lt;br /&gt;               existingId = &lt;span class="kwrd"&gt;new&lt;/span&gt; Guid(blogId);&lt;br /&gt;               blog = Blog.GetBlog(existingId);&lt;br /&gt;           }&lt;br /&gt;           &lt;span class="kwrd"&gt;string&lt;/span&gt; message;&lt;br /&gt;&lt;br /&gt;           &lt;span class="kwrd"&gt;if&lt;/span&gt; (blog == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;           {&lt;br /&gt;               &lt;span class="rem"&gt;// new blog&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;               blog = Blog.CreateNewBlog(copyFromExistingBlogId, blogName, hostname, isAnyTextBeforeHostnameAccepted, storageContainerName, virtualPath, isActive, &lt;span class="kwrd"&gt;out&lt;/span&gt; message);&lt;br /&gt;&lt;br /&gt;               &lt;span class="kwrd"&gt;if&lt;/span&gt; (blog == &lt;span class="kwrd"&gt;null&lt;/span&gt; || !&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(message))&lt;br /&gt;               {&lt;br /&gt;                   &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; JsonResponse() { Message = (message ?? &lt;span class="str"&gt;&amp;quot;Failed to create the new blog.&amp;quot;&lt;/span&gt;) };&lt;br /&gt;               }&lt;br /&gt;&lt;br /&gt;               &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; JsonResponse() { Success = &lt;span class="kwrd"&gt;true&lt;/span&gt;, Message = blog.Id.ToString()};&lt;br /&gt;           }&lt;br /&gt;           &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;           {&lt;br /&gt;               &lt;span class="rem"&gt;// update to an existing blog.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;               blog.Name = blogName;&lt;br /&gt;&lt;br /&gt;               blog.VirtualPath = virtualPath;&lt;br /&gt;               blog.IsActive = isActive;&lt;br /&gt;               blog.Hostname = hostname;&lt;br /&gt;               blog.IsAnyTextBeforeHostnameAccepted = isAnyTextBeforeHostnameAccepted;&lt;br /&gt;&lt;br /&gt;               &lt;span class="rem"&gt;// intentionally not updating StorageContainerName for an update.  this would&lt;/span&gt;&lt;br /&gt;               &lt;span class="rem"&gt;// involve renaming the folder on disk, or DB changes (DB changes are not&lt;/span&gt;&lt;br /&gt;               &lt;span class="rem"&gt;// likely).  if requested, this can be done, but should probably be done as&lt;/span&gt;&lt;br /&gt;               &lt;span class="rem"&gt;// a separate &amp;quot;Rename&amp;quot; process/action.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;               blog.Save();&lt;br /&gt;&lt;br /&gt;               &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; JsonResponse() { Success = &lt;span class="kwrd"&gt;true&lt;/span&gt;, Message = &lt;span class="str"&gt;&amp;quot;Blog was updated.&amp;quot;&lt;/span&gt; };&lt;br /&gt;           }&lt;br /&gt;       }&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;



&lt;p&gt;&lt;font size="2"&gt;Now call this service using the PrimaryBlog Administrator credential. than Add new user and Role to the BlogEngine Database.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="2"&gt;Done&lt;/font&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/cipto/archive/2012/05/04/blogengine-net-how-to-create-blog-automatically-for-each-user.aspx&amp;amp;subject=BlogEngine .NET how to Create Blog automatically for each user" 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/cipto/archive/2012/05/04/blogengine-net-how-to-create-blog-automatically-for-each-user.aspx&amp;amp;t=BlogEngine+.NET+how+to+Create+Blog+automatically+for+each+user" target="_blank" title="Submit BlogEngine .NET how to Create Blog automatically for each user 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/cipto/archive/2012/05/04/blogengine-net-how-to-create-blog-automatically-for-each-user.aspx&amp;amp;title=BlogEngine+.NET+how+to+Create+Blog+automatically+for+each+user" target="_blank" title="Submit BlogEngine .NET how to Create Blog automatically for each user 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/cipto/archive/2012/05/04/blogengine-net-how-to-create-blog-automatically-for-each-user.aspx&amp;amp;phase=2" target="_blank" title="Submit BlogEngine .NET how to Create Blog automatically for each user 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/cipto/archive/2012/05/04/blogengine-net-how-to-create-blog-automatically-for-each-user.aspx&amp;amp;title=BlogEngine+.NET+how+to+Create+Blog+automatically+for+each+user" target="_blank" title="Add BlogEngine .NET how to Create Blog automatically for each user 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=193435" width="1" height="1"&gt;</description></item><item><title>How to work with Plugin in CRM 2011</title><link>http://geeks.netindonesia.net/blogs/cipto/archive/2012/05/04/how-to-work-with-plugin-in-crm-2011.aspx</link><pubDate>Fri, 04 May 2012 05:40:10 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193434</guid><dc:creator>cipto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="2"&gt;After you installed the DeveloperToolkit in SDK. you’ll have the solution template and CRM Explorer directly in your vs.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;You will have default class called Plugin, it’s there to make your life easier. Inherit from there, and you shall have localContext which you can access the OrganizationService, Trace, PostImageEntitiies, and PreImageEntities.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Right click on the entity you wanted to on CRM Explorer. and click Create plugin. or do manually if you already understand what to change.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Now you need to understand the Pipeline Stage and Message.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;message is pretty straightforward, on Create/Delete/Update of entity&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Now Pipeline Stage is very crucial to grasp the understanding.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;there are 3:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;Pre-Validation&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;Pre-Operation&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Main Operation&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;Post-Operation&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Pre meaning still in transaction, But prior the Main operation. in other words It’s not saved yet .&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Main operation is where all the changes of fields such as Create,Update,Delete is submitted/applied to database&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Post operation happens after it. &lt;font size="2"&gt;So carefully put your logic on pre or post really is the key.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Plugin has 2 minutes of time execution, after that it will continue to next one.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;so be sure to not put lengthy operation there.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;It is advice to use the PreImageEntities and PostImageEntities for performance , instead of retrieve and retrivemultiple . &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;preimageentities contains field before the changed, and post after&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Debug can be done by using the sandbox and the other part is just to put on Trace and then Throw InvalidPluginexception.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&lt;/font&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/cipto/archive/2012/05/04/how-to-work-with-plugin-in-crm-2011.aspx&amp;amp;subject=How to work with Plugin in CRM 2011" 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/cipto/archive/2012/05/04/how-to-work-with-plugin-in-crm-2011.aspx&amp;amp;t=How+to+work+with+Plugin+in+CRM+2011" target="_blank" title="Submit How to work with Plugin in CRM 2011 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/cipto/archive/2012/05/04/how-to-work-with-plugin-in-crm-2011.aspx&amp;amp;title=How+to+work+with+Plugin+in+CRM+2011" target="_blank" title="Submit How to work with Plugin in CRM 2011 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/cipto/archive/2012/05/04/how-to-work-with-plugin-in-crm-2011.aspx&amp;amp;phase=2" target="_blank" title="Submit How to work with Plugin in CRM 2011 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/cipto/archive/2012/05/04/how-to-work-with-plugin-in-crm-2011.aspx&amp;amp;title=How+to+work+with+Plugin+in+CRM+2011" target="_blank" title="Add How to work with Plugin in CRM 2011 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=193434" width="1" height="1"&gt;</description></item><item><title>Tutorial untuk Getting Start on Metro Style Apps</title><link>http://geeks.netindonesia.net/blogs/risman/archive/2012/05/04/tutorial-untuk-getting-start-on-metro-style-apps.aspx</link><pubDate>Fri, 04 May 2012 03:30:34 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193433</guid><dc:creator>Risman Adnan Mattotorang</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Rekan-rekan, menyambut Microsoft Developer Conference – Windows 8 Hackathon di Jogjakarta, beberapa community leader mempersiapkan materi pembelajaran yang dapat digunakan sebagai persiapan menghadapi hackathon. Saya akan cover mengenai WinRT dan C++ bersama dengan &lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan"&gt;Welly Tambunan&lt;/a&gt;, &lt;a href="http://blog.ridilabs.net"&gt;Dr. Ridi Ferdiana&lt;/a&gt; akan fokus ke C#/XAML dan &lt;a href="http://www.youtube.com/user/TigabelasTechnoloy?ob=0&amp;amp;feature=results_main"&gt;Yusak&lt;/a&gt; untuk HTML/JavaScript.     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Berikut ini adalah URL para bloggers yang berisi materi-materi pembelajaran. Setiap peserta Hackathon diharapkan menyiapkan mesin development nya (Windows 8 installed, SDK installed), bisa di laptop dengan memori mininum 2GB dan HDD space untuk sekitar 40GB. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;HTML/CSS/JavaScript Developers/Designers&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Yusak membuat beberapa video untuk developer HTML dan JavaScript, dengan video step-by-step yang ada di Youtube. Klik gambar berikut untuk navigasi ke lokasi tutorial. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/image_4BAAF9DD.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_thumb_117950B3.png" width="509" height="265" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;C# dan XAML Developers/Designers&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Dr. Ridi Ferdiana, MIC Lead dari UGM akan membuat beberapa guidance untuk membantu .NETters memulai eksplorasi Metro Style apps development. Salah satunya sudah dirilis melalui blogs nya. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.ridilabs.net/post/2012/05/03/8-Steps-to-Start-Building-Your-Windows-8-Apps.aspx"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_6E4E76B1.png" width="513" height="248" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;WinRT dan C++ Developers&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Untuk pencinta C/C++, dapat memulai eksplorasinya melalui step-by-step guidance di blogs berikut:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/default.aspx"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_6D0EFF34.png" width="381" height="189" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://geeks.netindonesia.net/blogs/welly_tambunan"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_1E9CFD7B.png" width="366" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Beberapa informasi yang lebih mendalam bisa didapatkan di official website:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.buildwindows.com/"&gt;BUILD Windows&lt;/a&gt; – Recorded Sessions &lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/"&gt;Channel9&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/windows/apps/br229512"&gt;MSDN&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Untuk instalasi dan persiapan mesin development, dapat diperoleh dari MSDN:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/windows/apps/br229512"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_7E184E79.png" width="576" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hope this helps!.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cheers – RAM&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/risman/archive/2012/05/04/tutorial-untuk-getting-start-on-metro-style-apps.aspx&amp;amp;subject=Tutorial untuk Getting Start on Metro Style Apps" 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/risman/archive/2012/05/04/tutorial-untuk-getting-start-on-metro-style-apps.aspx&amp;amp;t=Tutorial+untuk+Getting+Start+on+Metro+Style+Apps" target="_blank" title="Submit Tutorial untuk Getting Start on Metro Style Apps 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/risman/archive/2012/05/04/tutorial-untuk-getting-start-on-metro-style-apps.aspx&amp;amp;title=Tutorial+untuk+Getting+Start+on+Metro+Style+Apps" target="_blank" title="Submit Tutorial untuk Getting Start on Metro Style Apps 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/risman/archive/2012/05/04/tutorial-untuk-getting-start-on-metro-style-apps.aspx&amp;amp;phase=2" target="_blank" title="Submit Tutorial untuk Getting Start on Metro Style Apps 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/risman/archive/2012/05/04/tutorial-untuk-getting-start-on-metro-style-apps.aspx&amp;amp;title=Tutorial+untuk+Getting+Start+on+Metro+Style+Apps" target="_blank" title="Add Tutorial untuk Getting Start on Metro Style Apps 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=193433" width="1" height="1"&gt;</description></item><item><title>FileTables di SQL Server 2012</title><link>http://geeks.netindonesia.net/blogs/paulus/archive/2012/05/04/filetables-di-sql-server-2012.aspx</link><pubDate>Thu, 03 May 2012 17:54:24 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193432</guid><dc:creator>paulus</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Setelah install SQL Server 2012, lalu buka SQL Server Management Studio, ada hal menarik yang saya temukan setelah saya membuat database baru, yaitu FileTables.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/paulus/image_53D51D7F.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/paulus/image_thumb_25C77F2D.png" width="181" height="186" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Karena tertarik dengan fitur baru ini, saya coba mencari tau apa itu FileTables di SQL Server 2012. Dengan FileTables, kita dapat membuat sebuah table yang berisikan banyak file dan file-file tersebut dapat diakses dengan standard API Windows (seperti copy file dan delete file). Untuk dapat menggunakan fitur ini, kita harus mengaktifkan dulu fitur FILESTREAM di instance SQL Server 2012 yang akan digunakan:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Masuk ke &lt;strong&gt;SQL Server Configuration Manager&lt;/strong&gt;, pilih &lt;strong&gt;SQL Server Services&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Pilih instance database engine yang ada, lalu klik kanan pilih &lt;strong&gt;Properties&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Pilih tab &lt;strong&gt;FILESTREAM&lt;/strong&gt;, dan pastikan fitur FILESTREAM diaktifkan. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/paulus/image3_2416B359.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:10px 10px 0px 0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/paulus/image3_thumb_369B3BA9.png" width="339" height="394" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Setelah itu buat sebuah database baru:&lt;/p&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;height:38px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;CREATE&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; DocumentManagement&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Kemudian ubah akses level FILESTREAM ke FULL:&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;height:60px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; SP_CONFIGURE filestream_access_level, 2&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;RECONFIGURE&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WITH&lt;/span&gt; OVERRIDE &lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Tambahkan filegroup dan data file untuk FILESTREAM:&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;height:120px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;ALTER&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; [DocumentManagement] &lt;span style="color:#0000ff;"&gt;ADD&lt;/span&gt; FILEGROUP [FILESTREAM01] &lt;span style="color:#0000ff;"&gt;CONTAINS&lt;/span&gt; FILESTREAM &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;go&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;ALTER&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; [DocumentManagement] &lt;span style="color:#0000ff;"&gt;ADD&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;FILE&lt;/span&gt; ( NAME = N&lt;span style="color:#006080;"&gt;&amp;#39;DocumentFileStream&amp;#39;&lt;/span&gt;, FILENAME = N&lt;span style="color:#006080;"&gt;&amp;#39;D:\DB\MSSQL11.SQLEXPRESS\MSSQL\DATA\DocumentFileStream&amp;#39;&lt;/span&gt; ) &lt;span style="color:#0000ff;"&gt;TO&lt;/span&gt; FILEGROUP [FILESTREAM01]&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;GO&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;ALTER&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; [DocumentManagement] &lt;span style="color:#0000ff;"&gt;SET&lt;/span&gt; FILESTREAM( NON_TRANSACTED_ACCESS = &lt;span style="color:#0000ff;"&gt;FULL&lt;/span&gt;, DIRECTORY_NAME = N&lt;span style="color:#006080;"&gt;&amp;#39;Invoices&amp;#39;&lt;/span&gt; )&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt; GO&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Lalu buat sebuah FileTable di database yang baru saja kita konfigurasi:&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;height:101px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;USE&lt;/span&gt; DocumentManagement&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;GO&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;CREATE&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;TABLE&lt;/span&gt; PaidInvoices &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; FILETABLE &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; GO&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Sebuah FileTable baru sudah ada di database:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/paulus/image8_24AE820F.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:10px 10px 0px 0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/paulus/image8_thumb_1603D62A.png" width="272" height="129" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Untuk mengakses tabel ini dari aplikasi .NET, misalnya dengan code C#, kita dapat dengan mudah menggunakan method &lt;strong&gt;System.IO.File.Copy &lt;/strong&gt;seperti berikut ini:&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; System.IO.&lt;span style="color:#0000ff;"&gt;File&lt;/span&gt;.Copy(@&amp;quot;d:\docs\contoh invoice.docx&amp;quot;, @&lt;a&gt;\\Paulus-pc\sqlexpress\Invoices\PaidInvoices\invoice.docx&lt;/a&gt;);&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Untuk melihat hasilnya, klik kanan pada table FileTable tersebut, lalu pilih &lt;strong&gt;Explore FileTable Directory&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/paulus/image_0CC79AE9.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:10px 10px 0px 0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/paulus/image_thumb_24EB0544.png" width="380" height="134" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/paulus/image_15877D68.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:10px 10px 0px 0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/paulus/image_thumb_74F017E8.png" width="666" height="159" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kita dapat melihat isi table FileTable ini seakan-akan seperti sharing folder di Windows.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Lalu coba lihat isi table FileTable ini:&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;select&lt;/span&gt; * &lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; PaidInvoices&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;a href="http://geeks.netindonesia.net/blogs/paulus/image_2BE9F622.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:10px 10px 0px 0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/paulus/image_thumb_71FAB335.png" width="1034" height="116" /&gt;&lt;/a&gt;





&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Kita juga dapat memasukkan data ke FileTable ini dengan cara Copy-Paste seperti halnya kita menyalin file di Windows.&lt;/p&gt;

&lt;p&gt;Atau kita juga dapat menggunakan T-SQL:&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;height:117px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; INSERT &lt;span style="color:#0000ff;"&gt;INTO&lt;/span&gt; [dbo].[PaidInvoices]&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; ([name],[file_stream])&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;#39;Invoice 2.docx&amp;#39;&lt;/span&gt;, * &lt;span style="color:#0000ff;"&gt;FROM&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;OPENROWSET&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;BULK&lt;/span&gt; N&lt;span style="color:#006080;"&gt;&amp;#39;d:\docs\Contoh2.docx&amp;#39;&lt;/span&gt;, SINGLE_BLOB) &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; FileData&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/paulus/image_53804C7F.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:10px 10px 0px 0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/paulus/image_thumb_1271CD1B.png" width="1024" height="97" /&gt;&lt;/a&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/paulus/archive/2012/05/04/filetables-di-sql-server-2012.aspx&amp;amp;subject=FileTables di SQL Server 2012" 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/paulus/archive/2012/05/04/filetables-di-sql-server-2012.aspx&amp;amp;t=FileTables+di+SQL+Server+2012" target="_blank" title="Submit FileTables di SQL Server 2012 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/paulus/archive/2012/05/04/filetables-di-sql-server-2012.aspx&amp;amp;title=FileTables+di+SQL+Server+2012" target="_blank" title="Submit FileTables di SQL Server 2012 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/paulus/archive/2012/05/04/filetables-di-sql-server-2012.aspx&amp;amp;phase=2" target="_blank" title="Submit FileTables di SQL Server 2012 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/paulus/archive/2012/05/04/filetables-di-sql-server-2012.aspx&amp;amp;title=FileTables+di+SQL+Server+2012" target="_blank" title="Add FileTables di SQL Server 2012 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=193432" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/paulus/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://geeks.netindonesia.net/blogs/paulus/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.netindonesia.net/blogs/paulus/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Hello C++ WinRT Developers</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/03/hello-c-winrt-developers.aspx</link><pubDate>Thu, 03 May 2012 14:44:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193431</guid><dc:creator>welly tambunan</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;strong&gt;Hello WinRT Developers
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Kita langsung saja masuk ke praktek. Sudah tentu Geeks memiliki prinsip Talk is Cheap, Show me the code. Jadi saya disini tidak berbasa basi lagi, kita akan segera membuat program pertama MetroStyle kita dengan C++. Kita akan menggunakan API dari WinRT. 
&lt;/p&gt;&lt;p&gt;Saya akan mengambil contoh yang paling populer di dunia ini. Program tersebut tidak lain adalah Hello World. :)
&lt;/p&gt;&lt;p&gt;Jalankan Visual Studio anda dan buat project baru dan pilih Visual C++ MetroStyle dan Blank Project. Berikan nama HelloWinRT dan tekan OK.
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="954" height="582" align="" style="width:767px;height:493px;" alt="" src="http://weltam.files.wordpress.com/2012/05/01-createproject.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Visual Studio akan membuat template project untuk mempermudah kita memulai pembangunan aplikasi. 
&lt;/p&gt;&lt;p&gt;Pada sebelah kanan anda akan ditampilkan solution explorer dimana file-file project anda telah dibuat
&lt;/p&gt;&lt;p&gt;&lt;img width="281" height="357" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/02-solution-explorer.jpg" border="0" hspace="-1" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Anda dapat memperhatikan bahwa seperti biasa bagi kita c++ developer sudah terbiasa dengan pemisahan file header dan implementasi, hal itu juga berlaku disini. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Kita sekarang memperhatikan halaman utama yang ditampilkan pada tutorial yang terdahulu. Halaman hitam tersebut merupakan BlankPage. BlankPage dibagi menjadi 2 bagian yaitu XAML yang merupakan bagian yang mengatur tampilan atau user interface dan pasangan header (.h) dan implementasi (.cpp) untuk code behind yang mengatur interaksi dengan user interface. Anda dapat juga menggunakan DirectX untuk tampilan jika anda ingin membuat game. Tetapi untuk tutorial ini kita akan membuat user interface dengan XAML. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="273" height="272" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/03-xaml-codebehind.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Jika anda melakukan double click pada BlankPage.xaml maka pada layar yang ada ditengah akan ditampilakan XAML designer dan Editor. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="1053" height="532" align="" style="width:895px;height:473px;" alt="" src="http://weltam.files.wordpress.com/2012/05/04-designer-editor.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Dengan designer anda akan mengatur user interface secara visual dan drag and drop. Tetapi anda juga bisa membuat user interface dengan mengetikkan code xaml pada xaml editor. 
&lt;/p&gt;&lt;p&gt;Sekarang kita coba lakukan bagaiman cara membuat user interface dengan memanfaatkan Designer. Caranya sangat mudah, anda tinggal ambil control yang diperlukan dari toolboox yang ada disebelah kiri. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="317" height="456" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/05-toolbox-and-button.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Kita akan membuat satu Button. Anda tinggal double click saja Button tersebut atau lakukan dengan drag and drop. Jika anda melakukan dengan double click maka button akan diletkkan di pojok kiri atas. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="492" height="208" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/06-buttonindbclick.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Kita dapat mengatur posisi dari button tersebut dengan menggeser atau drag and drop
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="429" height="274" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/08-geserbtton.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Anda dapat perhatikan kode XAML yang digenerate. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="571" height="170" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/07-xamlforbutton.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Untuk membuat event handler anda dapat melakukan double click pada button tersebut dan event handler akan dibuat untuk button tersebut di code behind. 
&lt;/p&gt;&lt;p&gt;Anda akan mendapatkan beberapa code yang digenerate oleh visual studio. Yang pertama adalah pada XAML. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="623" height="48" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/08-xamlevent.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Kita melihat bahwa event Click pada button telah dihubngkan dengan method Button_Click_1. Method tersebut tentu saja terletak di code behind. 
&lt;/p&gt;&lt;p&gt;Method tersebut akan di deklarasikan pada header BlankPage.xaml.h 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="716" height="275" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/09-headerfile.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Implementasi dari method tersebut terletak pada file BlankPage.xaml.cpp
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="817" height="182" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/10-implementation.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Anda mungkin memperhatikan bahwa c++ yang digunakan pada code behind sedikit berbeda dengan ISO c++ yang mungkin anda gunakan. Ini adalah c++/cx . Kita tetap saja dapat menggunakan c++ ditambah lagi fitur yang baru yang mempermudah kita untuk membangun aplikasi. Tidak terlalu banyak penambahan yang terjadi sebenarnya. Jadi anda tidak perlu khawatir. c++/cx akan memanjakan kehidupan anda sebagai developer windows dengan kemudahan memory management, runtime services, membuat component dsb. Anda pasti akan suka dengan ini jika anda berasa dari dunia dimana kita mengenal Windows Programming dengan MFC, COM, ATL dkk. c++/cx diberikan kepada anda untuk membuat hidup kita lebih mudah. :)
&lt;/p&gt;&lt;p&gt;Pada method tersebutlah kita akan meletakkan respon kita terhadap event ketika button diclick. Untuk tutorial ini kita akan menampilkan messagebox saja. Berikut code yang digunakan untuk menampilkan message box tersebut. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="759" height="86" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/11-dlgshow.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Anda akan memperoleh bantuan dari intellisense pada saat anda mengetikkan code tersebut. Anda akan menjadi lebih produktif dengan hal itu. 
&lt;/p&gt;&lt;p&gt;Jalankan dengan menekan F5.
&lt;/p&gt;&lt;p&gt;Anda akan memperhatikan bahwa pada output kita akan melihat proses precompile header. Ini masih sama dengan c++ yang dulu anda kenal. Anda tidak akan diminta mengubah dunia anda secara drastis. :)
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="1048" height="241" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/12-compileheader.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Setelah proses tersebut selesai maka kita akan dihadapkan pada button yang siap untuk di click. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="315" height="243" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/13-showbutton.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Tanpa banyak menunggu lagi maka silahkan anda tekan button tersebut. Maka anda akan disambut pada dunia baru. Anda sekarang sudah resmi menjadi WinRT Developers. 
Selamat !!!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="1365" height="357" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/14-haidev.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Hal yang perlu kita perhatikan lagi dari program sederhana diatas adalah mengenai lingkungan WinRT. Coba anda lihat pada Output window yang dihasilkan oleh program yang baru kita jalankan tadi. 
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img width="943" height="391" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/15-outputwindows.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;Apakah anda familiar dengan library yang di load tersebut ? Ini yang berikutnya. Semakin familiar ? Bagaiaman dengan Win32 programmer ?
&lt;/p&gt;&lt;p&gt;&lt;img width="817" height="428" align="" alt="" src="http://weltam.files.wordpress.com/2012/05/16-windowsshows.jpg" border="0" hspace="-1" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Mungkin bagi para veteran c++ developer kita melihat bahwa tampilan diatur dengan XAML (yang sangat familiar di dunia .NET yang merupakan Managed Environemnt), muncul sedikit kekhawatiran, apakah ini .NET ? apakah dengan WinRT kita digiring ke dunia dimana ada garbage collection, JIT dan segala macam magic lainnya ? Bagaimana dengan performance ?
&lt;/p&gt;&lt;p&gt;Dengan ini saya ingin memastikan bahwa kekhwatiran anda tersebut tidak benar, karena semua WinRT adalah native code. Dijalankan closest to the metal. Ketika berhubungan dengan Windows tidak ada tawar tawar bahwa kita akan menjalankan native code. 
&lt;/p&gt;&lt;p&gt;Native code memberikan yang terbaik untuk performance dan yang terbaik untuk integrasi dengan OS. Dari contoh diatas kita dapat melihat bahwa kita masih tetap menggunakan Win32 dan masih menggunakan API yang dulu kita gunakan. Hanya sekarng kita menggunakannya dengan lebih mudah. Hal yang perlu anda ingat adalah ..... ini adalah NATIVE CODE. Dan akan memberikan performance yang terbaik.
&lt;/p&gt;&lt;p&gt;Jadi rekan developer c++ mari tunjukkan kemampuan anda di event besar ini 
&lt;a href="http://aka.ms/mdcjogja" target="_blank"&gt;&lt;img width="713" height="107" title="Web Banner Windows 8 Hackathon" style="margin:5px 5px 5px 0px;border:0px currentColor;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none;" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_1E86F88B.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mari kita tunjukkan keberadaan komunitas c++ Indonesia... :)
&lt;/p&gt;&lt;p style="text-align:right;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="text-align:right;"&gt;&amp;nbsp;&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/welly_tambunan/archive/2012/05/03/hello-c-winrt-developers.aspx&amp;amp;subject=Hello C++ WinRT Developers" 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/welly_tambunan/archive/2012/05/03/hello-c-winrt-developers.aspx&amp;amp;t=Hello+C%2b%2b+WinRT+Developers" target="_blank" title="Submit Hello C++ WinRT Developers 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/welly_tambunan/archive/2012/05/03/hello-c-winrt-developers.aspx&amp;amp;title=Hello+C%2b%2b+WinRT+Developers" target="_blank" title="Submit Hello C++ WinRT Developers 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/welly_tambunan/archive/2012/05/03/hello-c-winrt-developers.aspx&amp;amp;phase=2" target="_blank" title="Submit Hello C++ WinRT Developers 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/welly_tambunan/archive/2012/05/03/hello-c-winrt-developers.aspx&amp;amp;title=Hello+C%2b%2b+WinRT+Developers" target="_blank" title="Add Hello C++ WinRT Developers 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=193431" width="1" height="1"&gt;</description></item><item><title>WinRT Under Cover dari C++</title><link>http://geeks.netindonesia.net/blogs/risman/archive/2012/05/03/winrt-under-cover-dari-c.aspx</link><pubDate>Thu, 03 May 2012 14:31:35 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193428</guid><dc:creator>Risman Adnan Mattotorang</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Pada tutorial sebelumnya, kita sudah mempelajari cara membuat native DLL dengan C++ dan menggunakan DLL tersebut dari aplikasi client yang dibuat dengan C# dan JavaScript. Mungkin awalnya terlihat seperti magic, karena metadata dari CalcDLL dapat di query oleh C# dan JavaScript melalui Visual Studio editor seperti layaknya .NET assembly. Pada artikel kali ini kita akan membahas sedikit lebih dalam mengenai under cover dari WinRT. Untuk mengikuti tutorial ini anda membutuhkan tools favorit, ILDASM yang dapat dipanggil melalui developer command prompt (type ildasm). &lt;/p&gt;  &lt;p&gt;Saya asumsikan anda memiliki project CalcDLL dari tutorial sebelumnya. Compile project anda dan perhatikan dalam folder Debug, ada dua file, &lt;strong&gt;CalcDLL.dll&lt;/strong&gt; dan &lt;strong&gt;CalcDLL.winmd&lt;/strong&gt; yang dihasilkan oleh compiler. CalcDLL.dll adalah native DLL dari code C++ sedangkan extension *.winmd adalah file Windows Metadata yang mengadopsi format CLI (common language infrastructure) dari .NET. Winmd dapat dibuka menggunakan ILDASM selayaknya .NET assembly. Dari manifest Metadata yang anda dapatkan jelas ini bukan .NET metadata, tetapi // Metadata version: WindowsRuntime 1.2. Ya, ini adalah WinRT Metadata yang visible dari Object Browser dan Intellisense Visual Studio 11. Perbedaannya dengan .NET assembly metadata adalah, ada dua definisi didalam Metadata tersebut, pertama adalah class definition &lt;strong&gt;CalcDLL.Calculator&lt;/strong&gt; dan interface definition &lt;strong&gt;CallDLL._ICalculatorPublicNonVirtuals. &lt;/strong&gt;Interface dibutuhkan untuk mapping antara C++ patterns (seperti constructor) dengan WinRT interface, juga untuk mapping antara parameter output dan return values, serta exceptions dan HRESULT.     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Coba perhatikan:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/image_66F1F943.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_thumb_3DA4F409.png" width="548" height="449" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Windows Runtime, adalah model pemrograman terbaru yang menjadi backbone aplikasi Metro-style apps dalam Windows 8 operating system. WinRT mendukung pemrograman dengan C++ (dikenal dengan istilah Component Extensions, C++/CX). Aplikasi yang ditulis dengan WinRT dapat berjalan di platform Intel dan ARM tanpa modifikasi code. WinRT pada dasarnya adalah COM-based API, COM yang lebih canggih. Karena berbasis COM yang bersifat native, WinRT relatif mudah untuk interfacing ke beberapa bahasa pemrograman lain. Metadata dari WinRT API disimpan dalam file *.winmd yang di encoded dengan format CLI, ECMA 335. Dengan CLI, overhead nya menjadi lebih kecil ketika aplikasi memanggil WinRT komponen, dibandingkan dengan P/Invoke yang selama ini kita kenal. &lt;/p&gt;  &lt;p&gt;Untuk menyesuaikan dengan fitur yang ada dalam WinRT, C++/Cx mengadopsi beberapa C++/CLI sintaks. Regular C++ dengan gaya pemrograman COM-specific juga dapat digunakan untuk menulis code komponen WinRT, yaitu dengan bantuan WRL, WinRT Template Library. Tetapi lebih disarankan untuk menggunakan C++/CX. Jika anda tertarik mempelajari under cover dari WinRT, beberapa video tutorial di BUILD website (&lt;a href="http://www.buildwindows.com"&gt;www.buildwindows.com&lt;/a&gt;) telah tersedia untuk mempercepat proses belajar anda. Saya akan menuliskan beberapa panduan dalam beberapa hari ke depan untuk mempersiapkan rekan-rekan dalam Windows 8 Hackathon yang akan diadakan di Jogjakarta nanti. Klik banner berikut untuk mendaftarkan diri anda segera. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://aka.ms/mdcjogja"&gt;&lt;img title="Web Banner Windows 8 Hackathon" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_1E86F88B.jpg" width="713" height="107" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hope this helps!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cheers – Risman Adnan &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/risman/archive/2012/05/03/winrt-under-cover-dari-c.aspx&amp;amp;subject=WinRT Under Cover dari C++" 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/risman/archive/2012/05/03/winrt-under-cover-dari-c.aspx&amp;amp;t=WinRT+Under+Cover+dari+C%2b%2b" target="_blank" title="Submit WinRT Under Cover dari C++ 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/risman/archive/2012/05/03/winrt-under-cover-dari-c.aspx&amp;amp;title=WinRT+Under+Cover+dari+C%2b%2b" target="_blank" title="Submit WinRT Under Cover dari C++ 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/risman/archive/2012/05/03/winrt-under-cover-dari-c.aspx&amp;amp;phase=2" target="_blank" title="Submit WinRT Under Cover dari C++ 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/risman/archive/2012/05/03/winrt-under-cover-dari-c.aspx&amp;amp;title=WinRT+Under+Cover+dari+C%2b%2b" target="_blank" title="Add WinRT Under Cover dari C++ 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=193428" width="1" height="1"&gt;</description></item><item><title>Microsoft Developer Conference– Windows 8 Hackathon @Jogjakarta</title><link>http://geeks.netindonesia.net/blogs/risman/archive/2012/05/03/microsoft-developer-conference-windows-8-hackathon-jogjakarta.aspx</link><pubDate>Thu, 03 May 2012 10:19:55 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193425</guid><dc:creator>Risman Adnan Mattotorang</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Rekan-rekan developers. 24 jam pertama ketika anda mempelajari teknologi baru sangat berpengaruh terhadap perkembangan pengetahuan kitanantinya. Salah satu slogan yang saya suka, lakukan dengan benar sejak awal. Biasanya, cara para geeks cukup aneh, mereka tidak berhenti ngoprek or hacking teknologi (framework, API, runtime, etc) sampai benar-benar paham. Kami ingin menfasilitasi “cara geeks” tersebut untuk eksplorasi Windows 8, WinRT dan Metro style apps. &lt;/p&gt;  &lt;p&gt;Microsoft Developer Conference kali ini, 1000 developer akan berkumpul di Yogjakarta selama 24 jam untuk mempelajari mengenai teknik pemrograman aplikasi Metro di Windows 8 dipandu oleh Software Design Engineer langsung dari Microsoft Corporation USA. Peserta akan berkompetisi untuk menghasilkan Metro Style App terbaik yang akan dipilih untuk memenangkan hadiah menarik dari Microsoft Indonesia. Ini kesempatan luar biasa bagi developer dari kalangan mahasiswa, freelancer dan startup di seluruh Indonesia, belajar dengan benar sejak awal dari sumber yang tepat. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://aka.ms/mdcjogja"&gt;&lt;img title="Print" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Print" src="http://geeks.netindonesia.net/blogs/risman/Poster-Windows-8-Hackathon---c_020E07D2.jpg" width="457" height="657" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Acara ini akan diramaikan oleh pembicara-pembicara ternama dari Microsoft Corporation USA dan akan dicatat sebagai Hackathon terbesar dalam rekor MURI.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Profil Pembicara Utama &lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Walid Abu-Habda&lt;/strong&gt;, Vice President, Developer and Platform Group, Microsoft Corporation&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Said Zahedani&lt;/strong&gt;, PhD, General Manager, Developer and Platform Group, Microsoft Asia Pacific HQ&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Andreas Diantoro&lt;/strong&gt;, Country Manager, Microsoft Indonesia&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Profil Trainer Utama&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Risman Adnan&lt;/strong&gt;, Director Developer and Platform Group, Microsoft Indonesia&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Herman Widjaja&lt;/strong&gt;, Senior Test Lead, Microsoft Corporation&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Norman Sasono&lt;/strong&gt;, Technical Evangelist, Microsoft Indonesia&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Irving Hutagalung&lt;/strong&gt;, Technical Evangelist, Microsoft Indonesia&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Darmawan Suandi&lt;/strong&gt;, Technical Evangelist, Microsoft Indonesia&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Julius Fenata&lt;/strong&gt;, Technical Evangelist, Microsoft Indonesia&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Wirawan Winarto&lt;/strong&gt;, Developer Tools Specialist, Microsoft Indonesia&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Umi Fadillah&lt;/strong&gt;, UX Specialist, Microsoft Indonesia&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Dr. Ridi Ferdiana&lt;/strong&gt;, Microsoft Innovation Center Lead, UGM &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Erick Kurniawan&lt;/strong&gt;, Microsoft Valuable Professional, UKDW&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Puja Pramudya&lt;/strong&gt;, Microsoft Valuable Professional, ITB&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Hackathon ini terbuka untuk mahasiswa, alumni, dosen dan IT startup/freelancer yang berdomisili di Yogjakarta dan sekitarnya. Saat ini sudah banyak peserta dari Malang, Surabaya, Bandung, Jogja dan sekitarnya telah mendaftar. Peserta hackathon adalah individual atau tim 1-5 anggota dengan kompetensi yang berbeda, seperti Architect, Developer, Project Manager dan UI/UX Designer/Artist. Kompetensi yang diharapkan dari peserta adalah sebagai berikut:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Kemampuan pemrograman: HTML/CSS dan JavaScript atau .NET (C#, VB.NET, C++) dan XAML&lt;/li&gt;    &lt;li&gt;Kemampuan UI design dan Multimedia dengan Microsoft Expression Designer atau Tool lainnya&lt;/li&gt;    &lt;li&gt;Telah menginstall Windows 8 di laptop masing-masing dan memiliki ide/skenario aplikasi Metro Style (Tablet/Slate) &lt;/li&gt;    &lt;li&gt;Memiliki komitmen untuk menyelesaikan aplikasi selama pelaksanaan Windows 8 Hackathon dan sesudah&lt;/li&gt;    &lt;li&gt;Mengikuti Campus Roadshow di UGM, UKDW, AKAKOM dan AMIKOM untuk peserta Mahasiswa dari Jogjakarta&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Bagi yang tidak dapatmenghadiri persiapan Hackathon di campus, beberapa rekan-rekan komunitas, termasuk saya, akan menulis blogs tutorial step-by-step untuk memberi pemahaman yang cukup untuk peserta dalam melakukan persiapan. Banyak sekali ide skenario aplikasi anda bisa dapatkan, yang terpenting adalah anda memiliki pengetahuan yang cukup mengenai Windows Runtime, Metro Style UX guideline dan aspek monetisasi di dalam Windows Store. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sampai bertemu di Jogjakarta, kota kebanggaan kita, pusat kultur budaya Jawa.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope this helps! RAM&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/risman/archive/2012/05/03/microsoft-developer-conference-windows-8-hackathon-jogjakarta.aspx&amp;amp;subject=Microsoft Developer Conference– Windows 8 Hackathon @Jogjakarta" 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/risman/archive/2012/05/03/microsoft-developer-conference-windows-8-hackathon-jogjakarta.aspx&amp;amp;t=Microsoft+Developer+Conference%e2%80%93+Windows+8+Hackathon+%40Jogjakarta" target="_blank" title="Submit Microsoft Developer Conference– Windows 8 Hackathon @Jogjakarta 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/risman/archive/2012/05/03/microsoft-developer-conference-windows-8-hackathon-jogjakarta.aspx&amp;amp;title=Microsoft+Developer+Conference%e2%80%93+Windows+8+Hackathon+%40Jogjakarta" target="_blank" title="Submit Microsoft Developer Conference– Windows 8 Hackathon @Jogjakarta 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/risman/archive/2012/05/03/microsoft-developer-conference-windows-8-hackathon-jogjakarta.aspx&amp;amp;phase=2" target="_blank" title="Submit Microsoft Developer Conference– Windows 8 Hackathon @Jogjakarta 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/risman/archive/2012/05/03/microsoft-developer-conference-windows-8-hackathon-jogjakarta.aspx&amp;amp;title=Microsoft+Developer+Conference%e2%80%93+Windows+8+Hackathon+%40Jogjakarta" target="_blank" title="Add Microsoft Developer Conference– Windows 8 Hackathon @Jogjakarta 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=193425" width="1" height="1"&gt;</description></item><item><title>Modern::C++ (Not Your GrandDaddy) C++</title><link>http://geeks.netindonesia.net/blogs/welly_tambunan/archive/2012/05/03/modern-c-not-your-granddaddy-c.aspx</link><pubDate>Wed, 02 May 2012 22:55:24 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193423</guid><dc:creator>welly tambunan</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Sumber : &lt;a href="http://herbsutter.com/elements-of-modern-c-style/"&gt;http://herbsutter.com/elements-of-modern-c-style/&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Artikel berikut diambil dari blog Herb Sutter yang menjelaskan mengenai hal-hal yang perlu kita ketahui bersama dalam menulis code c++ dengan cara yang baru seiring dengan disahkannya standar c++11 oleh komite ISO C++.
&lt;/p&gt;&lt;p&gt;Ada perubahan yang minor dilakukan oleh penerjemah dalam artikel ini dalam hal penyampaian. Saya berusaha agar perubahan tersebut tidak mengubah arti dari keseluruhan artikel tersebut.
&lt;/p&gt;&lt;p style="text-align:center;"&gt;&lt;strong&gt;C++11 seperti bahasa baru – Bjarne Stroustrup
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Standar c++11 menawarkan &lt;a href="http://www2.research.att.com/~bs/C++0xFAQ.html"&gt;banyak fitur baru&lt;/a&gt; yang bermanfaat. Artikel ini menitik beratkan secara spesifik untuk fitur baru yang membuat c++ menjadi bahasa baru dibandingkan dengan c++98, karena
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Standard ini mengubah gaya dan idiom yang kita gunakan dalam menulis kode C++, termasuk cara merancang library c++. Kita akan melihat banyak pengunaan parameter smart pointer, return value dan fungsi yang mengembalikan object besar dengan value.
&lt;/li&gt;&lt;li&gt;Standard akan digunakan menyebar sehingga anda akan melihatkan hampir disetiap contoh kode. Salah satunya, hampir setiap code program akan dimulai dengan keyword auto pada deklarasinya
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Fitur yang lain dari c++11 tentu saja sangat bagus. Tetapi diharapkan anda terbiasa dengan hal-hal yang dikemukakan disini pertama kali, karena hal-hal berikut merupakan yang lazim digunakan untuk menunjukan mengapa kode c++11 bersih, aman dan cepat – sepadan dengan code yang ditulis dengan bahasa pemroraman mainstraim lain. Ditambahkan lagi kemampuan c++ yang dapat langsung mengakses hardware, performance yang tidak dimiliki bahasa modern lain, membuatnya lebih kuat dari semula.
&lt;/p&gt;&lt;p&gt;Catatan:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Seperti Strunk &amp;amp; White, halaman ini berfokus pada panduan dan kesimpulan singkat. Tidak ditujukan untuk menjadi sumber utama dari analisa kekurangan dan kelebihan dan hal yang detil. Hal tersebut akan dibahas pada artikel lain
&lt;/li&gt;&lt;li&gt;Dokumen ini adalah dokumen yang hidup. Sehingga akan terus menerus diperbaharui dan di revisi.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;auto&lt;/em&gt;
		&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Gunakan auto jika memungkinkan. Ada dua alasan utama. Pertama, kita tidak perlu repot lagi mengulangi nama tipe yang sudah kita tentukan dan diketahui oleh compiler.
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo1.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Kedua, lebih nyaman lagi jika kita tidak mengetahui tipenya atau sulit dituliskan, seperti tipe dari fungsi lambda pada umumnya, dimana kita tidak dapat menuliskannya dengan mudah.
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo2.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Perhatikan bahwa dengan menggunakan auto, makna dari kode tersebut tidak berubah. Code tersebut tetap statically typed dan tidak berubah menjadi dynamic typed. Dan tipe dari setiap ekpresi menjadi jelas, c++ tidak lagi memaksa kita untuk menuliskan nama tipe berulang ulang.
&lt;/p&gt;&lt;p&gt;Beberapa orang pada mulanya takut untuk menggunakan auto, karena merasa ada kemungkinan bahwa tipe yang dikembalikan berbeda dari yang diharapkan. Jika anda ingin secara eksplisit memaksa konversi dari tipe, tidak masalah, anda bisa menyebutkan tipe targetnya. Tetapi untuk bagian yang lain diharapkan anda menggunakan auto saja. Cukup jarang ada situasi kita mendapatkan kesalahan tipe yang berbeda. Dan masih tetap strong static typing maka compiler akan mengingatkan anda jika anda karena kita berusaha memanggil fungsi atau variable yang tidak dimiliki oleh tipe tersebut.
&lt;/p&gt;&lt;h3&gt;&lt;em&gt;Smart pointer : No Delete&lt;/em&gt;
	&lt;/h3&gt;&lt;p&gt;Selalu gunakan smart pointers, dan non-owning raw pointers. Jangan gunakan owning raws pointers dan delete, kecuali di kasus langka dimana anda harus mengimplementasikan struktur data sendiri( meskipun demikian anda harus tetap menjaganya terenkapsulasi dalam batasan kelas)
&lt;/p&gt;&lt;p&gt;Jika anda mengetahui bahwa anda hanyalah satu-satunya pemiliki dari object lain, maka gunakan unique_ptr untuk menujukkan kepemilikan tunggal.
&lt;/p&gt;&lt;p&gt;Ekspresi &amp;quot;new T&amp;quot; seharusnya langsung menginisialisasi object lain yang memilikinya. Contoh klasiknya adalah Pimpl Idiom (see &lt;a href="http://herbsutter.com/gotw/_100/"&gt;GotW #100&lt;/a&gt;):
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo3.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Gunakan shared_ptr untuk mengekspresikan kepemilikian bersama. Gunakan make_shared untuk menciptakan object yang di share tersebut dengan efisien.
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo4.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;h3&gt;&lt;em&gt;Range for&lt;/em&gt;
	&lt;/h3&gt;&lt;p&gt;Perulangan for each lebih nyaman digunakan untuk melakukan iterasi dari setiap elemen pada koleksi secara berurutan.
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo5.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;h3&gt;&lt;em&gt;Non member begin dan end&lt;/em&gt;
	&lt;/h3&gt;&lt;p&gt;Selalu gunakan nonmember begin(x) dan end(ex) (bukan x.begin() dan x.end()), karena begin(x) dan end(x) lebih ekstensible dan dapat digunakan dengan berbagai jenis tipe container bahkan array dan tidak hanya STL container yang menyediakan method x.begin() dan x.end()
&lt;/p&gt;&lt;p&gt;Jika anda menggunakan collection non-STL yang menyediakan iterasi tetapi tidak memiliki x.begin() and x.end() anda dapat menuliskan versi overloading dari non-member begin(x) dan end(x) utuk tipe tersebut dimana anda dapat menjalani tipe koleksi tersebut dengan menggunakan gaya pemrograman yang sama dengan container STL. Standar memiliki beberapa contoh dari penggunaan untuk array C
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo6.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;h3&gt;&lt;em&gt;Fungsi Lambda dan Algoritma&lt;/em&gt;
	&lt;/h3&gt;&lt;p&gt;Lambda merupakan perubahan yang sangat besar dan akan mengubah cara anda menulis kode menjadi lebih elegan dan cepat. Lambda membuat algoritma STL yang sudah ada menjadi lebih berguna 100 x lipat. Library c++ yang baru dirancang dengan mengunakan lambda (contoh: PPL (parallel pattern library)) dan beberapa diantaranya mewajibkan anda menggunakan lambda untuk menggunakan library tersebut (C++ AMP)
&lt;/p&gt;&lt;p&gt;Berikut contoh singkatnya : Temukan elemen pertam di v dimana &amp;gt;x dan &amp;lt;y. Pada c++11, code yang paling simple dan bersih adalah dengan menggunakan algoritma standar yang tersedia
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo7.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Jika anda ingin perulangan atau fitur bahasa yang serupa tetapi tidak tersedia. Tidak masalah. Anda dapat menuliskannya sebagai fungsi template (library algorithm) dan terima kasih kepada lambda anda bisa menggunakannya seolah olah hal tersebut fitur bahasa c++, dan lebih flexible karena merupakan library dan bukan merupakan fitur bahasa.
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo8.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Biasakan menggunakan lambda. Anda akan banyak menggunakannya, dan tidak hanya di c++, tetapi banyak bahasa popular lain yang sudah mengadopsinya. Anda dapat memulai belajar mengenai lambda dengan menonton presentasi &lt;a href="http://herbsutter.com/2010/10/30/pdc-languages-panel-andshortened-lambdas-talk/"&gt;Lambdas, Lambdas Everywhere&lt;/a&gt; at PDC 2010
&lt;/p&gt;&lt;h3&gt;&lt;em&gt;Move / &amp;amp;&amp;amp;&lt;/em&gt;
	&lt;/h3&gt;&lt;p&gt;Move dapat dianggap sebagai optimisasi dari copy, meskipun dapat digunakan juga untuk perfect forwarding
&lt;/p&gt;&lt;p&gt;Move mengubah cara kita merancang API kita. Kita akan lebih sering melakukan return by value dibandingkan sebelumnya.
&lt;/p&gt;&lt;p&gt;&lt;img align="left" src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo9.jpg" alt="" /&gt;&lt;br /&gt;
	&lt;/p&gt;&lt;p&gt;Tambahkan move untuk tipe anda jika anda ingin melakukan sesuatu yang efisien dibandingkan copy.
&lt;/p&gt;&lt;h3&gt;&lt;em&gt;Uniform Initialization and Initializer Lists&lt;/em&gt;
	&lt;/h3&gt;&lt;p&gt;Hal yang tidak berubah adalah ketika kita melakukan inisialisasi terhadap variable local yang memiliki tipe Plain Old Data atau auto, kita akan tetap menggunakan = tanpa extra {}.
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo10.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Untuk kasus lain, anda akan menggantikan () untuk membuat object, dengan menggunakan {}. Menggunakan {} menghindarkan beberapa masalah, yaitu anda tidak akan mendapatkan konversi otomatis (float ke int) secara tidak disengaja, dan anda tidak akan mendapatkan variable atau array POD yang tidak terinisialisasi, dan anda akan menghindarkan kesalahan bahwa code anda dapat di compile tetapi yang mendeklarasikan fungsi dan bukan variable karena ambigu pada grammar c++( Scott Meyers menyebutnya sebagai &amp;quot;c++&amp;#39;s most vexing parse&amp;quot;. Tidak ada yang menjengkelkan dengan gaya yang baru ini.
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo11.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Sintaks {} dapat digunakan hampir dimana saja
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo12.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Kadang-kadang lebih menyenangkan untuk melewatkan argument dari fungsi tanpa membuat tipe sementara.
&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/welly_tambunan/050112_2250_ModernCNo13.jpg" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Satu-satunya tempat dimana {} tidak digunakan adalah untuk inisialisasi sederhana dari variable non-POD seperti auto x = begin(v);,&lt;br /&gt;Dimana code akan menjadi lebih jelek jika kita melakukannya, karena kita tahu bahwa tidak perlu pusing dengan konversi, dan compiler modern akan melakukan optimisasi untuk mencegah extra copy (atau extra move jika type merupakan move-enabled)
&lt;/p&gt;&lt;h3&gt;&lt;em&gt;Dan banyak lagi&lt;/em&gt;
	&lt;/h3&gt;&lt;p&gt;Masih banyak lagi fitur yang belum dijelaskan. Much more. Dimasa depan saya akan menuliskan lebih detail mengenai fitur-fitur berikut dan fitur lain yang akan kita ketahui dan cintai&lt;br /&gt;Tetapi untuk sekarang ini, ini adalah kumpulan dari fitur-fitur yang wajib kita ketahui. Fitur ini merupakan inti yang mendefinisikan gaya pemrogramam c++ yang baru, dimana kode c++menjadi lebih elegan dan akan digunakan dibanyak tempat. Fitur tersebut juga akan membuat modern c++ menjadi bahasa pemrogrman bersih, aman, dan cepat, tetap digunakan industry pada tahun-tahun mendatang.
&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/welly_tambunan/archive/2012/05/03/modern-c-not-your-granddaddy-c.aspx&amp;amp;subject=Modern::C++ (Not Your GrandDaddy) C++" 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/welly_tambunan/archive/2012/05/03/modern-c-not-your-granddaddy-c.aspx&amp;amp;t=Modern%3a%3aC%2b%2b+(Not+Your+GrandDaddy)+C%2b%2b" target="_blank" title="Submit Modern::C++ (Not Your GrandDaddy) C++ 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/welly_tambunan/archive/2012/05/03/modern-c-not-your-granddaddy-c.aspx&amp;amp;title=Modern%3a%3aC%2b%2b+(Not+Your+GrandDaddy)+C%2b%2b" target="_blank" title="Submit Modern::C++ (Not Your GrandDaddy) C++ 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/welly_tambunan/archive/2012/05/03/modern-c-not-your-granddaddy-c.aspx&amp;amp;phase=2" target="_blank" title="Submit Modern::C++ (Not Your GrandDaddy) C++ 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/welly_tambunan/archive/2012/05/03/modern-c-not-your-granddaddy-c.aspx&amp;amp;title=Modern%3a%3aC%2b%2b+(Not+Your+GrandDaddy)+C%2b%2b" target="_blank" title="Add Modern::C++ (Not Your GrandDaddy) C++ 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=193423" width="1" height="1"&gt;</description></item><item><title>WinRT Application Binary Interface dengan C++</title><link>http://geeks.netindonesia.net/blogs/risman/archive/2012/05/03/winrt-application-binary-interface-dengan-c.aspx</link><pubDate>Wed, 02 May 2012 18:18:32 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193422</guid><dc:creator>Risman Adnan Mattotorang</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Tutorial ini ditujukan untuk developer yang ingin mempelajari pemrograman Metro App di Windows 8 dengan C++. Sebelum membahas konsep dan istilah-istilah yang akan membingungkan anda, saya ingin menunjukkan skenario sederhana, dimana kita akan membuat satu komponen DLL dengan native C++ dan memanggil DLL tersebut menggunakan JavaScript atau C#. Sangat sederhana tetapi saya berharap bisa membuka wawasan anda mengenai WinRT untuk eksplorasi lebih dalam. &lt;/p&gt;  &lt;p&gt;Untuk mengikuti tutorial ini, anda perlu menginstall Visual Studio 11 Express Beta untuk Windows 8. Silahkan download &lt;a href="http://msdn.microsoft.com/en-us/windows/apps/br229516/"&gt;disini&lt;/a&gt;. Saya asumsikan anda telah menggunakan Windows 8 dan siap dengan Visual Studio. Mari kita mulai dengan membuat project WinRT Component DLL (Visual C++). Dalam contoh saya, kita akan membuat DLL sederhana sebagai native WinRT library dengan nama project &lt;strong&gt;CalcDLL&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/image_5F88A051.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_thumb_1E130F5A.png" width="442" height="286" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Buat satu class Calculator anda yang paling sederhana, dengan satu public method untuk menjumlahkan dua integer. Hapus code yang di generate oleh Visual Studio yang tidak anda butuhkan sehingga &lt;strong&gt;WinRTComponent.h&lt;/strong&gt; anda adalah sebagai berikut:    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;#pragma once&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;namespace CalcDLL      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public ref class Calculator sealed       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public:       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int Add(int i, int j)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return i+j;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; };       &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;dan &lt;strong&gt;WinRTComponent.cpp&lt;/strong&gt; anda terlihat seperti berikut:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;// WinRTComponent.cpp     &lt;br /&gt;#include &amp;quot;pch.h&amp;quot;      &lt;br /&gt;#include &amp;quot;WinRTComponent.h&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;using namespace CalcDLL;     &lt;br /&gt;using namespace Platform;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Selanjutnya compile/build project CalcDLL tersebut dan kita telah siap untuk membuat aplikasi client menggunakan C# atau JavaScript. Untuk membuat aplikasi client di C#, tambahkan satu project C# di solution anda dan pilih Blank Application, beri nama &lt;strong&gt;CalcDLLCSClient&lt;/strong&gt;. Set project C# tersebut sebagai Startup project karena aplikasi client ini yang akan kita jalankan terlebih dahulu.     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/image_7FCAE914.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_thumb_231A6E6B.png" width="453" height="291" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Untuk menggunakan CalcDLL sebagai referensi dalam project CalcDLLCSClient, klik kanan di menu &lt;strong&gt;References &lt;/strong&gt;dan klik &lt;strong&gt;Add Reference&lt;/strong&gt;. Visual Studio akan memberikan Reference Manager form untuk memilih project mana yang akan anda referensikan ke CalcDLLCSClient. Tentu saja kita pilih CalcDLL.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/image_5031EBEA.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_thumb_36CC7961.png" width="457" height="324" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sekarang saatnya kita membuat User Interface sederhana dengan XAML. Drag satu Textbox control dari Toolbox beri nama yang mudah diingat, CalcResult, dan XAML code anda akan terlihat seperti ini:&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;TextBox Name=&amp;quot;CalcResult&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Margin=&amp;quot;341,55,0,0&amp;quot; TextWrapping=&amp;quot;Wrap&amp;quot; Text=&amp;quot;&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;174&amp;quot;/&amp;gt;     &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#333333"&gt;Tambahkan using CalcDLL namespace di code behind C# dan instantiate object Calculator, sebagai berikut (tulisan merah):&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;using System;     &lt;br /&gt;using System.Collections.Generic;      &lt;br /&gt;using System.IO;      &lt;br /&gt;using System.Linq;      &lt;br /&gt;using Windows.Foundation;      &lt;br /&gt;using Windows.Foundation.Collections;      &lt;br /&gt;using Windows.UI.Xaml;      &lt;br /&gt;using Windows.UI.Xaml.Controls;      &lt;br /&gt;using Windows.UI.Xaml.Controls.Primitives;      &lt;br /&gt;using Windows.UI.Xaml.Data;      &lt;br /&gt;using Windows.UI.Xaml.Input;      &lt;br /&gt;using Windows.UI.Xaml.Media;      &lt;br /&gt;using Windows.UI.Xaml.Navigation;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;using CalcDLL;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;namespace CalcDLLCSClient     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public sealed partial class BlankPage : Page      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public BlankPage()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.InitializeComponent();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#ff0000"&gt;Calculator calcObject = new Calculator();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CalcResult.Text = calcObject.Add(100, 200).ToString();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}      &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Dan anda telah selesai membuat C# Client. Untuk menjalankan aplikasi client, tekan F5 (seperti biasa) dan dapatkan hasil perhitungan 100 + 200 di dalam textbox. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/image_61A76E24.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://geeks.netindonesia.net/blogs/risman/image_thumb_29F4B3F4.png" width="469" height="307" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Dan kita telah selesai membuat satu DLL dengan C++ dan satu client menggunakan XAML dan C#. Jika anda cukup jeli, ini hal yang sangat menarik untuk dipelajari lebih jauh. Terutama buat veteran .NET jaman saya dulu, membuat satu DLL dengan native C++ dan mengkonsumsi DLL tersebut di C#, perlu menggunakan P/Invoke atau COM object. Di dalam WinRT, Application Binary Interface, Language Projection dan Windows Metadata (winmd) memungkinkan hal ini terjadi dengan cara yang natural dan mudah dimengerti. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bagaimana dengan rekan-rekan yang terbiasa dengan Web, HTML dan JavaScript? Apakah bisa mendapatkan hal yang sama? Banyak sekali games engine atau numerical libraries yang masih ditulis dengan C++, STL dan boost. Dengan WinRT, anda dapat memanfaatkan code tersebut untuk membuat aplikasi yang modern dengan C++. Saat anda belajar algoritma di kampus dengan C/C++, saat itu juga anda bisa mulai membuat aplikasi Metro. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Mari kita membuat HTML/JavaScript client. Tambahkan satu project JavaScript, berikan nama &lt;strong&gt;CalcDLLJSClient&lt;/strong&gt;. Mirip seperti C#, tetapi kali ini kita akan menuliskan code nya menggunakan JavaScript. Jangan lupa set CalcDLLJSClient sebagai startup project anda. Seperti halnya dengan C# project anda perlu menambahkan referensi ke project CalcDLL. Setelah itu kita bisa membuat satu div di code HTML untuk menampung hasil perhitungan nantinya. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;br/&amp;gt;     &lt;br /&gt; &amp;lt;div id=&amp;quot;calcResult&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;      &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Di bagian JavaScript, code untuk membuat object calculator juga sangat sederhana, karena CalcDLL.Calculator telah tersedia dalam Intellisense Visual Studio. Windows Metadata (winmd) menyediakan semua metadata yang dipublish dalam WinRT. Berikut ini adalah code di JavaScript nya.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;(function () {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;quot;use strict&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; var app = WinJS.Application;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; app.onactivated = function (eventObject) {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (eventObject.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (eventObject.detail.previousExecutionState !== Windows.ApplicationModel.Activation.ApplicationExecutionState.terminated) {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } else {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#ff0000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var calc = new CalcDLL.Calculator();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; document.getElementById(&amp;quot;calcResult&amp;quot;).innerText = calc.add(100, 200);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WinJS.UI.processAll();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; };&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; app.oncheckpoint = function (eventObject) {     &lt;br /&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; };      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; app.start();      &lt;br /&gt;})();&lt;/font&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Jika semuanya berjalan dengan baik, anda akan mendapatkan hasil penjumlahan 100 + 200 di aplikasi client JavaScript. Sekali lagi, pasti banyak pertanyaan yang anda miliki mengapa dengan mudah kita dapat memanggil native DLL yang ditulis dengan native C++ di aplikasi client yang ditulis dengan C# dan JavaScript. Jika anda tertarik mengetahui “what is under the cover”, banyak sekali materi pembelajaran yang ada di &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465045.aspx"&gt;MSDN&lt;/a&gt;, &lt;a href="http://channel9.msdn.com"&gt;Channel9&lt;/a&gt; dan &lt;a href="http://buildwindows.com/"&gt;BUILD&lt;/a&gt;. Saya sangat menyarankan anda melakukan eksplorasi lebih jauh mengenai WinRT, Windows Metadata, App Binary Interface, Language projection, melalui websites tersebut. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Untuk mempercepat proses belajar anda, kami memiliki serangkaian program pembelajaran untuk anggota komunitas melalui &lt;strong&gt;&lt;a href="http://aka.ms/mdcjogja"&gt;Microsoft Developer Conference&lt;/a&gt;&lt;/strong&gt; (MDC). Beberapa hari lagi, tanggal 16-17 Mei 2012, Microsoft Indonesia akan menyelenggarakan MDC – Windows 8 hackathon di Jogjakarta. Event ini akan menjadi sarana belajar yang effisien buat anda, karena dalam 24 jam bersama kami, anda akan mempelajari banyak hal mengenai Windows 8 dan Metro App. Hackathon ini terbuka untuk mahasiswa, freelancer dan professional developer, silahkan mendaftar di : &lt;a href="http://aka.ms/mdcjogja"&gt;http://aka.ms/mdcjogja&lt;/a&gt;. Atau klik digambar berikut:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://aka.ms/mdcjogja"&gt;&lt;img title="Web Banner Windows 8 Hackathon" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:5px 5px 5px 0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Web Banner Windows 8 Hackathon" src="http://geeks.netindonesia.net/blogs/risman/Web-Banner-Windows-8-Hackathon_606565F6.jpg" width="671" height="117" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Menyambut MDC – Windows 8 Hackathon, saya akan menulis serangkaian tutorial untuk membantu persiapan anda.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope this helps!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cheers – Risman Adnan &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/risman/archive/2012/05/03/winrt-application-binary-interface-dengan-c.aspx&amp;amp;subject=WinRT Application Binary Interface dengan C++" 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/risman/archive/2012/05/03/winrt-application-binary-interface-dengan-c.aspx&amp;amp;t=WinRT+Application+Binary+Interface+dengan+C%2b%2b" target="_blank" title="Submit WinRT Application Binary Interface dengan C++ 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/risman/archive/2012/05/03/winrt-application-binary-interface-dengan-c.aspx&amp;amp;title=WinRT+Application+Binary+Interface+dengan+C%2b%2b" target="_blank" title="Submit WinRT Application Binary Interface dengan C++ 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/risman/archive/2012/05/03/winrt-application-binary-interface-dengan-c.aspx&amp;amp;phase=2" target="_blank" title="Submit WinRT Application Binary Interface dengan C++ 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/risman/archive/2012/05/03/winrt-application-binary-interface-dengan-c.aspx&amp;amp;title=WinRT+Application+Binary+Interface+dengan+C%2b%2b" target="_blank" title="Add WinRT Application Binary Interface dengan C++ 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=193422" width="1" height="1"&gt;</description></item></channel></rss>

