<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.netindonesia.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>antonmaju</title><link>http://geeks.netindonesia.net/blogs/antonmaju/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>NHibernate 3.0 General Availability</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/12/07/NHibernate_2D00_30_2D00_Is_2D00_Released_2100_.aspx</link><pubDate>Mon, 06 Dec 2010 23:09:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:191529</guid><dc:creator>antonmaju</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=191529</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/12/07/NHibernate_2D00_30_2D00_Is_2D00_Released_2100_.aspx#comments</comments><description>&lt;p&gt;Yesterday (4 Dec 2010) , NHibernate 3.0 was released. &lt;/p&gt;  &lt;p&gt;This new version targets .NET 3.5, so the new API supports lambda expression now.&lt;/p&gt;  &lt;p&gt;For configuration, there are extension methods, that allowed us to ensure type safety.&lt;/p&gt;  &lt;p&gt;Below is the example:&lt;/p&gt;  &lt;div style="background-color:#dedede;width:500px;"&gt;   &lt;pre class="brush: csharp;"&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;var nhConfig = new Configuration()
.Proxy(proxy =&amp;gt;
proxy.ProxyFactoryFactory&amp;lt;ProxyFactoryFactory&amp;gt;())
.DataBaseIntegration(db =&amp;gt;
{
db.Dialect&amp;lt;MsSql2008Dialect&amp;gt;();
db.ConnectionStringName = &amp;quot;MyConn&amp;quot;;
db.BatchSize = 60;
})
.AddAssembly(&amp;quot;MyProject.Model&amp;quot;);
var sessionFactory = nhConfig.BuildSessionFactory();&lt;/font&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Now NHibernate supports QueryOver method, which is the new fluent syntax for criteria queries. &lt;/p&gt;

&lt;p&gt;Previously we often use criteria query like this&lt;/p&gt;

&lt;div style="background-color:#dedede;width:500px;"&gt;
  &lt;pre class="brush: csharp;"&gt;&lt;font size="2" face="Consolas"&gt;var user=session.CreateCriteria&amp;lt;User&amp;gt;()
.Add(Restrictions.Eq(&amp;quot;Email&amp;quot;,emailToMatch))
.UniqueResult&amp;lt;User&amp;gt;();&lt;/font&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;The property is written in string, so if there is typo error, we won’t detect it during compile time. This problem is solved with QueryOver.&lt;/p&gt;

&lt;div style="background-color:#dedede;width:500px;"&gt;
  &lt;pre class="brush: csharp;"&gt;&lt;font size="2" face="Consolas"&gt;var user=session.QueryOver&amp;lt;User&amp;gt;()
.Where(u=&amp;gt;u.Email==emailToMatch)
.SingleOrDefault();&lt;/font&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;The QueryOver is meant as a strongly typed version of Criteria. &lt;/p&gt;

&lt;p&gt;NHibernate also has its own LINQ provider in the namespace NHibernate.Linq (which is integrated in the main assembly, NHibernate.dll).&amp;#160; &lt;/p&gt;

&lt;div style="background-color:#dedede;width:500px;"&gt;
  &lt;pre class="brush: csharp;"&gt;&lt;font size="2" face="Consolas"&gt;var user= session.Query&amp;lt;User&amp;gt;()
    .Where(s =&amp;gt; s.Email==emailToMatch)
    .FirstOrDefault();

var user=(from u in session.Query&amp;lt;User&amp;gt;()
    where u.Email==emailToMatch select u)
    .FirstOrDefault();&lt;/font&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Note that I’m new to NHibernate, and I ‘m learning it from Jason Dentler’s NHibernate 3.0 cookbook, which is a good reference book.&lt;/p&gt;

&lt;p&gt;You can download NHibernate 3.0 &lt;a href="http://sourceforge.net/projects/nhibernate/files/NHibernate/3.0.0.GA/NHibernate-3.0.0.GA-bin.zip/download"&gt;here&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/antonmaju/archive/2010/12/07/NHibernate_2D00_30_2D00_Is_2D00_Released_2100_.aspx&amp;amp;subject=NHibernate 3.0 General Availability" 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/antonmaju/archive/2010/12/07/NHibernate_2D00_30_2D00_Is_2D00_Released_2100_.aspx&amp;amp;t=NHibernate+3.0+General+Availability" target="_blank" title="Submit NHibernate 3.0 General Availability 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/antonmaju/archive/2010/12/07/NHibernate_2D00_30_2D00_Is_2D00_Released_2100_.aspx&amp;amp;title=NHibernate+3.0+General+Availability" target="_blank" title="Submit NHibernate 3.0 General Availability 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/antonmaju/archive/2010/12/07/NHibernate_2D00_30_2D00_Is_2D00_Released_2100_.aspx&amp;amp;phase=2" target="_blank" title="Submit NHibernate 3.0 General Availability 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/antonmaju/archive/2010/12/07/NHibernate_2D00_30_2D00_Is_2D00_Released_2100_.aspx&amp;amp;title=NHibernate+3.0+General+Availability" target="_blank" title="Add NHibernate 3.0 General Availability 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=191529" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/antonmaju/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.netindonesia.net/blogs/antonmaju/archive/tags/nhibernate/default.aspx">nhibernate</category></item><item><title>Manning Tdk Menerima Pesanan Buku ke Indonesia?</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/02/03/manning-tdk-menerima-pesanan-buku-ke-indonesia.aspx</link><pubDate>Wed, 03 Feb 2010 00:58:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:185702</guid><dc:creator>antonmaju</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=185702</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/02/03/manning-tdk-menerima-pesanan-buku-ke-indonesia.aspx#comments</comments><description>&lt;p&gt;Hari ini ketika saya cek blog Ayende Rahien, dia memberikan kupon promosi untuk discount 50% pembelian buku karangannya &amp;quot;DSLs in Boo&amp;quot; di http://www.manning.com khusus hari ini. Kupon promosi tersebut hanya berlaku hari ini.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Penasaran saja, saya iseng masukkan item &amp;quot;DSLs in Boo&amp;quot; beserta&amp;nbsp; kupon promosi. Harganya yang semula 49USD berkurang hingga 25 USD (lbh murah dari Amazon 34 USD)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Tapi ketika masukkan alamat country , WTF?!&amp;nbsp; Tidak ada negara Indonesia di combobox ! &lt;br /&gt;&lt;/p&gt;&lt;p&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/antonmaju/archive/2010/02/03/manning-tdk-menerima-pesanan-buku-ke-indonesia.aspx&amp;amp;subject=Manning Tdk Menerima Pesanan Buku ke Indonesia?" 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/antonmaju/archive/2010/02/03/manning-tdk-menerima-pesanan-buku-ke-indonesia.aspx&amp;amp;t=Manning+Tdk+Menerima+Pesanan+Buku+ke+Indonesia%3f" target="_blank" title="Submit Manning Tdk Menerima Pesanan Buku ke Indonesia? 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/antonmaju/archive/2010/02/03/manning-tdk-menerima-pesanan-buku-ke-indonesia.aspx&amp;amp;title=Manning+Tdk+Menerima+Pesanan+Buku+ke+Indonesia%3f" target="_blank" title="Submit Manning Tdk Menerima Pesanan Buku ke Indonesia? 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/antonmaju/archive/2010/02/03/manning-tdk-menerima-pesanan-buku-ke-indonesia.aspx&amp;amp;phase=2" target="_blank" title="Submit Manning Tdk Menerima Pesanan Buku ke Indonesia? 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/antonmaju/archive/2010/02/03/manning-tdk-menerima-pesanan-buku-ke-indonesia.aspx&amp;amp;title=Manning+Tdk+Menerima+Pesanan+Buku+ke+Indonesia%3f" target="_blank" title="Add Manning Tdk Menerima Pesanan Buku ke Indonesia? 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=185702" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/antonmaju/archive/tags/Book/default.aspx">Book</category></item><item><title>StyleCop Untuk Menganalisa Source Code Anda</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/01/16/stylecop-untuk-menganalisa-source-code-anda.aspx</link><pubDate>Sat, 16 Jan 2010 14:41:35 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:185458</guid><dc:creator>antonmaju</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=185458</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/01/16/stylecop-untuk-menganalisa-source-code-anda.aspx#comments</comments><description>&lt;p&gt;Di dalam sebuah programmer team, tentunya sering kita melihat perbedaan coding style. Ada yang deskriptif dengan menempatkan comment di setiap method, tapi ada pula yang bahkan tidak memberi comment sama sekali, sehingga menyulitkan untuk transfer knowledge kelak. &lt;/p&gt;  &lt;p&gt;Penamaan field pun beragam, ada yang menggyunakan Pascal Case, Hungarian Notation, dan banyak pula yang tak konsisten.&lt;/p&gt;  &lt;p&gt;StyleCop merupakan add on Visual Studio, berfungsi membantu Anda untuk memastikan source code Anda sesuai dengan best practices nya Microsoft.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/antonmaju/stylecop1_57908E05.jpg"&gt;&lt;img title="style-cop1" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="491" alt="style-cop1" src="http://geeks.netindonesia.net/blogs/antonmaju/stylecop1_thumb_265DDB40.jpg" width="696" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; Anda bisa menjalankannya melakui klik kanan di solution explorer.&lt;/p&gt;  &lt;p&gt;Hasil pengecekan StyleCop bisa Anda lihat di Error List window.&lt;/p&gt;  &lt;p&gt;Anda juga bisa mengatur validation rule dari StyleCop.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/antonmaju/stylecop2_7984AFFF.jpg"&gt;&lt;img title="style-cop2" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="396" alt="style-cop2" src="http://geeks.netindonesia.net/blogs/antonmaju/stylecop2_thumb_441B5200.jpg" width="433" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;StyleCop bisa Anda dapatkan dari &lt;a title="http://www.code.msdn.microsoft.com/sourceanalysis" href="http://www.code.msdn.microsoft.com/sourceanalysis"&gt;http://www.code.msdn.microsoft.com/sourceanalysis&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/antonmaju/archive/2010/01/16/stylecop-untuk-menganalisa-source-code-anda.aspx&amp;amp;subject=StyleCop Untuk Menganalisa Source Code Anda" 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/antonmaju/archive/2010/01/16/stylecop-untuk-menganalisa-source-code-anda.aspx&amp;amp;t=StyleCop+Untuk+Menganalisa+Source+Code+Anda" target="_blank" title="Submit StyleCop Untuk Menganalisa Source Code Anda 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/antonmaju/archive/2010/01/16/stylecop-untuk-menganalisa-source-code-anda.aspx&amp;amp;title=StyleCop+Untuk+Menganalisa+Source+Code+Anda" target="_blank" title="Submit StyleCop Untuk Menganalisa Source Code Anda 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/antonmaju/archive/2010/01/16/stylecop-untuk-menganalisa-source-code-anda.aspx&amp;amp;phase=2" target="_blank" title="Submit StyleCop Untuk Menganalisa Source Code Anda 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/antonmaju/archive/2010/01/16/stylecop-untuk-menganalisa-source-code-anda.aspx&amp;amp;title=StyleCop+Untuk+Menganalisa+Source+Code+Anda" target="_blank" title="Add StyleCop Untuk Menganalisa Source Code Anda 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=185458" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/antonmaju/archive/tags/Programming+Tools/default.aspx">Programming Tools</category></item><item><title>Localizing Enum Description</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/01/09/localizing-enum-description.aspx</link><pubDate>Sat, 09 Jan 2010 14:19:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:185281</guid><dc:creator>antonmaju</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=185281</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/01/09/localizing-enum-description.aspx#comments</comments><description>&lt;p&gt;Recently, I ran into a problem , where I need to iterate through an enum, and get a localized description of its member. As an example, I’ll use enum Faculties.&lt;/p&gt;  &lt;div style="font-size:11px;"&gt;public enum Faculties&lt;br /&gt;{&lt;br /&gt;    Engineeering=1,&lt;br /&gt;    Economy=2,&lt;br /&gt;    Physchology=3,&lt;br /&gt;    Law=4,&lt;br /&gt;    Pharmacy=5&lt;br /&gt;}&lt;/div&gt;

&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Since we’re doing localization we need to create resx file and localized resx (in this example I use Indonesian culture), and assign value for each enum member. Don’t forget to set resource access modifier to public.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/antonmaju/enum_neutral3_467B1407.png"&gt;&lt;img src="http://geeks.netindonesia.net/blogs/antonmaju/enum_neutral_thumb13_63A0BC11.png" title="enum_neutral_thumb1[3]" style="border:0px none;display:inline;" alt="enum_neutral_thumb1[3]" border="0" width="428" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/antonmaju/enum_localized_thumb3_77F65BCF.png" title="enum_localized_thumb3" style="border:0px none;display:inline;" alt="enum_localized_thumb3" border="0" width="572" height="125" /&gt;&lt;/p&gt;

&lt;p&gt;How do we connect enum member with resource file? We can use a DescriptionAttribute and add it to all enum members. The trick here is we set the description to strongly type property name .&lt;/p&gt;

&lt;p&gt;So here is our final enum:&lt;/p&gt;

&lt;div style="font-size:11px;"&gt;public enum Faculties&lt;br /&gt;{&lt;br /&gt;    [Description(&amp;quot;Faculties_Engineering&amp;quot;)]&lt;br /&gt;    Engineering = 1,&lt;br /&gt;&lt;br /&gt;    [Description(&amp;quot;Faculties_Economy&amp;quot;)]&lt;br /&gt;    Economy = 2,&lt;br /&gt;        &lt;br /&gt;    [Description(&amp;quot;Faculties_Physchology&amp;quot;)]&lt;br /&gt;    Physchology = 3,&lt;br /&gt;        &lt;br /&gt;    [Description(&amp;quot;Faculties_Law&amp;quot;)]&lt;br /&gt;    Law = 4,&lt;br /&gt;        &lt;br /&gt;    [Description(&amp;quot;Faculties_Pharmacy&amp;quot;)]&lt;br /&gt;    Pharmacy = 5&lt;br /&gt;}&lt;/div&gt;

&lt;p&gt;And finally we add extension method for Faculties enum&lt;/p&gt;

&lt;div style="font-size:11px;"&gt;public static class Extensions&lt;br /&gt;{&lt;br /&gt;    public static string ToLocalizedString(this Faculties val)&lt;br /&gt;    {&lt;br /&gt;&lt;div style="margin-left:40px;"&gt;         DescriptionAttribute[] attributes = (DescriptionAttribute[])val.GetType().GetField(val.ToString()).&lt;/div&gt;&lt;/div&gt;&lt;div style="font-size:11px;"&gt;&lt;div style="margin-left:40px;"&gt;GetCustomAttributes(typeof(DescriptionAttribute), false);&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left:40px;"&gt;         string description = attributes.Length &amp;gt; 0 ? attributes[0].Description : string.Empty;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left:40px;"&gt;         string result = string.Empty;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left:40px;"&gt;         if (!string.IsNullOrEmpty(description))&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left:40px;"&gt;         {&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left:80px;"&gt;             result = typeof(LanguageResource).GetProperty(description).GetValue(null, null) as string;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left:40px;"&gt;         }&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left:40px;"&gt;         return result;&lt;br /&gt;&lt;/div&gt;    }&lt;br /&gt;} &lt;/div&gt;

&lt;p&gt;Here is the output of iterating Faculties enum in Indonesian culture:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/blogs/antonmaju/console_enum_thumb2_0690E1E8.png" title="console_enum_thumb2" style="border:0px none;display:inline;" alt="console_enum_thumb2" border="0" width="344" height="200" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://antonsetiawan.com/file.axd?file=2009%2f12%2fLocalizedEnum.7z"&gt;LocalizedEnum.7z (7.12 kb)&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/antonmaju/archive/2010/01/09/localizing-enum-description.aspx&amp;amp;subject=Localizing Enum Description" 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/antonmaju/archive/2010/01/09/localizing-enum-description.aspx&amp;amp;t=Localizing+Enum+Description" target="_blank" title="Submit Localizing Enum Description 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/antonmaju/archive/2010/01/09/localizing-enum-description.aspx&amp;amp;title=Localizing+Enum+Description" target="_blank" title="Submit Localizing Enum Description 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/antonmaju/archive/2010/01/09/localizing-enum-description.aspx&amp;amp;phase=2" target="_blank" title="Submit Localizing Enum Description 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/antonmaju/archive/2010/01/09/localizing-enum-description.aspx&amp;amp;title=Localizing+Enum+Description" target="_blank" title="Add Localizing Enum Description 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=185281" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/antonmaju/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>ResEx , The .NET Resource Editor</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/01/09/resex-the-net-resource-editor.aspx</link><pubDate>Sat, 09 Jan 2010 13:53:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:185280</guid><dc:creator>antonmaju</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=185280</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/01/09/resex-the-net-resource-editor.aspx#comments</comments><description>&lt;p&gt;I’m working with .NET localization lately, and this stuff helps me a lot.&lt;/p&gt;  &lt;p&gt;&lt;a&gt;&lt;img src="http://www.antonsetiawan.com/image.axd?picture=resex2_thumb.png" title="resex2_thumb1" style="border-width:0px;display:inline;" alt="resex2_thumb1" border="0" width="366" height="270" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Resex is translation friendly resource editor, which is created by Dimitris Papadimitriou. It receives neutral culture .resx as an input, and&amp;nbsp; it will produce a new .resx based on local culture that you select. What makes it rocks is that you can edit local culture directly beside the base value (the value of neutral culture). Simple and effective. Visit &lt;a href="http://www.papadi.gr/resex.aspx"&gt;this&lt;/a&gt; for more information. &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/antonmaju/archive/2010/01/09/resex-the-net-resource-editor.aspx&amp;amp;subject=ResEx , The .NET Resource Editor" 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/antonmaju/archive/2010/01/09/resex-the-net-resource-editor.aspx&amp;amp;t=ResEx+%2c+The+.NET+Resource+Editor" target="_blank" title="Submit ResEx , The .NET Resource Editor 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/antonmaju/archive/2010/01/09/resex-the-net-resource-editor.aspx&amp;amp;title=ResEx+%2c+The+.NET+Resource+Editor" target="_blank" title="Submit ResEx , The .NET Resource Editor 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/antonmaju/archive/2010/01/09/resex-the-net-resource-editor.aspx&amp;amp;phase=2" target="_blank" title="Submit ResEx , The .NET Resource Editor 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/antonmaju/archive/2010/01/09/resex-the-net-resource-editor.aspx&amp;amp;title=ResEx+%2c+The+.NET+Resource+Editor" target="_blank" title="Add ResEx , The .NET Resource Editor 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=185280" width="1" height="1"&gt;</description></item><item><title>Firing Event Anywhere With Event Aggregator</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/01/07/firing-event-everywhere-with-event-aggregator.aspx</link><pubDate>Thu, 07 Jan 2010 14:07:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:185229</guid><dc:creator>antonmaju</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=185229</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/01/07/firing-event-everywhere-with-event-aggregator.aspx#comments</comments><description>&lt;p&gt;If you create a windows client application, you’ll often need to fire an 
event from one window / form to others.&amp;nbsp; We can do it easily by creating an 
event aggregator, which receives event notifications and process them by their 
name.
&lt;/p&gt; 
&lt;div style="font-family:Arial,Tahoma;font-size:11px;"&gt;
&lt;p&gt;public delegate void CommonHandler(object data);&lt;br /&gt;&lt;br /&gt;public sealed class EventAggregator&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static object locker = new object();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static EventAggregator instance = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Dictionary&amp;lt;string, List&amp;lt;CommonHandler&amp;gt;&amp;gt; dicEvent = null;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private EventAggregator()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dicEvent = new Dictionary&amp;lt;string, List&amp;lt;CommonHandler&amp;gt;&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static EventAggregator GetInstance()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (instance == null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lock (locker)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (instance == null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; instance = new EventAggregator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return instance;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Subscribe(string eventName, CommonHandler handler)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lock (locker)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!dicEvent.ContainsKey(eventName))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dicEvent[eventName] = new List&amp;lt;CommonHandler&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!dicEvent[eventName].Contains(handler))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dicEvent[eventName].Add(handler);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Publish(string eventName, object data)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lock (locker)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dicEvent.ContainsKey(eventName))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; dicEvent[eventName].Count; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dicEvent[eventName][ i ] != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dicEvent[eventName][ i ](data);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Unsubscribe(string eventName, CommonHandler handler)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lock (locker)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dicEvent.ContainsKey(eventName))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int index = dicEvent[eventName].IndexOf(handler);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (index &amp;gt; -1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dicEvent[eventName].RemoveAt(index);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dicEvent[eventName].Count == 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dicEvent.Remove(eventName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;} &lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;The implementation above is&amp;nbsp; singleton class but you may change it into 
static class if you don’t wish to add other instance class behaviors (such as 
indexer, implements interface,etc). You may also change the delegate definition 
to suit your need. &lt;/p&gt;
&lt;p&gt;The source code (along with example) is available &lt;a href="http://cid-7c6ad4aad5dbad7d.skydrive.live.com/self.aspx/.Public/EventAggregator.7z"&gt;here&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/antonmaju/archive/2010/01/07/firing-event-everywhere-with-event-aggregator.aspx&amp;amp;subject=Firing Event Anywhere With Event Aggregator" 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/antonmaju/archive/2010/01/07/firing-event-everywhere-with-event-aggregator.aspx&amp;amp;t=Firing+Event+Anywhere+With+Event+Aggregator" target="_blank" title="Submit Firing Event Anywhere With Event Aggregator 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/antonmaju/archive/2010/01/07/firing-event-everywhere-with-event-aggregator.aspx&amp;amp;title=Firing+Event+Anywhere+With+Event+Aggregator" target="_blank" title="Submit Firing Event Anywhere With Event Aggregator 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/antonmaju/archive/2010/01/07/firing-event-everywhere-with-event-aggregator.aspx&amp;amp;phase=2" target="_blank" title="Submit Firing Event Anywhere With Event Aggregator 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/antonmaju/archive/2010/01/07/firing-event-everywhere-with-event-aggregator.aspx&amp;amp;title=Firing+Event+Anywhere+With+Event+Aggregator" target="_blank" title="Add Firing Event Anywhere With Event Aggregator 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=185229" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/antonmaju/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Beware of IsNumeric !</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/01/05/beware-of-isnumeric.aspx</link><pubDate>Tue, 05 Jan 2010 15:13:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:185157</guid><dc:creator>antonmaju</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=185157</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2010/01/05/beware-of-isnumeric.aspx#comments</comments><description>&lt;p&gt;Recently I got a bad experience with IsNumeric built in function of SQL 
Server. The idea is I calculate some part of a given number in varchar data type 
(separated by slash) and convert it to integer. So I used IsNumeric to check 
each character to determine whether it is digit or not. &lt;/p&gt;&lt;pre class="brush: sql; auto-links: false;"&gt;select isnumeric(&amp;#39;-&amp;#39;)&lt;/pre&gt;
&lt;p&gt;The above statement will return true which is unexpected. Hence this caused 
conversion error in my function.&amp;nbsp; I don’t know whether this behavior is a bug or 
by design, but it is quite annoying.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;pre class="brush: sql; auto-links: false;"&gt;CREATE FUNCTION IsDigit&lt;br /&gt;(&lt;br /&gt;    @char char(1)&lt;br /&gt;)&lt;br /&gt;RETURNS bit&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;    DECLARE @result as bit&lt;br /&gt;&lt;br /&gt;    select @result= case when exists(select 1 where  @char like &amp;#39;%[0-9]%&amp;#39;)&lt;br /&gt;    then 1 else 0 end&lt;br /&gt;    &lt;br /&gt;    return @result&lt;br /&gt;&lt;br /&gt;END&lt;br /&gt;GO&lt;/pre&gt;
&lt;p&gt;The above function will work just like Char.IsDigit in .NET, however if you 
need to evalute more character then this function will do&lt;/p&gt;&lt;pre class="brush: sql; auto-links: false;"&gt;CREATE FUNCTION dbo.isReallyInteger  &lt;br /&gt;(  &lt;br /&gt;    @num VARCHAR(64)  &lt;br /&gt;)  &lt;br /&gt;RETURNS BIT  &lt;br /&gt; BEGIN  &lt;br /&gt;    IF LEFT(@num, 1) = &amp;#39;-&amp;#39;  &lt;br /&gt;        SET @num = SUBSTRING(@num, 2, LEN(@num))  &lt;br /&gt;&lt;br /&gt;    RETURN CASE  &lt;br /&gt;    WHEN PATINDEX(&amp;#39;%[^0-9-]%&amp;#39;, @num) = 0  &lt;br /&gt;        AND  CHARINDEX(&amp;#39;-&amp;#39;, @num) &amp;lt;= 1  &lt;br /&gt;        AND @num NOT IN (&amp;#39;.&amp;#39;, &amp;#39;-&amp;#39;, &amp;#39;+&amp;#39;, &amp;#39;^&amp;#39;) &lt;br /&gt;        AND LEN(@num)&amp;gt;0  &lt;br /&gt;        AND @num NOT LIKE &amp;#39;%-%&amp;#39; &lt;br /&gt;    THEN  &lt;br /&gt;        1  &lt;br /&gt;    ELSE  &lt;br /&gt;        0  &lt;br /&gt;    END  &lt;br /&gt;END  &lt;br /&gt;GO&lt;/pre&gt;
&lt;p&gt;The dbo.IsReallyInteger function is taken from this &lt;a href="http://ask.sqlservercentral.com/questions/1025/bug-in-mssql-function-isnumeric"&gt;forum&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/antonmaju/archive/2010/01/05/beware-of-isnumeric.aspx&amp;amp;subject=Beware of IsNumeric !" 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/antonmaju/archive/2010/01/05/beware-of-isnumeric.aspx&amp;amp;t=Beware+of+IsNumeric+!" target="_blank" title="Submit Beware of IsNumeric ! 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/antonmaju/archive/2010/01/05/beware-of-isnumeric.aspx&amp;amp;title=Beware+of+IsNumeric+!" target="_blank" title="Submit Beware of IsNumeric ! 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/antonmaju/archive/2010/01/05/beware-of-isnumeric.aspx&amp;amp;phase=2" target="_blank" title="Submit Beware of IsNumeric ! 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/antonmaju/archive/2010/01/05/beware-of-isnumeric.aspx&amp;amp;title=Beware+of+IsNumeric+!" target="_blank" title="Add Beware of IsNumeric ! 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=185157" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/antonmaju/archive/tags/sql+server/default.aspx">sql server</category></item><item><title>ASP.NET MVC RTW</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2009/03/21/asp-net-mvc-rtw.aspx</link><pubDate>Fri, 20 Mar 2009 23:53:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:85750</guid><dc:creator>antonmaju</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=85750</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2009/03/21/asp-net-mvc-rtw.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;Akhirnya, setelah penantian panjang, 18 Maret waktu setempat Microsoft rilis ASP.NET MVC versi 1.0.&lt;/p&gt;&lt;p&gt;Resources:&lt;br /&gt;Ebook Mengenal ASP.NET MVC karya Agus Suhanto &amp;nbsp; http://geeks.netindonesia.net/files/folders/83008/download.aspx&lt;br /&gt;Nerd Dinner Tutorial dari ScottGu http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf&amp;nbsp; &lt;/p&gt;&lt;p&gt;Link download ASP.NET MVC: http://go.microsoft.com/fwlink/?LinkId=144444 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&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/antonmaju/archive/2009/03/21/asp-net-mvc-rtw.aspx&amp;amp;subject=ASP.NET MVC RTW" 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/antonmaju/archive/2009/03/21/asp-net-mvc-rtw.aspx&amp;amp;t=ASP.NET+MVC+RTW" target="_blank" title="Submit ASP.NET MVC RTW 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/antonmaju/archive/2009/03/21/asp-net-mvc-rtw.aspx&amp;amp;title=ASP.NET+MVC+RTW" target="_blank" title="Submit ASP.NET MVC RTW 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/antonmaju/archive/2009/03/21/asp-net-mvc-rtw.aspx&amp;amp;phase=2" target="_blank" title="Submit ASP.NET MVC RTW 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/antonmaju/archive/2009/03/21/asp-net-mvc-rtw.aspx&amp;amp;title=ASP.NET+MVC+RTW" target="_blank" title="Add ASP.NET MVC RTW 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=85750" width="1" height="1"&gt;</description></item><item><title>SharpDevelop 3 Short Review</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2009/03/15/sharpdevelop-3-short-review.aspx</link><pubDate>Sun, 15 Mar 2009 03:25:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:85409</guid><dc:creator>antonmaju</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=85409</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2009/03/15/sharpdevelop-3-short-review.aspx#comments</comments><description>&lt;p&gt;Ketika browsing, saya tidak sengaja teringat dengan SharpDevelop, saya lupa bagaimana perkembangannya sekarang, terakhir saya ketahui versi 3 masih beta. Akhirnya setelah saya buka websitenya http://www.icsharpcode.net/OpenSource/SD/ , ternyata versi 3.0 sudah keluar bulan lalu.&amp;nbsp; Lalu saya coba download dan install.&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/photos/antonmaju/images/85401/640x480.aspx" alt="SD1" align="" border="" width="640" height="459" hspace="" /&gt; &lt;/p&gt;&lt;p&gt;Saya punya kenangan dengan SharpDevelop, saat libur kuliah semester 7, awal 2007 2 tahun lalu, saya pulang ke Batu, tempat saya dibesarkan. Kebetulan pc yang biasa dipakai masih ada di Surabaya, jadinya saya menggunakan pc klasik yang ada di Batu. Speknya Pentium 2&amp;nbsp; 333Mhz,&amp;nbsp; 192MB RAM, dan hardisknya 30GHz (pc tsb sudah ada sejak 1998 dan diupgrade ram dan HD nya saja). Saya tidak bisa menginstall VS 2005 di pc tersebut (butuh min. 600Mhz) padahal saya perlu untuk keperluan tugas akhir saya.&lt;br /&gt;&lt;br /&gt;Alhasil saya browsing internet di warnet search tentang IDE untuk .NET 2.0. Ternyata ada beberapa alternatif selain VS 2005 yaitu Borland Studio, Antechinus dan yang terakhir SharpDevelop. Karena SharpDevelop 2 (belum 2.2) satu-satunya yang free selain VS Express maka saya coba download dan install. Alhasil saya bisa develop aplikasi dengan SharpDevelop meski pas compile lambat maklum pc tua. &lt;br /&gt;&lt;br /&gt;Perbedaan yang saya rasakan dari code generationnya,UI Winform di SharpDevelop bila dibuka di VS 2005 sedikit bermasalah, hal ini saya rasakan saat buat program iseng di Batu lalu dibuka di pc Surabaya. Beruntung tugas akhir saya buat komponen jadi tidak ada masalah.Toh di Batu saya masih buat kerangka class yang diperlukan dan code sederhana saja. Perbedaan lain yang saya rasakan tidak ada editor WYSIWYG untuk ASP.NET di SharpDevelop 2 kala itu. Overall, saya cukup puas dengan SharpDevelop 2.&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/photos/antonmaju/images/85403/640x480.aspx" alt="sd2" align="" border="" width="579" height="459" hspace="" /&gt;&lt;/p&gt;&lt;p&gt;SharpDevelop 3 Project Template &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/photos/antonmaju/images/85404/640x480.aspx" alt="sd3" align="" border="" width="640" height="393" hspace="" /&gt; &lt;/p&gt;&lt;p&gt;Visual C# Express 2008 Project Template&lt;/p&gt;&lt;p&gt;&amp;nbsp;Kesan pertama saya , tampak tambahan template project di SharpDevelop 3. Sebelumnya WPF, F#,&amp;nbsp; Phyton,&amp;nbsp; dan Setup (sepertinya Setup sudah ada di 2.2) belum ada.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img src="http://geeks.netindonesia.net/photos/antonmaju/images/85405/640x480.aspx" alt="SD5" align="" border="" width="640" height="461" hspace="" /&gt;&lt;/p&gt;&lt;p&gt;Winform di SharpDevelop 3 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/photos/antonmaju/images/85406/640x480.aspx" alt="sd4" align="" border="" width="640" height="461" hspace="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Winform di C# 2008 Express&lt;/p&gt;&lt;p&gt;Pertama, saya coba WinForm application. Saya rasa SharpDevelop tetap lancar seperti biasanya untuk urusan Winform ditambah dengan kenyataan tidak ada kontrol built in baru pada Winform. Saya coba copy isi form dari SharpDevelop ke C# Express dan lancar.&lt;br /&gt;&lt;br /&gt;Saya penasaran dengan EntityFramework di SharpDevelop, ternyata tidak ada Entity Data Model templatenya.&amp;nbsp; Lalu saya coba buat di C# 2008 dan copy edmx, serta tambah reference System.Data.Entity dan System.Runtime.Serialization di SharpDevelop tapi saya mentok tak bisa ubah custom tools untuk EntityDeploy .edmx nya, jadinya compile error hehe. &lt;br /&gt;&lt;br /&gt;Untuk Linq to Object, Intellisense di SharpDevelop berjalan lancar.&lt;/p&gt;&lt;p&gt;&lt;img src="http://geeks.netindonesia.net/photos/antonmaju/images/85407/640x480.aspx" alt="WPF di SharpDevelop 3" align="" border="" width="640" height="461" hspace="" /&gt;&lt;/p&gt;&lt;p&gt;Selanjutnya saya coba WPF application dengan SharpDevelop, sayangnya tak ada design support yang memudahkan untuk melihat hasil xaml. Saya coba lagi ASP.NET nya dan juga belum ada design support. Harus diakui untuk membuat kedua design time tersebut sulit.&lt;br /&gt;Untuk WCF dan WF juga belum ada project templatenya.&lt;br /&gt;&lt;br /&gt;Kesimpulan saya , SharpDevelop 3 cocok dipakai untuk pengembang Winform yang tidak membutuhkan support EF dan WCF. Meski saya sudah tidak menggunakan Pentium lama saya di Batu karena sudah rusak, tapi sepertinya requirements SharpDevelop 3&amp;nbsp; jauh lebih kecil dibandingkan Visual Studio 2008 (2GHz processor). Biasanya requirement SharpDevelop 3 selaras dengan kebutuhan minimum .NET Runtime (dalam hal ini 3.5 Sp1 sekitar 400Mhz).&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Congratulation for SharpDevelop team!&lt;br /&gt;&lt;br /&gt;Website :&amp;nbsp; http://www.icsharpcode.net/OpenSource/SD/&lt;br /&gt;Features: http://www.icsharpcode.net/OpenSource/SD/Features.aspx &lt;br /&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/antonmaju/archive/2009/03/15/sharpdevelop-3-short-review.aspx&amp;amp;subject=SharpDevelop 3 Short Review" 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/antonmaju/archive/2009/03/15/sharpdevelop-3-short-review.aspx&amp;amp;t=SharpDevelop+3+Short+Review" target="_blank" title="Submit SharpDevelop 3 Short Review 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/antonmaju/archive/2009/03/15/sharpdevelop-3-short-review.aspx&amp;amp;title=SharpDevelop+3+Short+Review" target="_blank" title="Submit SharpDevelop 3 Short Review 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/antonmaju/archive/2009/03/15/sharpdevelop-3-short-review.aspx&amp;amp;phase=2" target="_blank" title="Submit SharpDevelop 3 Short Review 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/antonmaju/archive/2009/03/15/sharpdevelop-3-short-review.aspx&amp;amp;title=SharpDevelop+3+Short+Review" target="_blank" title="Add SharpDevelop 3 Short Review 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=85409" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/antonmaju/archive/tags/SharpDevelop/default.aspx">SharpDevelop</category></item><item><title>Attachment Untuk Jawaban Pertanyaan di Forum</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2009/03/01/attachment-untuk-jawaban-pertanyaan-di-forum.aspx</link><pubDate>Sun, 01 Mar 2009 01:38:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:84974</guid><dc:creator>antonmaju</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=84974</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2009/03/01/attachment-untuk-jawaban-pertanyaan-di-forum.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;Saya sertakan di blog saya karena saya belum menemukan cara attach file selain di blog &lt;img src="http://geeks.netindonesia.net/emoticons/emotion-10.gif" alt="Embarrassed" /&gt;.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Solution yg saya attach merupakan reply dari forum di http://netindonesia.net/forums/t/11503.aspx &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 class="CommonTitle"&gt;&lt;br /&gt;&lt;/h2&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/antonmaju/archive/2009/03/01/attachment-untuk-jawaban-pertanyaan-di-forum.aspx&amp;amp;subject=Attachment Untuk Jawaban Pertanyaan di Forum" 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/antonmaju/archive/2009/03/01/attachment-untuk-jawaban-pertanyaan-di-forum.aspx&amp;amp;t=Attachment+Untuk+Jawaban+Pertanyaan+di+Forum" target="_blank" title="Submit Attachment Untuk Jawaban Pertanyaan di Forum 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/antonmaju/archive/2009/03/01/attachment-untuk-jawaban-pertanyaan-di-forum.aspx&amp;amp;title=Attachment+Untuk+Jawaban+Pertanyaan+di+Forum" target="_blank" title="Submit Attachment Untuk Jawaban Pertanyaan di Forum 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/antonmaju/archive/2009/03/01/attachment-untuk-jawaban-pertanyaan-di-forum.aspx&amp;amp;phase=2" target="_blank" title="Submit Attachment Untuk Jawaban Pertanyaan di Forum 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/antonmaju/archive/2009/03/01/attachment-untuk-jawaban-pertanyaan-di-forum.aspx&amp;amp;title=Attachment+Untuk+Jawaban+Pertanyaan+di+Forum" target="_blank" title="Add Attachment Untuk Jawaban Pertanyaan di Forum 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=84974" width="1" height="1"&gt;</description><enclosure url="http://geeks.netindonesia.net/blogs/antonmaju/attachment/84974.ashx" length="65710" type="application/force-download" /></item><item><title>Sekilas Tentang EntitySpaces</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2009/02/15/sekilas-tentang-entityspaces.aspx</link><pubDate>Sun, 15 Feb 2009 03:06:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:84512</guid><dc:creator>antonmaju</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=84512</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2009/02/15/sekilas-tentang-entityspaces.aspx#comments</comments><description>&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Minggu&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;lalu&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;perusahaan tempat saya bekerja &lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;merenew lisensi EntitySpaces setelah ada offer edisi terbaru. Bagi yang belum pernah menggunakan EntitySpaces, EntitySpaces adalah salah satu OR/M untuk .NET seperti halnya NHibernate, SubSonic, dsb. Karena aplikasi yang kami develop mayoritas .NET 2.0 maka kami belum pernah menggunakan LINQ di kantor. Versi sebelumnya yang kami pakai adalah versi May 2007. Bila sebelumnya untuk generate class dibutuhkan code generator MyGeneration, sekarang code generator sudah terintegrasi ke dalam paket EntitySpaces 2009.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;img src="http://geeks.netindonesia.net/controlpanel/blogs/" alt="" border="0" width="1" height="1" /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;br /&gt;&lt;img src="http://geeks.netindonesia.net/photos/antonmaju/images/84510/original.aspx" alt="EntitySpaces" border="0" width="445" height="385" /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&amp;nbsp; 
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Untuk menggunakan EntitySpaces maka langkah-langkah yang diperlukan adalah yang diperlukan adalah:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:10pt;font-family:Wingdings;"&gt;&lt;span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Generate class dari table/view &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Masukkan class tersebut ke dalam project&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Wingdings;"&gt;&lt;span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:10pt;font-family:Wingdings;"&gt;&lt;span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Set config dari aplikasi.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Untuk querynya sendiri, kita bisa menggunakan generated entity class untuk menambahkan / mengedit/ menghapus entity ke table.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;Employee employee=new Employee();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;employee.FirstName=”Anton”;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;employee.Save();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Kita juga bisa memanfaatkan generated collection class, misal:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;EmployeeCollection employeeColl=new EmployeeCollection();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;employeeColl.Query.Where(employeeColl.Query.FirstName.Like(“%Ant%”))&lt;br /&gt;.OrderBy(employeeColl.Query.FirstName.Ascending);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;employeeColl.Query.Load();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;bindingSource.DataSource=employeeColl;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;dgvEmployee.DataSource=bindingSource;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;EntitySpaces juga mensupport join operation dan subquery, contoh subquery:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;OrderQuery&amp;nbsp;orders&amp;nbsp;=&amp;nbsp;new&amp;nbsp;OrderQuery(&amp;quot;o&amp;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;OrderItemQuery&amp;nbsp;details&amp;nbsp;=&amp;nbsp;new&amp;nbsp;OrderItemQuery(&amp;quot;oi&amp;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;orders.Select&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;orders.OrderID, orders.OrderDate,details&lt;br /&gt;.Select(details.UnitPrice.Max())&lt;br /&gt;.Where(orders.OrderID&amp;nbsp;==&amp;nbsp;details.OrderID).As(&amp;quot;MaxUnitPrice&amp;quot;)&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;OrderCollection&amp;nbsp;collection&amp;nbsp;=&amp;nbsp;new&amp;nbsp;OrderCollection();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;collection.Load(orders);&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;br /&gt;&lt;br /&gt;Dokumentasi API EntitySpaces bisa ditemukan di http://www.developer.entityspaces.net/documentation/Default.aspx&lt;/span&gt; 
&lt;p&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/antonmaju/archive/2009/02/15/sekilas-tentang-entityspaces.aspx&amp;amp;subject=Sekilas Tentang EntitySpaces" 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/antonmaju/archive/2009/02/15/sekilas-tentang-entityspaces.aspx&amp;amp;t=Sekilas+Tentang+EntitySpaces" target="_blank" title="Submit Sekilas Tentang EntitySpaces 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/antonmaju/archive/2009/02/15/sekilas-tentang-entityspaces.aspx&amp;amp;title=Sekilas+Tentang+EntitySpaces" target="_blank" title="Submit Sekilas Tentang EntitySpaces 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/antonmaju/archive/2009/02/15/sekilas-tentang-entityspaces.aspx&amp;amp;phase=2" target="_blank" title="Submit Sekilas Tentang EntitySpaces 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/antonmaju/archive/2009/02/15/sekilas-tentang-entityspaces.aspx&amp;amp;title=Sekilas+Tentang+EntitySpaces" target="_blank" title="Add Sekilas Tentang EntitySpaces 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=84512" width="1" height="1"&gt;</description></item><item><title>Kumpul Program WPF</title><link>http://geeks.netindonesia.net/blogs/antonmaju/archive/2008/12/31/kumpul-program-wpf.aspx</link><pubDate>Wed, 31 Dec 2008 14:16:00 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:83413</guid><dc:creator>antonmaju</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/antonmaju/rsscomments.aspx?PostID=83413</wfw:commentRss><comments>http://geeks.netindonesia.net/blogs/antonmaju/archive/2008/12/31/kumpul-program-wpf.aspx#comments</comments><description>&lt;p&gt;Halo, ini pertama kalinya saya menulis blog di sini.&lt;/p&gt;&lt;p&gt;Salam kenal, saya Anton, junior programmer.&amp;nbsp; Bersama ini saya kumpulkan aplikasi saya untuk WPF Champions.&lt;/p&gt;&lt;p&gt;Terus terang saya baru November benar-benar belajar WPF jadi maklum kalo kodenya semrawut.&lt;/p&gt;&lt;p&gt;Btw, happy new year kepada semuanya! &lt;br /&gt;&lt;/p&gt;&lt;p&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/antonmaju/archive/2008/12/31/kumpul-program-wpf.aspx&amp;amp;subject=Kumpul Program WPF" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/antonmaju/archive/2008/12/31/kumpul-program-wpf.aspx&amp;amp;t=Kumpul+Program+WPF" target="_blank" title="Submit Kumpul Program WPF to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/antonmaju/archive/2008/12/31/kumpul-program-wpf.aspx&amp;amp;title=Kumpul+Program+WPF" target="_blank" title="Submit Kumpul Program WPF to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/antonmaju/archive/2008/12/31/kumpul-program-wpf.aspx&amp;amp;phase=2" target="_blank" title="Submit Kumpul Program WPF to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/antonmaju/archive/2008/12/31/kumpul-program-wpf.aspx&amp;amp;title=Kumpul+Program+WPF" target="_blank" title="Add Kumpul Program WPF to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=83413" width="1" height="1"&gt;</description><enclosure url="http://geeks.netindonesia.net/blogs/antonmaju/attachment/83413.ashx" length="1961121" type="application/force-download" /></item></channel></rss>