<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://netindonesia.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Incoherent Rambling</title><subtitle type="html">.Net, coding, architecture and life in general</subtitle><id>http://netindonesia.net/blogs/jimmy/atom.aspx</id><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/default.aspx" /><link rel="self" type="application/atom+xml" href="http://netindonesia.net/blogs/jimmy/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2009-06-27T16:10:00Z</updated><entry><title>The program can't start because d3dx9_36.dll is missing</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/12/28/the-program-can-t-start-because-d3dx9-36-dll-is-missing.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/12/28/the-program-can-t-start-because-d3dx9-36-dll-is-missing.aspx</id><published>2009-12-28T04:19:00Z</published><updated>2009-12-28T04:19:00Z</updated><content type="html">&lt;p&gt;I&amp;#39;m not sure if this only happens on Windows 7 or not, but I encountered such message when trying to start a game after rebuilding my machine using Windows 7 64 bit. Actually, I encountered it pretty much on any game I tried to start that uses DirectX 3D.&amp;nbsp; Looking around the web only gave me bits and pieces of clues that didn&amp;#39;t quite go anywhere.&lt;/p&gt;
&lt;p&gt;Some said to copy the offending DLL into %SystemRoot%\System32 directory, which didn&amp;#39;t work.&amp;nbsp; Some others suggested reinstalling DirectX 9.0c, which I also tried but didn&amp;#39;t work either; however, this is one step toward the right solution, just not the whole solution.&amp;nbsp; I tried reinstalling DirectX multiple times using the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&amp;amp;displaylang=en" target="_blank"&gt;DirectX End-User Runtime Web Installer&lt;/a&gt; and &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=04ac064b-00d1-474e-b7b1-442d8712d553" target="_blank"&gt;Redistributable&lt;/a&gt; ones.&amp;nbsp; All ended up in error.&amp;nbsp; The installer suggested that I looked into the log files in the Windows directory called DirectX.log and DXError.log.&amp;nbsp; It turned out&amp;nbsp;to be&amp;nbsp;an access denied error somewhere along the way during the installation which I found in the DXError.log file.&amp;nbsp;&amp;nbsp;&amp;nbsp; I then tried to use elevated privilege (Run as&amp;nbsp;Administrator)&amp;nbsp;to run the installer again, but that also didn&amp;#39;t work and ended up with the same error.&amp;nbsp; *scratch head*.&lt;/p&gt;
&lt;p&gt;Running out of idea of what to do, I went back to the web to try and find out what could be causing this error.&amp;nbsp; After lots of time browsing and searching around the web I ended up in a forum post which suggested that I turned off the real time protection of the Forefront client (the antivirus software that I was using) before retrying the DirectX installation again.&amp;nbsp; I tried that and WOOT... that fixed the problem.&amp;nbsp; DirectX successfully installed and when I tried to run the games that didn&amp;#39;t work before, it runs like cutting butter with a hot knife :) (or something like that)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;So, moral of the story... if anything else fail, &lt;strong&gt;check your antivirus&lt;/strong&gt; :).&amp;nbsp; I ran into similar problems on other softwares (not game related).&amp;nbsp; For example, when trying to use port 6666 as K2 Blackpearl Server port, I was blocked by McAfee because it was assuming that was an IRC port that is dangerous to expose in a corporate environment.&amp;nbsp;&amp;nbsp; A different time, my mail won&amp;#39;t go through the SMTP server because...again... it was blocked by the antivirus.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I supposed this is one thing that can be added to &lt;a href="http://everythingsysadmin.com/dumb-things-to-check.html" target="_blank"&gt;List of Dumb Things to Check&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Hope this post helped somebody out there that is banging their head because of lack of answer to similar question.&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://netindonesia.net/blogs/jimmy/archive/2009/12/28/the-program-can-t-start-because-d3dx9-36-dll-is-missing.aspx&amp;amp;subject=The program can't start because d3dx9_36.dll is missing" 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://netindonesia.net/blogs/jimmy/archive/2009/12/28/the-program-can-t-start-because-d3dx9-36-dll-is-missing.aspx&amp;amp;t=The+program+can%27t+start+because+d3dx9_36.dll+is+missing" target="_blank" title="Submit The program can't start because d3dx9_36.dll is missing 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://netindonesia.net/blogs/jimmy/archive/2009/12/28/the-program-can-t-start-because-d3dx9-36-dll-is-missing.aspx&amp;amp;title=The+program+can%27t+start+because+d3dx9_36.dll+is+missing" target="_blank" title="Submit The program can't start because d3dx9_36.dll is missing 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://netindonesia.net/blogs/jimmy/archive/2009/12/28/the-program-can-t-start-because-d3dx9-36-dll-is-missing.aspx&amp;amp;phase=2" target="_blank" title="Submit The program can't start because d3dx9_36.dll is missing 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://netindonesia.net/blogs/jimmy/archive/2009/12/28/the-program-can-t-start-because-d3dx9-36-dll-is-missing.aspx&amp;amp;title=The+program+can%27t+start+because+d3dx9_36.dll+is+missing" target="_blank" title="Add The program can't start because d3dx9_36.dll is missing 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://netindonesia.net/aggbug.aspx?PostID=184932" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="antivirus DirectX troubleshooting" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/antivirus+DirectX+troubleshooting/default.aspx" /></entry><entry><title>Single Standalone Server Installation of TFS 2008 SP1 on Windows Server 2008 SP1 and SQL Server 2008</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/09/17/single-standalone-server-installation-of-tfs-2008-sp1-on-windows-server-2008-sp1-and-sql-server-2008.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/09/17/single-standalone-server-installation-of-tfs-2008-sp1-on-windows-server-2008-sp1-and-sql-server-2008.aspx</id><published>2009-09-16T22:31:29Z</published><updated>2009-09-16T22:31:29Z</updated><content type="html">&lt;p&gt;I found the latest &lt;a title="Download TFS 2008 Installation Guide" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=FF12844F-398C-4FE9-8B0D-9E84181D9923&amp;amp;displaylang=en" target="_blank"&gt;TFS 2008 Installation Guide&lt;/a&gt; document (dated September 8th, 2008) a bit lacking in that it walked you through the entire single server installation but forgot one crucial step!&amp;#160; I hope the team will update the documentation soon to reflect this one important step that will save you tons of time trying to figure out what’s going on if you’re not familiar w/ how Windows Server 2008 and SQL Server 2008 work together, especially in regard to Reporting Service.&lt;/p&gt;  &lt;p&gt;The installation will go through smoothly enough when you follow the guide.&amp;#160; Your best bet is to follow the &lt;strong&gt;Checklist: Single Server Team Foundation Server Installation&lt;/strong&gt; page in the Installation Guide.&lt;/p&gt;  &lt;p&gt;Just make sure you have TFS 2008 and TFS 2008 SP1 slipstreamed before you proceed with the install.&amp;#160; You need to do this if you are using SQL Server 2008.&amp;#160; To do this, follow the steps described in the Installation Guide titled: &lt;strong&gt;How to: Integrate the installation of Team Foundation Server&lt;/strong&gt; and Service Pack 1 or follow the Fresh Install instruction in &lt;a title="SQL 2008 + TFS 2008 SP1 the lowdown…" href="http://geekswithblogs.net/etiennetremblay/archive/2008/08/11/sql-2008--tfs-2008-sp1-the-lowdownhellip.aspx" target="_blank"&gt;this&lt;/a&gt; blog post.&lt;/p&gt;  &lt;p&gt;If you plan to use SQL Server 2008 SP1, make sure to make the necessary changes described in &lt;a title="How to install Microsoft Visual Studio 2008 Team Foundation Server on a computer that has SQL Server 2008 Service Pack 1 installed" href="http://support.microsoft.com/kb/969985" target="_blank"&gt;this&lt;/a&gt; KB or you won’t&amp;#160; be able to proceed with the TFS installation.&lt;/p&gt;  &lt;p&gt;Some instructions in the Installation Guide are a little confusing.&amp;#160; For example, it talks about different types of accounts necessary for the installation, but during the installation of TFS, it will blindly tell you to use the same account (Step 12 and 14 in the &lt;strong&gt;How to: Install Team Foundation Server&lt;/strong&gt; page).&amp;#160; In this case, you will only need 2 accounts really, which is &lt;strong&gt;TFSSETUP&lt;/strong&gt; to run the installation and &lt;strong&gt;TFSSERVICE&lt;/strong&gt; to run all the services including WSS and Reporting Service rendering TFSREPORTS and WSSSERVICE account useless / unnecessary.&amp;#160; Just give &lt;strong&gt;TFSSERVICE&lt;/strong&gt; the &lt;strong&gt;Allow log on locally&lt;/strong&gt; and &lt;strong&gt;Log in as a service permission&lt;/strong&gt; and you’re set to go.&lt;/p&gt;  &lt;p&gt;One common error that you are going to get once you are done with TFS installation steps is a reporting service error stated below:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;“The permissions granted to user&lt;/em&gt; ‘…&amp;#39; &lt;em&gt;are insufficient for performing this operation&lt;/em&gt;. (&lt;em&gt;rsAccessDenied&lt;/em&gt;)”&lt;/p&gt;  &lt;p&gt;You’ll get this when trying to access the report service from the browser (i.e. &lt;a href="http://localhost/reports"&gt;http://localhost/reports&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Now, this is the missing step which is not in the installation guide (I hope they’ll add this in soon)…You need to configure report server for local administration on Windows Server 2008 properly to get rid of the rsAccessDenied error.&amp;#160; To do that, follow &lt;/strong&gt;&lt;a title="How to: Configure a Report Server for Local Administration on Windows Vista and Windows Server 2008" href="http://msdn.microsoft.com/en-us/library/bb630430.aspx" target="_blank"&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; MSDN article.&amp;#160; Once you are done with this final step, your TFS 2008 should be working just fine on W2K8 and SQL 2008.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So, in summary:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Please make sure your W2K8 installation is 32-bit!!!&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Please make sure TFSSETUP / its equivalent account is a member of the local machine Administrators group.&lt;/li&gt;    &lt;li&gt;Please login as the TFSSETUP / equivalent account before you do the installation (after it’s assigned as local administrator).&lt;/li&gt;    &lt;li&gt;Please make sure to slipstream your TFS 2008 media with TFS 2008 SP1 before the installation&lt;/li&gt;    &lt;li&gt;Make necessary changes per KB 969985 if you are going to use SQL 2008 SP1&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Properly configure Report Server for Local Administration post TFS installation&lt;/strong&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;As a side note, although installing TFS 2008 on single server 64 bit windows, such as W2K8 R2 that is just released, is not currently supported by Microsoft, apparently it is doable.&amp;#160; See &lt;a title="Installing TFS 2008 on a 64-bit system" href="http://colinbowern.com/Post/09-05-18/Installing_TFS_2008_on_a_64-bit_system.aspx" target="_blank"&gt;this&lt;/a&gt; blog post for detail.&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://netindonesia.net/blogs/jimmy/archive/2009/09/17/single-standalone-server-installation-of-tfs-2008-sp1-on-windows-server-2008-sp1-and-sql-server-2008.aspx&amp;amp;subject=Single Standalone Server Installation of TFS 2008 SP1 on Windows Server 2008 SP1 and SQL Server 2008" 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://netindonesia.net/blogs/jimmy/archive/2009/09/17/single-standalone-server-installation-of-tfs-2008-sp1-on-windows-server-2008-sp1-and-sql-server-2008.aspx&amp;amp;t=Single+Standalone+Server+Installation+of+TFS+2008+SP1+on+Windows+Server+2008+SP1+and+SQL+Server+2008" target="_blank" title="Submit Single Standalone Server Installation of TFS 2008 SP1 on Windows Server 2008 SP1 and SQL Server 2008 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://netindonesia.net/blogs/jimmy/archive/2009/09/17/single-standalone-server-installation-of-tfs-2008-sp1-on-windows-server-2008-sp1-and-sql-server-2008.aspx&amp;amp;title=Single+Standalone+Server+Installation+of+TFS+2008+SP1+on+Windows+Server+2008+SP1+and+SQL+Server+2008" target="_blank" title="Submit Single Standalone Server Installation of TFS 2008 SP1 on Windows Server 2008 SP1 and SQL Server 2008 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://netindonesia.net/blogs/jimmy/archive/2009/09/17/single-standalone-server-installation-of-tfs-2008-sp1-on-windows-server-2008-sp1-and-sql-server-2008.aspx&amp;amp;phase=2" target="_blank" title="Submit Single Standalone Server Installation of TFS 2008 SP1 on Windows Server 2008 SP1 and SQL Server 2008 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://netindonesia.net/blogs/jimmy/archive/2009/09/17/single-standalone-server-installation-of-tfs-2008-sp1-on-windows-server-2008-sp1-and-sql-server-2008.aspx&amp;amp;title=Single+Standalone+Server+Installation+of+TFS+2008+SP1+on+Windows+Server+2008+SP1+and+SQL+Server+2008" target="_blank" title="Add Single Standalone Server Installation of TFS 2008 SP1 on Windows Server 2008 SP1 and SQL Server 2008 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://netindonesia.net/aggbug.aspx?PostID=183662" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="TFS" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/TFS/default.aspx" /></entry><entry><title>Lesson Learnt: Pulling Data from SAP using BizTalk Orchestration using WCF LOB Adapter SDK SP2 and BizTalk Adapter Pack 2</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/09/12/lesson-learnt-pulling-data-from-sap-using-biztalk-orchestration-using-wcf-lob-adapter-sdk-sp2-and-biztalk-adapter-pack-2.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/09/12/lesson-learnt-pulling-data-from-sap-using-biztalk-orchestration-using-wcf-lob-adapter-sdk-sp2-and-biztalk-adapter-pack-2.aspx</id><published>2009-09-11T18:05:04Z</published><updated>2009-09-11T18:05:04Z</updated><content type="html">&lt;p&gt;1. Enable safe typing in the binding (this, more than often, will safe you headache of dealing w/ date and other numerical problem when converting one message to another in BizTalk (to and from SAP)&lt;/p&gt;  &lt;p&gt;2. When pulling data from something like BAPI_EMPLOYEE_GETDATA that returns things back in an array, make sure you pass an empty node of the array that you are interested in inside the REQUEST message.&amp;#160; For example, in BAPI_EMPLOYEE_GETDATA... if you are interested in ARCHIVELINK and&amp;#160; PERSONAL_DATA being returned in the RESPONSE message, construct the REQUEST message like so:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ns0:BAPI_EMPLOYEE_GETDATA&lt;/span&gt; …&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ns0:AUTHORITY_CHECK&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;X&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ns0:AUTHORITY_CHECK&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ns0:DATE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;20090912&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ns0:DATE&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ns0:EMPLOYEE_ID&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;0100001&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ns0:EMPLOYEE_ID&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;  &lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;—Here is the tricky part, need to add these empty placeholders --&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ns0:ARCHIVELINK&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ns1:BAPITOAV0&lt;/span&gt; &lt;span class="attr"&gt;xmlns:ns1&lt;/span&gt;=”…” &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ns0:ARCHIVELINK&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ns0:PERSONAL_DATA&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ns1:BAPIP0002B&lt;/span&gt; &lt;span class="attr"&gt;xmlns:ns1&lt;/span&gt;=”…” &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ns0:PERSONAL_DATA&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ns0:BAPI_EMPLOYEE_GETDATA&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;and pass it to BizTalk to pass to SAP.&amp;#160; SAP will then return the two nodes w/ the appropriate content.&lt;/p&gt;

&lt;p&gt;3. Use Add Generated Item, Consume Adapter Service to create the appropriate SAP binding file.&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://netindonesia.net/blogs/jimmy/archive/2009/09/12/lesson-learnt-pulling-data-from-sap-using-biztalk-orchestration-using-wcf-lob-adapter-sdk-sp2-and-biztalk-adapter-pack-2.aspx&amp;amp;subject=Lesson Learnt: Pulling Data from SAP using BizTalk Orchestration using WCF LOB Adapter SDK SP2 and BizTalk Adapter Pack 2" 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://netindonesia.net/blogs/jimmy/archive/2009/09/12/lesson-learnt-pulling-data-from-sap-using-biztalk-orchestration-using-wcf-lob-adapter-sdk-sp2-and-biztalk-adapter-pack-2.aspx&amp;amp;t=Lesson+Learnt%3a+Pulling+Data+from+SAP+using+BizTalk+Orchestration+using+WCF+LOB+Adapter+SDK+SP2+and+BizTalk+Adapter+Pack+2" target="_blank" title="Submit Lesson Learnt: Pulling Data from SAP using BizTalk Orchestration using WCF LOB Adapter SDK SP2 and BizTalk Adapter Pack 2 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://netindonesia.net/blogs/jimmy/archive/2009/09/12/lesson-learnt-pulling-data-from-sap-using-biztalk-orchestration-using-wcf-lob-adapter-sdk-sp2-and-biztalk-adapter-pack-2.aspx&amp;amp;title=Lesson+Learnt%3a+Pulling+Data+from+SAP+using+BizTalk+Orchestration+using+WCF+LOB+Adapter+SDK+SP2+and+BizTalk+Adapter+Pack+2" target="_blank" title="Submit Lesson Learnt: Pulling Data from SAP using BizTalk Orchestration using WCF LOB Adapter SDK SP2 and BizTalk Adapter Pack 2 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://netindonesia.net/blogs/jimmy/archive/2009/09/12/lesson-learnt-pulling-data-from-sap-using-biztalk-orchestration-using-wcf-lob-adapter-sdk-sp2-and-biztalk-adapter-pack-2.aspx&amp;amp;phase=2" target="_blank" title="Submit Lesson Learnt: Pulling Data from SAP using BizTalk Orchestration using WCF LOB Adapter SDK SP2 and BizTalk Adapter Pack 2 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://netindonesia.net/blogs/jimmy/archive/2009/09/12/lesson-learnt-pulling-data-from-sap-using-biztalk-orchestration-using-wcf-lob-adapter-sdk-sp2-and-biztalk-adapter-pack-2.aspx&amp;amp;title=Lesson+Learnt%3a+Pulling+Data+from+SAP+using+BizTalk+Orchestration+using+WCF+LOB+Adapter+SDK+SP2+and+BizTalk+Adapter+Pack+2" target="_blank" title="Add Lesson Learnt: Pulling Data from SAP using BizTalk Orchestration using WCF LOB Adapter SDK SP2 and BizTalk Adapter Pack 2 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://netindonesia.net/aggbug.aspx?PostID=183544" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="BizTalk" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/BizTalk/default.aspx" /><category term="SAP" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/SAP/default.aspx" /></entry><entry><title>BizTalk, SAP, WCF LOB Adapter SDK, SAP Adapter and WCF-SAP send port Action</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/09/10/biztalk-sap-wcf-lob-adapter-sdk-sap-adapter-and-wcf-sap-send-port-action.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/09/10/biztalk-sap-wcf-lob-adapter-sdk-sap-adapter-and-wcf-sap-send-port-action.aspx</id><published>2009-09-09T18:09:00Z</published><updated>2009-09-09T18:09:00Z</updated><content type="html">&lt;p&gt;I blogged regarding a particular error that you will received from not entering the correct Action during the WCF-SAP send port configuration in &lt;a href="http://geeks.netindonesia.net/blogs/jimmy/archive/2009/06/27/biztalk-and-sap-adapter-and-head-scratching.aspx"&gt;this post&lt;/a&gt;. but I didn&amp;#39;t tell you what to put in there.&lt;/p&gt;
&lt;p&gt;What should be in there is something like: &lt;a href="http://microsoft.lobservices.sap/2007/03/Types/Rfc/BAPI_NAME_YOU_WANT_TO_CALL"&gt;http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/BAPI_NAME_YOU_WANT_TO_CALL&lt;/a&gt;.&amp;nbsp; Replace the last part with the appropriate value.&lt;/p&gt;
&lt;p&gt;The easiest way I found to do this is by creating a WCF console application to consume an Adapter Reference to SAP and basically pick the BAPIs you are interested in and after it created the sapBinding.cs file, just open it and browse for the BAPI that you wish to map to WCF-SAP port, copy and paste the URI string that will look similar to the one above into the Action textbox of the WCF-SAP port setting.&lt;/p&gt;
&lt;p&gt;If anyone know of a better way, please let me know.&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://netindonesia.net/blogs/jimmy/archive/2009/09/10/biztalk-sap-wcf-lob-adapter-sdk-sap-adapter-and-wcf-sap-send-port-action.aspx&amp;amp;subject=BizTalk, SAP, WCF LOB Adapter SDK, SAP Adapter and WCF-SAP send port Action" 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://netindonesia.net/blogs/jimmy/archive/2009/09/10/biztalk-sap-wcf-lob-adapter-sdk-sap-adapter-and-wcf-sap-send-port-action.aspx&amp;amp;t=BizTalk%2c+SAP%2c+WCF+LOB+Adapter+SDK%2c+SAP+Adapter+and+WCF-SAP+send+port+Action" target="_blank" title="Submit BizTalk, SAP, WCF LOB Adapter SDK, SAP Adapter and WCF-SAP send port Action 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://netindonesia.net/blogs/jimmy/archive/2009/09/10/biztalk-sap-wcf-lob-adapter-sdk-sap-adapter-and-wcf-sap-send-port-action.aspx&amp;amp;title=BizTalk%2c+SAP%2c+WCF+LOB+Adapter+SDK%2c+SAP+Adapter+and+WCF-SAP+send+port+Action" target="_blank" title="Submit BizTalk, SAP, WCF LOB Adapter SDK, SAP Adapter and WCF-SAP send port Action 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://netindonesia.net/blogs/jimmy/archive/2009/09/10/biztalk-sap-wcf-lob-adapter-sdk-sap-adapter-and-wcf-sap-send-port-action.aspx&amp;amp;phase=2" target="_blank" title="Submit BizTalk, SAP, WCF LOB Adapter SDK, SAP Adapter and WCF-SAP send port Action 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://netindonesia.net/blogs/jimmy/archive/2009/09/10/biztalk-sap-wcf-lob-adapter-sdk-sap-adapter-and-wcf-sap-send-port-action.aspx&amp;amp;title=BizTalk%2c+SAP%2c+WCF+LOB+Adapter+SDK%2c+SAP+Adapter+and+WCF-SAP+send+port+Action" target="_blank" title="Add BizTalk, SAP, WCF LOB Adapter SDK, SAP Adapter and WCF-SAP send port Action 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://netindonesia.net/aggbug.aspx?PostID=183519" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="WCF" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/WCF/default.aspx" /><category term="BizTalk" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/BizTalk/default.aspx" /></entry><entry><title>Simple Setup Guide for BizTalk 2009 to Talk to SAP</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/09/10/simple-setup-guide-for-biztalk-2009-to-talk-to-sap.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/09/10/simple-setup-guide-for-biztalk-2009-to-talk-to-sap.aspx</id><published>2009-09-09T18:09:00Z</published><updated>2009-09-09T18:09:00Z</updated><content type="html">&lt;p&gt;Install the supported OS,&amp;nbsp;BT2009 prerequisites and&amp;nbsp;BizTalk 2009 server itself as described in the BizTalk 2009 installation documents found &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9C697E02-D1BC-4684-8748-28B3A292D5BF&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Install the WCF LOB Adapter SDK SP2 and then BizTalk Adapter Pack 2.0 as described in &lt;a href="http://ollysense.blogspot.com/2009/08/installing-adapter-pack.html"&gt;this blog post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Afterward, install all the SAP RFC Runtime and other component downloadable from SAP Marketplace.&amp;nbsp; The detail components you need are in installguide.htm of the SAP Adapter Pack downloable &lt;a href="https://www.microsoft.com/biztalk/en/us/adapter-pack.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msinnovations.spaces.live.com/default.aspx?_c11_BlogPart_BlogPart=blogview&amp;amp;_c=BlogPart&amp;amp;partqs=amonth%3d2%26ayear%3d2009&amp;amp;wa=wsignin1.0&amp;amp;sa=304156581"&gt;Here&lt;/a&gt; is a little bit clearer sample instruction on what to do w/ the file downloaded.&lt;/p&gt;
&lt;p&gt;If everything went right, Add Generated Item should work properly and so does Add Service Reference on non BizTalk WCF project.&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://netindonesia.net/blogs/jimmy/archive/2009/09/10/simple-setup-guide-for-biztalk-2009-to-talk-to-sap.aspx&amp;amp;subject=Simple Setup Guide for BizTalk 2009 to Talk to SAP" 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://netindonesia.net/blogs/jimmy/archive/2009/09/10/simple-setup-guide-for-biztalk-2009-to-talk-to-sap.aspx&amp;amp;t=Simple+Setup+Guide+for+BizTalk+2009+to+Talk+to+SAP" target="_blank" title="Submit Simple Setup Guide for BizTalk 2009 to Talk to SAP 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://netindonesia.net/blogs/jimmy/archive/2009/09/10/simple-setup-guide-for-biztalk-2009-to-talk-to-sap.aspx&amp;amp;title=Simple+Setup+Guide+for+BizTalk+2009+to+Talk+to+SAP" target="_blank" title="Submit Simple Setup Guide for BizTalk 2009 to Talk to SAP 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://netindonesia.net/blogs/jimmy/archive/2009/09/10/simple-setup-guide-for-biztalk-2009-to-talk-to-sap.aspx&amp;amp;phase=2" target="_blank" title="Submit Simple Setup Guide for BizTalk 2009 to Talk to SAP 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://netindonesia.net/blogs/jimmy/archive/2009/09/10/simple-setup-guide-for-biztalk-2009-to-talk-to-sap.aspx&amp;amp;title=Simple+Setup+Guide+for+BizTalk+2009+to+Talk+to+SAP" target="_blank" title="Add Simple Setup Guide for BizTalk 2009 to Talk to SAP 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://netindonesia.net/aggbug.aspx?PostID=183521" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="WCF" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/WCF/default.aspx" /><category term="BizTalk" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/BizTalk/default.aspx" /></entry><entry><title>Can You Spot the Bug? Lethal Combination</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/07/22/can-you-spot-the-bug-lethal-combination.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/07/22/can-you-spot-the-bug-lethal-combination.aspx</id><published>2009-07-22T16:48:38Z</published><updated>2009-07-22T16:48:38Z</updated><content type="html">&lt;p&gt;I blogged not too long ago about some stuffs that &lt;a title="Currently Pondering On..." href="http://geeks.netindonesia.net/blogs/jimmy/archive/2009/06/30/currently-pondering-on.aspx"&gt;I was pondering&lt;/a&gt;…&lt;/p&gt;  &lt;p&gt;Finally found out how one can get the “&lt;em&gt;Object of type ‘System.Decimal’ cannot be converted to type ‘System.Int32’&lt;/em&gt;” error.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Given this code:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data.SqlClient;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; ConsoleApplication1&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Foo&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Id { get; set; }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Number { get; set; }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    &lt;span class="kwrd"&gt;class&lt;/span&gt; Program&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            var foos = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;Foo&amp;gt;();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            var fooType = &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(Foo);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (var cn = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlConnection(&lt;span class="str"&gt;@&amp;quot;Server=.\SQLEXPRESS;Database=JimmyTest;Integrated Security=true&amp;quot;&lt;/span&gt;))&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (var cmd = cn.CreateCommand())&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;                {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;                    cmd.CommandText = &lt;span class="str"&gt;&amp;quot;SELECT * FROM dbo.[tablea] a INNER JOIN dbo.[tableb] b ON a.[BId] = b.[Id]&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;                    cmd.CommandType = CommandType.Text;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;                    cn.Open();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;using&lt;/span&gt; (var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;                    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;                        var fieldCount = reader.FieldCount;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;while&lt;/span&gt; (reader.Read())&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;                        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;                            var foo = &lt;span class="kwrd"&gt;new&lt;/span&gt; Foo();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;                            &lt;span class="kwrd"&gt;for&lt;/span&gt; (var i = 0; i &amp;lt; fieldCount; i++)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;                            {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;                                var property = fooType.GetProperty(reader.GetName(i));&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;                                &lt;span class="kwrd"&gt;if&lt;/span&gt; (property != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;                                {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;                                    property.SetValue(foo, reader.GetValue(i), &lt;span class="kwrd"&gt;null&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;                                }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;                            }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;                            foos.Add(foo);&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;                        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;                    }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;                }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;            Console.ReadLine();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;    }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;And this database:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;USE&lt;/span&gt; master&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;DATABASE&lt;/span&gt; JimmyTest&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;USE&lt;/span&gt; JimmyTest&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; tablea (Id &lt;span class="kwrd"&gt;int&lt;/span&gt;, BId &lt;span class="kwrd"&gt;int&lt;/span&gt;, Number &lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; tableb (Id &lt;span class="kwrd"&gt;int&lt;/span&gt;, Number &lt;span class="kwrd"&gt;decimal&lt;/span&gt;(10,2))&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; tablea &lt;span class="kwrd"&gt;VALUES&lt;/span&gt;(1, 1, 100)&lt;/pre&gt;

  &lt;pre&gt;INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; tablea &lt;span class="kwrd"&gt;VALUES&lt;/span&gt;(2, 2, 50)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; tableb &lt;span class="kwrd"&gt;VALUES&lt;/span&gt;(1, 33.33)&lt;/pre&gt;

  &lt;pre class="alt"&gt;INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; tableb &lt;span class="kwrd"&gt;VALUES&lt;/span&gt;(2, 15.23)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Can you spot the bug? &lt;/p&gt;

&lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:8DA3F9A4-C663-4e21-8FB6-77A6D04DD161:c483b958-9bc9-454b-ade5-648e9269af50" class="wlWriterEditableSmartContent"&gt;&lt;img src="http://geeks.netindonesia.net/blogs/jimmy/onionhead//019_.gif" border="0" alt="emoticon" /&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Found it in the wild while troubleshooting one of my clients’ code. &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://netindonesia.net/blogs/jimmy/archive/2009/07/22/can-you-spot-the-bug-lethal-combination.aspx&amp;amp;subject=Can You Spot the Bug? Lethal Combination" 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://netindonesia.net/blogs/jimmy/archive/2009/07/22/can-you-spot-the-bug-lethal-combination.aspx&amp;amp;t=Can+You+Spot+the+Bug%3f+Lethal+Combination" target="_blank" title="Submit Can You Spot the Bug? Lethal Combination 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://netindonesia.net/blogs/jimmy/archive/2009/07/22/can-you-spot-the-bug-lethal-combination.aspx&amp;amp;title=Can+You+Spot+the+Bug%3f+Lethal+Combination" target="_blank" title="Submit Can You Spot the Bug? Lethal Combination 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://netindonesia.net/blogs/jimmy/archive/2009/07/22/can-you-spot-the-bug-lethal-combination.aspx&amp;amp;phase=2" target="_blank" title="Submit Can You Spot the Bug? Lethal Combination 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://netindonesia.net/blogs/jimmy/archive/2009/07/22/can-you-spot-the-bug-lethal-combination.aspx&amp;amp;title=Can+You+Spot+the+Bug%3f+Lethal+Combination" target="_blank" title="Add Can You Spot the Bug? Lethal Combination 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://netindonesia.net/aggbug.aspx?PostID=182696" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="C#" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/C_2300_/default.aspx" /><category term="Bug" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/Bug/default.aspx" /></entry><entry><title>Playing Peek-a-boo with Windows Taskbar and Covering the Entire Screen</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/07/22/playing-peek-a-boo-with-windows-taskbar-and-covering-the-entire-screen.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/07/22/playing-peek-a-boo-with-windows-taskbar-and-covering-the-entire-screen.aspx</id><published>2009-07-22T15:37:15Z</published><updated>2009-07-22T15:37:15Z</updated><content type="html">&lt;p&gt;I’m liking &lt;a title="StackOverflow" href="http://stackoverflow.com" target="_blank"&gt;StackOverflow&lt;/a&gt; more and more.&amp;#160; Sort of addicted to it now.&amp;#160; You can really learn so much from answering other people questions and just browsing topics that interests you.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;For example, today I learnt how to actually hide the Windows Taskbar using PInvoke and very easy way to cover the entire screen with your Windows Form application.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The following code can be used to hide and show the taskbar (supposedly work on Vista.&amp;#160; Tested on Win7):&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; TaskBarHelper&lt;/pre&gt;

  &lt;pre&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;    [DllImport(&lt;span class="str"&gt;&amp;quot;user32.dll&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;extern&lt;/span&gt; IntPtr FindWindow(&lt;span class="kwrd"&gt;string&lt;/span&gt; className, &lt;span class="kwrd"&gt;string&lt;/span&gt; windowText);&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;    [DllImport(&lt;span class="str"&gt;&amp;quot;user32.dll&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;extern&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; ShowWindow(IntPtr hwnd, &lt;span class="kwrd"&gt;int&lt;/span&gt; command);&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    [DllImport(&lt;span class="str"&gt;&amp;quot;user32.dll&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;extern&lt;/span&gt; IntPtr FindWindowEx(IntPtr parentHwnd, IntPtr childAfterHwnd, IntPtr className, &lt;span class="kwrd"&gt;string&lt;/span&gt; windowText);&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; SW_HIDE = 0;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; SW_SHOW = 1;&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; HideTaskBar()&lt;/pre&gt;

  &lt;pre&gt;    {&lt;/pre&gt;

  &lt;pre class="alt"&gt;        HideWindow(GetTaskBarWindowHandle());&lt;/pre&gt;

  &lt;pre&gt;        HideWindow(GetOrbWindowHandle());&lt;/pre&gt;

  &lt;pre class="alt"&gt;    }&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ShowTaskBar()&lt;/pre&gt;

  &lt;pre&gt;    {            &lt;/pre&gt;

  &lt;pre class="alt"&gt;        ShowWindow(GetTaskBarWindowHandle());&lt;/pre&gt;

  &lt;pre&gt;        ShowWindow(GetOrbWindowHandle());&lt;/pre&gt;

  &lt;pre class="alt"&gt;    }&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; HideWindow(IntPtr hwnd)&lt;/pre&gt;

  &lt;pre&gt;    {&lt;/pre&gt;

  &lt;pre class="alt"&gt;        ShowWindow(hwnd, SW_HIDE);&lt;/pre&gt;

  &lt;pre&gt;    }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ShowWindow(IntPtr hwnd)&lt;/pre&gt;

  &lt;pre class="alt"&gt;    {&lt;/pre&gt;

  &lt;pre&gt;        ShowWindow(hwnd, SW_SHOW);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    }&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; IntPtr GetTaskBarWindowHandle()&lt;/pre&gt;

  &lt;pre&gt;    {&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; FindWindow(&lt;span class="str"&gt;&amp;quot;Shell_TrayWnd&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;    }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; IntPtr GetOrbWindowHandle()&lt;/pre&gt;

  &lt;pre class="alt"&gt;    {&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; FindWindowEx(IntPtr.Zero, IntPtr.Zero, (IntPtr)0xC017, &lt;span class="str"&gt;&amp;quot;Start&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    }&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;And to cover the entire screen with your application (Full Screen mode) you can use the following:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; FormHelper&lt;/pre&gt;

  &lt;pre&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ShowFullScreen(Form form)&lt;/pre&gt;

  &lt;pre&gt;    {&lt;/pre&gt;

  &lt;pre class="alt"&gt;        form.FormBorderStyle = FormBorderStyle.None;&lt;/pre&gt;

  &lt;pre&gt;        form.WindowState = FormWindowState.Maximized;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    }&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;
&lt;/div&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://netindonesia.net/blogs/jimmy/archive/2009/07/22/playing-peek-a-boo-with-windows-taskbar-and-covering-the-entire-screen.aspx&amp;amp;subject=Playing Peek-a-boo with Windows Taskbar and Covering the Entire Screen" 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://netindonesia.net/blogs/jimmy/archive/2009/07/22/playing-peek-a-boo-with-windows-taskbar-and-covering-the-entire-screen.aspx&amp;amp;t=Playing+Peek-a-boo+with+Windows+Taskbar+and+Covering+the+Entire+Screen" target="_blank" title="Submit Playing Peek-a-boo with Windows Taskbar and Covering the Entire Screen 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://netindonesia.net/blogs/jimmy/archive/2009/07/22/playing-peek-a-boo-with-windows-taskbar-and-covering-the-entire-screen.aspx&amp;amp;title=Playing+Peek-a-boo+with+Windows+Taskbar+and+Covering+the+Entire+Screen" target="_blank" title="Submit Playing Peek-a-boo with Windows Taskbar and Covering the Entire Screen 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://netindonesia.net/blogs/jimmy/archive/2009/07/22/playing-peek-a-boo-with-windows-taskbar-and-covering-the-entire-screen.aspx&amp;amp;phase=2" target="_blank" title="Submit Playing Peek-a-boo with Windows Taskbar and Covering the Entire Screen 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://netindonesia.net/blogs/jimmy/archive/2009/07/22/playing-peek-a-boo-with-windows-taskbar-and-covering-the-entire-screen.aspx&amp;amp;title=Playing+Peek-a-boo+with+Windows+Taskbar+and+Covering+the+Entire+Screen" target="_blank" title="Add Playing Peek-a-boo with Windows Taskbar and Covering the Entire Screen 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://netindonesia.net/aggbug.aspx?PostID=182695" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="Windows Form" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/Windows+Form/default.aspx" /></entry><entry><title>Musing About Generic Inheritance (Class Person : EntityBase&lt;Person&gt;).. What?</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/07/13/musing-about-generic-inheritance-class-person-entitybase-lt-person-gt-what.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/07/13/musing-about-generic-inheritance-class-person-entitybase-lt-person-gt-what.aspx</id><published>2009-07-13T11:01:00Z</published><updated>2009-07-13T11:01:00Z</updated><content type="html">&lt;p&gt;Was strolling around &lt;a title="StackOverflow" href="http://stackoverflow.com/" target="_blank"&gt;StackOverflow&lt;/a&gt; and came to a question #1118232.&amp;nbsp; Where this guy was asking how come you can create a class inheriting from another generic class like so:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;class&lt;/span&gt; Person : EntityBase&amp;lt;Person&amp;gt;&lt;/pre&gt;&lt;pre&gt;{&lt;/pre&gt;&lt;pre class="alt"&gt; &lt;span class="rem"&gt;//Whatever here...&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;He said it’s like the chicken and egg problem :)&amp;nbsp; Which I sort of agree.&amp;nbsp; After pondering on the thing for a bit, I tried mucking around with it in Visual Studio and came up with this that I think sort of give me a bit more clarification on the idea, but not by much… Still trying to find when I need to really use something like this.&amp;nbsp;&amp;nbsp; And the code that I came up with is this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;class&lt;/span&gt; Program&lt;/pre&gt;&lt;pre&gt;    {&lt;/pre&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;/pre&gt;&lt;pre&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;            var wife = &lt;span class="kwrd"&gt;new&lt;/span&gt; Human(Gender.Female);&lt;/pre&gt;&lt;pre&gt;            var baby = wife.GiveBirth();&lt;/pre&gt;&lt;pre class="alt"&gt;            Console.WriteLine(baby.Gender);&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;            Console.ReadKey();&lt;/pre&gt;&lt;pre&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;    }&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;class&lt;/span&gt; CanGiveBirthTo&amp;lt;T&amp;gt; &lt;span class="kwrd"&gt;where&lt;/span&gt; T : &lt;span class="kwrd"&gt;new&lt;/span&gt;()&lt;/pre&gt;&lt;pre&gt;    {&lt;/pre&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; CanGiveBirthTo()&lt;/pre&gt;&lt;pre&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; T GiveBirth()&lt;/pre&gt;&lt;pre&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; T();&lt;/pre&gt;&lt;pre&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;    }&lt;/pre&gt;&lt;pre&gt;   &lt;/pre&gt;&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;class&lt;/span&gt; Human : CanGiveBirthTo&amp;lt;Human&amp;gt;&lt;/pre&gt;&lt;pre&gt;    {&lt;/pre&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Gender Gender { get; &lt;span class="kwrd"&gt;private&lt;/span&gt; set; }&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Human(Gender gender)&lt;/pre&gt;&lt;pre&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;            Gender = gender;&lt;/pre&gt;&lt;pre&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Human()&lt;/pre&gt;&lt;pre class="alt"&gt;        {&lt;/pre&gt;&lt;pre&gt;            Gender = RandomlyAssignAGender();&lt;/pre&gt;&lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;        Gender RandomlyAssignAGender()&lt;/pre&gt;&lt;pre&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;            var rand = &lt;span class="kwrd"&gt;new&lt;/span&gt; Random();&lt;/pre&gt;&lt;pre&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; (Gender) rand.Next(2);&lt;/pre&gt;&lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;pre&gt;    }&lt;/pre&gt;&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;    &lt;span class="kwrd"&gt;enum&lt;/span&gt; Gender&lt;/pre&gt;&lt;pre class="alt"&gt;    {&lt;/pre&gt;&lt;pre&gt;        Male = 0,&lt;/pre&gt;&lt;pre class="alt"&gt;        Female = 1&lt;/pre&gt;&lt;pre&gt;    }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I don’t know if this is of any use to anyone…, but enjoy… LoL.&lt;/p&gt;
&lt;p&gt;Any idea what sort of real application code that could fall into this pattern in real project?&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://netindonesia.net/blogs/jimmy/archive/2009/07/13/musing-about-generic-inheritance-class-person-entitybase-lt-person-gt-what.aspx&amp;amp;subject=Musing About Generic Inheritance (Class Person : EntityBase&amp;lt;Person&amp;gt;).. What?" 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://netindonesia.net/blogs/jimmy/archive/2009/07/13/musing-about-generic-inheritance-class-person-entitybase-lt-person-gt-what.aspx&amp;amp;t=Musing+About+Generic+Inheritance+(Class+Person+%3a+EntityBase%26lt%3bPerson%26gt%3b)..+What%3f" target="_blank" title="Submit Musing About Generic Inheritance (Class Person : EntityBase&amp;lt;Person&amp;gt;).. What? 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://netindonesia.net/blogs/jimmy/archive/2009/07/13/musing-about-generic-inheritance-class-person-entitybase-lt-person-gt-what.aspx&amp;amp;title=Musing+About+Generic+Inheritance+(Class+Person+%3a+EntityBase%26lt%3bPerson%26gt%3b)..+What%3f" target="_blank" title="Submit Musing About Generic Inheritance (Class Person : EntityBase&amp;lt;Person&amp;gt;).. What? 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://netindonesia.net/blogs/jimmy/archive/2009/07/13/musing-about-generic-inheritance-class-person-entitybase-lt-person-gt-what.aspx&amp;amp;phase=2" target="_blank" title="Submit Musing About Generic Inheritance (Class Person : EntityBase&amp;lt;Person&amp;gt;).. What? 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://netindonesia.net/blogs/jimmy/archive/2009/07/13/musing-about-generic-inheritance-class-person-entitybase-lt-person-gt-what.aspx&amp;amp;title=Musing+About+Generic+Inheritance+(Class+Person+%3a+EntityBase%26lt%3bPerson%26gt%3b)..+What%3f" target="_blank" title="Add Musing About Generic Inheritance (Class Person : EntityBase&amp;lt;Person&amp;gt;).. What? 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://netindonesia.net/aggbug.aspx?PostID=182527" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="Fun" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/Fun/default.aspx" /><category term="C#" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/C_2300_/default.aspx" /><category term="Generic" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/Generic/default.aspx" /></entry><entry><title>Visual Studio (2010?) Keyboard Shortcut Trick (ala Resharper F12 and Alt+Enter)</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/07/03/visual-studio-2010-keyboard-shortcut-trick-ala-resharper-f12-and-alt-enter.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/07/03/visual-studio-2010-keyboard-shortcut-trick-ala-resharper-f12-and-alt-enter.aspx</id><published>2009-07-03T11:31:30Z</published><updated>2009-07-03T11:31:30Z</updated><content type="html">&lt;p&gt;I used to code using Resharper previously and have gotten used to the F12 key to navigate to the next problem area / errors in my code and then pressing Alt+Enter to quickly fix the problem.&lt;/p&gt;  &lt;p&gt;This is very useful and speed up my coding time considerably when doing TDD style development.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Missing Resharper in Visual Studio 2010, I was determine to find a way to replicate this.&lt;/p&gt;  &lt;p&gt;After messing around a while with Tools, Options, Keyboard and Macro and what not, I found a way to do this.&lt;/p&gt;  &lt;p&gt;It turned out my keyboard scheme was set to Visual Basic 6 for some reason instead of C# and the thing that I’m looking for was not bind to any key.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In C# scheme, the &lt;strong&gt;View.NextError&lt;/strong&gt; command is bound to Ctrl+Shift+F12.&lt;/p&gt;  &lt;p&gt;In VB6 scheme, &lt;strong&gt;View.NextError&lt;/strong&gt; is not even bound.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After fixing the scheme, I was able to work much faster.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;1. Code as usual per TDD, some squiggly lines will show up as you typed in class / method name that has not been defined yet.&amp;#160;&amp;#160; Keep going until done.&lt;/p&gt;  &lt;p&gt;2. Press &lt;strong&gt;Ctrl+Shift+F12&lt;/strong&gt;, it will jump to the first squiggly.&amp;#160; Click &lt;strong&gt;Ctrl+.&lt;/strong&gt; or &lt;strong&gt;Alt+Shift+F10&lt;/strong&gt; to show the smart tag options.&lt;/p&gt;  &lt;p&gt;3. Choose the action that I want (&lt;strong&gt;Generate stub&lt;/strong&gt;, etc.) and hit &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;4. Press &lt;strong&gt;Ctrl+Shift+F12&lt;/strong&gt; again to go to the next squiggly, repeat the process until I am done.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Awesome!! &lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:8DA3F9A4-C663-4e21-8FB6-77A6D04DD161:08ff5465-89b1-4359-84e0-7903269859ae" class="wlWriterEditableSmartContent"&gt;&lt;img src="http://geeks.netindonesia.net/blogs/jimmy/onionhead//070_goodjob.gif" border="0" alt="emoticon" /&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I might remap the keyboard shortcut to how Resharper setting (&lt;strong&gt;F12&lt;/strong&gt; and &lt;strong&gt;Alt+Enter&lt;/strong&gt;).&amp;#160; So used to those settings and less keystrokes involved.&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://netindonesia.net/blogs/jimmy/archive/2009/07/03/visual-studio-2010-keyboard-shortcut-trick-ala-resharper-f12-and-alt-enter.aspx&amp;amp;subject=Visual Studio (2010?) Keyboard Shortcut Trick (ala Resharper F12 and Alt+Enter)" 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://netindonesia.net/blogs/jimmy/archive/2009/07/03/visual-studio-2010-keyboard-shortcut-trick-ala-resharper-f12-and-alt-enter.aspx&amp;amp;t=Visual+Studio+(2010%3f)+Keyboard+Shortcut+Trick+(ala+Resharper+F12+and+Alt%2bEnter)" target="_blank" title="Submit Visual Studio (2010?) Keyboard Shortcut Trick (ala Resharper F12 and Alt+Enter) 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://netindonesia.net/blogs/jimmy/archive/2009/07/03/visual-studio-2010-keyboard-shortcut-trick-ala-resharper-f12-and-alt-enter.aspx&amp;amp;title=Visual+Studio+(2010%3f)+Keyboard+Shortcut+Trick+(ala+Resharper+F12+and+Alt%2bEnter)" target="_blank" title="Submit Visual Studio (2010?) Keyboard Shortcut Trick (ala Resharper F12 and Alt+Enter) 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://netindonesia.net/blogs/jimmy/archive/2009/07/03/visual-studio-2010-keyboard-shortcut-trick-ala-resharper-f12-and-alt-enter.aspx&amp;amp;phase=2" target="_blank" title="Submit Visual Studio (2010?) Keyboard Shortcut Trick (ala Resharper F12 and Alt+Enter) 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://netindonesia.net/blogs/jimmy/archive/2009/07/03/visual-studio-2010-keyboard-shortcut-trick-ala-resharper-f12-and-alt-enter.aspx&amp;amp;title=Visual+Studio+(2010%3f)+Keyboard+Shortcut+Trick+(ala+Resharper+F12+and+Alt%2bEnter)" target="_blank" title="Add Visual Studio (2010?) Keyboard Shortcut Trick (ala Resharper F12 and Alt+Enter) 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://netindonesia.net/aggbug.aspx?PostID=182243" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="Visual Studio" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/Visual+Studio/default.aspx" /><category term="Tips" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/Tips/default.aspx" /></entry><entry><title>if (you is CSharpDeveloper) Read(this) //Hidden Features of C#</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/07/02/if-you-is-csharpdeveloper-read-this-hidden-features-of-c.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/07/02/if-you-is-csharpdeveloper-read-this-hidden-features-of-c.aspx</id><published>2009-07-01T19:43:53Z</published><updated>2009-07-01T19:43:53Z</updated><content type="html">&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; CallToAction
{
    &lt;span class="kwrd"&gt;abstract&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; CSharpDeveloper { }
    &lt;span class="kwrd"&gt;class&lt;/span&gt; You : CSharpDeveloper { }
    &lt;span class="kwrd"&gt;string&lt;/span&gt; ReadTheContentOf(System.Uri url) { &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty; }
    System.Uri URL = &lt;span class="kwrd"&gt;new&lt;/span&gt; System.Uri(&lt;span class="str"&gt;&amp;quot;&lt;a title="StackOverflow: Hidden Features of C#" href="http://stackoverflow.com/questions/9033/hidden-features-of-c"&gt;http://stackoverflow.com/questions/9033/hidden-features-of-c&lt;/a&gt;&amp;quot;&lt;/span&gt;);

    &lt;span class="kwrd"&gt;public&lt;/span&gt; CallToAction()
    {
        var you = &lt;span class="kwrd"&gt;new&lt;/span&gt; You();

        &lt;span class="kwrd"&gt;if&lt;/span&gt; (you &lt;span class="kwrd"&gt;is&lt;/span&gt; CSharpDeveloper)
            ReadTheContentOf(&lt;span class="kwrd"&gt;this&lt;/span&gt;.URL).AndLearnTonsOfStuffs();
    }
}

&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MyExtensions
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AndLearnTonsOfStuffs(&lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; input) { }
}&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:left;padding-top:0px;" id="scid:8DA3F9A4-C663-4e21-8FB6-77A6D04DD161:ff5b3160-2b30-42a4-a140-ad22dcf7eb6d" class="wlWriterEditableSmartContent"&gt;&lt;img src="http://geeks.netindonesia.net/blogs/jimmy/onionhead//060_.gif" border="0" alt="emoticon" /&gt;&lt;/div&gt;&lt;em&gt;”This compiles by the way.&amp;nbsp; It won’t do squat, but it compiles!!&lt;/em&gt;“&lt;br /&gt;
&lt;p&gt;Go spend half a day or a day and read that post, all the answers, the comments and the links within it.&amp;nbsp; I promised you won’t regret it and you might actually learn a thing or two about C# that you don’t know about.&amp;nbsp; I know I did.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hint:&lt;/strong&gt; the URL in the code above is actually clickable if you didn’t notice.&amp;nbsp; Or if you are hyperlink-challenged, you can cut and paste the following URL to your browser: &lt;br /&gt;&lt;a title="http://stackoverflow.com/questions/9033/hidden-features-of-c" href="http://stackoverflow.com/questions/9033/hidden-features-of-c"&gt;http://stackoverflow.com/questions/9033/hidden-features-of-c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Enjoy…&lt;/p&gt;
&lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:8DA3F9A4-C663-4e21-8FB6-77A6D04DD161:974d6c52-6ca7-44b8-826e-14856cac679d" class="wlWriterEditableSmartContent"&gt;&lt;img src="http://geeks.netindonesia.net/blogs/jimmy/onionhead//032_.gif" border="0" alt="emoticon" /&gt;&lt;/div&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://netindonesia.net/blogs/jimmy/archive/2009/07/02/if-you-is-csharpdeveloper-read-this-hidden-features-of-c.aspx&amp;amp;subject=if (you is CSharpDeveloper) Read(this) //Hidden Features of 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://netindonesia.net/blogs/jimmy/archive/2009/07/02/if-you-is-csharpdeveloper-read-this-hidden-features-of-c.aspx&amp;amp;t=if+(you+is+CSharpDeveloper)+Read(this)+%2f%2fHidden+Features+of+C%23" target="_blank" title="Submit if (you is CSharpDeveloper) Read(this) //Hidden Features of 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://netindonesia.net/blogs/jimmy/archive/2009/07/02/if-you-is-csharpdeveloper-read-this-hidden-features-of-c.aspx&amp;amp;title=if+(you+is+CSharpDeveloper)+Read(this)+%2f%2fHidden+Features+of+C%23" target="_blank" title="Submit if (you is CSharpDeveloper) Read(this) //Hidden Features of 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://netindonesia.net/blogs/jimmy/archive/2009/07/02/if-you-is-csharpdeveloper-read-this-hidden-features-of-c.aspx&amp;amp;phase=2" target="_blank" title="Submit if (you is CSharpDeveloper) Read(this) //Hidden Features of 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://netindonesia.net/blogs/jimmy/archive/2009/07/02/if-you-is-csharpdeveloper-read-this-hidden-features-of-c.aspx&amp;amp;title=if+(you+is+CSharpDeveloper)+Read(this)+%2f%2fHidden+Features+of+C%23" target="_blank" title="Add if (you is CSharpDeveloper) Read(this) //Hidden Features of 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://netindonesia.net/aggbug.aspx?PostID=182182" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="Fun" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/Fun/default.aspx" /><category term="C#" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/C_2300_/default.aspx" /></entry><entry><title>Currently Pondering On…</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/06/30/currently-pondering-on.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/06/30/currently-pondering-on.aspx</id><published>2009-06-29T17:00:42Z</published><updated>2009-06-29T17:00:42Z</updated><content type="html">&lt;img align="left" src="http://geeks.netindonesia.net/blogs/jimmy/onionhead/019_.gif" alt="" /&gt;   &lt;p&gt;&lt;em&gt;“New request is not allowed to start because it should come with valid transaction descriptor.”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;quot;Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction.”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;“Internal .Net Framework Data Provider error 60.”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;and…&lt;/p&gt; &lt;img align="left" src="http://geeks.netindonesia.net/blogs/jimmy/onionhead/096_K.gif" alt="" /&gt;   &lt;p&gt;&lt;em&gt;“Object of type &amp;#39;System.Decimal&amp;#39; cannot be converted to type &amp;#39;System.Int32&amp;#39;”&lt;/em&gt;&lt;/p&gt;  &lt;br /&gt;  &lt;p&gt;Hmmm…&lt;/p&gt;  &lt;p&gt;The first three has something to do with MSDTC, orphaned transaction and connection pooling I think…&lt;/p&gt;  &lt;p&gt;The other one is really puzzling me.&amp;#160; I can’t think of anything that might result in that particular exception, but apparently something did…&lt;/p&gt;  &lt;p&gt;My head is starting to hurt…&lt;/p&gt; &lt;img align="left" src="http://geeks.netindonesia.net/blogs/jimmy/onionhead/078_.gif" alt="" /&gt; &lt;img align="left" src="http://geeks.netindonesia.net/blogs/jimmy/onionhead/085_.gif" alt="" /&gt; &lt;img align="left" src="http://geeks.netindonesia.net/blogs/jimmy/onionhead/045_.gif" alt="" /&gt;   &lt;br /&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Need to figure out a different way to approach this problem…&lt;/p&gt;  &lt;p&gt;Hmmm….&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://netindonesia.net/blogs/jimmy/archive/2009/06/30/currently-pondering-on.aspx&amp;amp;subject=Currently Pondering On…" 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://netindonesia.net/blogs/jimmy/archive/2009/06/30/currently-pondering-on.aspx&amp;amp;t=Currently+Pondering+On%e2%80%a6" target="_blank" title="Submit Currently Pondering On… 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://netindonesia.net/blogs/jimmy/archive/2009/06/30/currently-pondering-on.aspx&amp;amp;title=Currently+Pondering+On%e2%80%a6" target="_blank" title="Submit Currently Pondering On… 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://netindonesia.net/blogs/jimmy/archive/2009/06/30/currently-pondering-on.aspx&amp;amp;phase=2" target="_blank" title="Submit Currently Pondering On… 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://netindonesia.net/blogs/jimmy/archive/2009/06/30/currently-pondering-on.aspx&amp;amp;title=Currently+Pondering+On%e2%80%a6" target="_blank" title="Add Currently Pondering On… 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://netindonesia.net/aggbug.aspx?PostID=182116" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="weird" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/weird/default.aspx" /></entry><entry><title>Interesting JavaScript Optimization Pattern</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/06/28/interesting-javascript-optimization-pattern.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/06/28/interesting-javascript-optimization-pattern.aspx</id><published>2009-06-28T16:29:32Z</published><updated>2009-06-28T16:29:32Z</updated><content type="html">&lt;p&gt;Bumped into this a while back, but haven’t got a chance to use it so I sort of forgot about it.&amp;#160; It’s been floating around in the back of my mind.&amp;#160; I found this one pattern to be quite clever in helping with JavaScript function optimizations, especially when doing browser specific code and some other code that might only require a one time hit and sort of cache the result in the function afterward.&lt;/p&gt;  &lt;p&gt;The code is as follow:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; A() {&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="rem"&gt;//Do some initial calculation of some sort...&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; returnValue = GetValueFromWebService(&lt;span class="str"&gt;&amp;quot;...&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="rem"&gt;//Rewrite A to actually return the calculated returnValue&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="rem"&gt;//and stop going to the web service ever again&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="rem"&gt;//In essence, caching the inital returnValue for subsequent calls&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    A = &lt;span class="kwrd"&gt;function&lt;/span&gt;()  {&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; returnValue;&lt;/pre&gt;

  &lt;pre&gt;    } &lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; A();&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;
Very neat :)
&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://netindonesia.net/blogs/jimmy/archive/2009/06/28/interesting-javascript-optimization-pattern.aspx&amp;amp;subject=Interesting JavaScript Optimization Pattern" 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://netindonesia.net/blogs/jimmy/archive/2009/06/28/interesting-javascript-optimization-pattern.aspx&amp;amp;t=Interesting+JavaScript+Optimization+Pattern" target="_blank" title="Submit Interesting JavaScript Optimization Pattern 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://netindonesia.net/blogs/jimmy/archive/2009/06/28/interesting-javascript-optimization-pattern.aspx&amp;amp;title=Interesting+JavaScript+Optimization+Pattern" target="_blank" title="Submit Interesting JavaScript Optimization Pattern 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://netindonesia.net/blogs/jimmy/archive/2009/06/28/interesting-javascript-optimization-pattern.aspx&amp;amp;phase=2" target="_blank" title="Submit Interesting JavaScript Optimization Pattern 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://netindonesia.net/blogs/jimmy/archive/2009/06/28/interesting-javascript-optimization-pattern.aspx&amp;amp;title=Interesting+JavaScript+Optimization+Pattern" target="_blank" title="Add Interesting JavaScript Optimization Pattern 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://netindonesia.net/aggbug.aspx?PostID=182063" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="JavaScript" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/JavaScript/default.aspx" /></entry><entry><title>On Windows 7 RC (build 7100) 64 bits &amp; Loving It!</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/06/27/on-windows-7-rc-build-7100-64-bits-amp-loving-it.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/06/27/on-windows-7-rc-build-7100-64-bits-amp-loving-it.aspx</id><published>2009-06-27T14:18:08Z</published><updated>2009-06-27T14:18:08Z</updated><content type="html">&lt;p&gt;I finally found a quiet time in my busy schedule to perform an upgrade on my Lenovo T61P work laptop.&amp;#160; I decided to give 64 bit Win7 another try.&amp;#160; Remember I &lt;a href="http://geeks.netindonesia.net/blogs/jimmy/archive/2009/03/19/windows-7-64-bit-amp-fuji-xerox-document-centre-236-printer-driver.aspx" target="_blank"&gt;posted&lt;/a&gt; a while back about being on Windows 7 Beta 64 bit and had some driver problems with it?&amp;#160; Well, I’m glad to inform you that I have all my peripherals working perfectly now under 64 bit RC :), including the ZTE 3G Modem, Fuji Xerox DC 236 printer / scanner and whatever else that thing can do, and my Gigaware webcam.&amp;#160; Woot!!&lt;/p&gt;  &lt;p&gt;For the ZTE 3G modem, it’s as easy as running the software that comes with the modem.&amp;#160; This also applied to the Gigaware webcam.&amp;#160; Previously they weren’t recognized at all.&lt;/p&gt;  &lt;p&gt;The network printer was a bit tricky since I had to manually installed it as an IP printer and chose the FX DC 236 PCL 6 driver to make it work.&lt;/p&gt;  &lt;p&gt;Now… just need to get my RAM to 8 GB…&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://netindonesia.net/blogs/jimmy/archive/2009/06/27/on-windows-7-rc-build-7100-64-bits-amp-loving-it.aspx&amp;amp;subject=On Windows 7 RC (build 7100) 64 bits &amp;amp; Loving It!" 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/on-windows-7-rc-build-7100-64-bits-amp-loving-it.aspx&amp;amp;t=On+Windows+7+RC+(build+7100)+64+bits+%26amp%3b+Loving+It!" target="_blank" title="Submit On Windows 7 RC (build 7100) 64 bits &amp;amp; Loving It! 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/on-windows-7-rc-build-7100-64-bits-amp-loving-it.aspx&amp;amp;title=On+Windows+7+RC+(build+7100)+64+bits+%26amp%3b+Loving+It!" target="_blank" title="Submit On Windows 7 RC (build 7100) 64 bits &amp;amp; Loving It! 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/on-windows-7-rc-build-7100-64-bits-amp-loving-it.aspx&amp;amp;phase=2" target="_blank" title="Submit On Windows 7 RC (build 7100) 64 bits &amp;amp; Loving It! 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/on-windows-7-rc-build-7100-64-bits-amp-loving-it.aspx&amp;amp;title=On+Windows+7+RC+(build+7100)+64+bits+%26amp%3b+Loving+It!" target="_blank" title="Add On Windows 7 RC (build 7100) 64 bits &amp;amp; Loving It! 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://netindonesia.net/aggbug.aspx?PostID=182027" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="Windows 7" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/Windows+7/default.aspx" /></entry><entry><title>Sprucing Up My Windows Mobile 6.1 Device (&amp; Yours… Maybe)</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/06/27/sprucing-up-my-windows-mobile-6-1-device-amp-yours-maybe.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/06/27/sprucing-up-my-windows-mobile-6-1-device-amp-yours-maybe.aspx</id><published>2009-06-27T13:55:20Z</published><updated>2009-06-27T13:55:20Z</updated><content type="html">&lt;p&gt;Like many Microsoft employees, I was provided with a Windows Mobile device.&amp;#160; Mine is a Samsung Omnia SGH-i900.&amp;#160; Main reason for me to choose this from the plethora of choices of Windows Mobile devices was the huge… I mean HUGE storage capacity that comes with the device…. 16 GB huge :).&amp;#160; I chose a device with this capacity since I listen to a lot of podcasts and believe me, 16 GB is plenty of space for keeping lots of podcast around without need to get a secondary MP3 player (which is another reason… I don’t want to carry lots of gadgets on me.&amp;#160; So if one gadget can fulfill most of my needs, like time, phone, sms, camera, game, video and listening to podcasts and songs, the better.)&lt;/p&gt;  &lt;p&gt;Ok, I’m digressing from the topic :).&lt;/p&gt;  &lt;p&gt;The standard installation that came with Omnia (Windows Mobile 6.1 and some other Samsung added software), work okay, but sometimes I found them a bit lacking.&amp;#160; So I tried to look around for additional software that might spruce up my Omnia, and I found some…&lt;/p&gt;  &lt;p&gt;They are:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;SPB Mobile Shell 3.0&lt;/p&gt;    &lt;p&gt;This shell is awesome and it works on most Windows Mobile devices.&amp;#160; You should give it a try if you own a Windows Mobile device.&amp;#160; The UI is so smooth that I don’t feel like going back to Omnia standard UI.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.resco.net/pocketpc/keyboard/default.asp" target="_blank"&gt;Resco Keyboard Pro&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;This soft keyboard is my finger friendly keyboard of choice these days.&amp;#160; For those that uses iPhone, it offers similarly skinned keyboard that is quite pleasant to use. &lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.resco.net/pocketpc/sudoku/default.asp" target="_blank"&gt;Resco Sudoku&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;This touch friendly Sudoku puzzle game is my favorite time waster when I’m waiting or not doing anything in the middle of nowhere.&amp;#160; Must have :)&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.66.com/samsung/index.php?cid=UK" target="_blank"&gt;Route 66 Samsung Navigator&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;This GPS mobile navigation system is so far my favorite.&amp;#160; In my opinion, it’s better than the Garmin one.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;On another topic,&amp;#160; I found out that after upgrading my Omnia BIOS / ROM to DXIA5, it works much better.&amp;#160; It used to hang on me previously from time to time, but after the latest upgrade, my Omnia is as smooth as butter :).&amp;#160; I haven’t found the need to force reset it for quite some time now.&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://netindonesia.net/blogs/jimmy/archive/2009/06/27/sprucing-up-my-windows-mobile-6-1-device-amp-yours-maybe.aspx&amp;amp;subject=Sprucing Up My Windows Mobile 6.1 Device (&amp;amp; Yours… Maybe)" 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/sprucing-up-my-windows-mobile-6-1-device-amp-yours-maybe.aspx&amp;amp;t=Sprucing+Up+My+Windows+Mobile+6.1+Device+(%26amp%3b+Yours%e2%80%a6+Maybe)" target="_blank" title="Submit Sprucing Up My Windows Mobile 6.1 Device (&amp;amp; Yours… Maybe) 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/sprucing-up-my-windows-mobile-6-1-device-amp-yours-maybe.aspx&amp;amp;title=Sprucing+Up+My+Windows+Mobile+6.1+Device+(%26amp%3b+Yours%e2%80%a6+Maybe)" target="_blank" title="Submit Sprucing Up My Windows Mobile 6.1 Device (&amp;amp; Yours… Maybe) 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/sprucing-up-my-windows-mobile-6-1-device-amp-yours-maybe.aspx&amp;amp;phase=2" target="_blank" title="Submit Sprucing Up My Windows Mobile 6.1 Device (&amp;amp; Yours… Maybe) 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/sprucing-up-my-windows-mobile-6-1-device-amp-yours-maybe.aspx&amp;amp;title=Sprucing+Up+My+Windows+Mobile+6.1+Device+(%26amp%3b+Yours%e2%80%a6+Maybe)" target="_blank" title="Add Sprucing Up My Windows Mobile 6.1 Device (&amp;amp; Yours… Maybe) 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://netindonesia.net/aggbug.aspx?PostID=182025" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="Windows Mobile" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/Windows+Mobile/default.aspx" /></entry><entry><title>Important 3 Sided Development Project Tools</title><link rel="alternate" type="text/html" href="http://netindonesia.net/blogs/jimmy/archive/2009/06/27/important-3-sided-development-project-tools.aspx" /><id>http://netindonesia.net/blogs/jimmy/archive/2009/06/27/important-3-sided-development-project-tools.aspx</id><published>2009-06-27T09:10:00Z</published><updated>2009-06-27T09:10:00Z</updated><content type="html">&lt;p&gt;Been eating and hawking stuffs related to Application Lifecycle Management lately, especially Microsoft Solution Framework, Visual Studio Team System and Team Foundation Server.&amp;nbsp; During the workshop that I delivered, I often mentioned certain things that seem to be very useful to know.&lt;/p&gt;
&lt;p&gt;Amazingly, they all have 3 sides to them.&amp;nbsp; I’m sure you all have heard about it somewhere during your career as a developer or what not, but nevertheless, I think I’ll share what I’ve learnt and I’m sure you can benefit from this if you don’t already know them.&lt;/p&gt;
&lt;h2&gt;1. The Iron Triangle of Time,&amp;nbsp;Scope and Cost&lt;/h2&gt;
&lt;p&gt;&lt;img style="DISPLAY:inline;MARGIN-LEFT:0px;MARGIN-RIGHT:0px;" border="0" align="left" src="http://www.agileministry.com/images/IronTriangle-large.jpg" width="240" height="250" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Most development project owner will want to control all three sides of this “Iron Triangle” and they sometime can be unreasonable about it.&amp;nbsp; It’s your job as the development team to educate / reason with the project owner that in all eventually, they realistically can only control two out of three and will have to sacrifice the third to achieve the other two.&lt;/p&gt;
&lt;p&gt;So, if the project owner want all the features implemented and at a fixed monetary cost, they will have to compromise on time needed to complete the project.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;If he / she chooses to have the project completed with all the scope specified and within a fixed time (according to their schedule, not what is estimated by the development team), then they will have to pay extra cost (it will be more expensive since you might need to get a more proficient team member or tooling).&lt;/p&gt;
&lt;p&gt;Another variation of this triangle is Cheap, Good, and Fast (heard it from &lt;a href="http://www.kudzuworld.com/Bio.EN.aspx" target="_blank"&gt;Chad Hower&lt;/a&gt; in TechEd SEA 2007).&amp;nbsp; If you want it done Cheap and get it done Fast, then for certain you won’t get a Good product.&amp;nbsp; If you want it Cheap and Good, then be prepare to wait for it (perhaps due to your cheap labor will need to ramp up on the technology to deliver your product first).&amp;nbsp; If you want it Good and want it delivered Fast, then be prepared to pay a lot more (it’s not going to be Cheap). &lt;/p&gt;
&lt;p&gt;One other note on this, adding more human resources in a middle of an ongoing project will NOT help you speed up the delivery time most of the time since the new resources will need to time to get up to date on the current project situation, technology, etc.&amp;nbsp; There will be some knowledge transfer time incurred when you do this that will impact the deadline.&lt;br /&gt;&lt;br /&gt;In most development project, it is often suggested to cut scope in favor of paying additional cost and time (Cost &amp;amp; Time are fixed, since most of the time it will be a fixed cost contract and the client have certain timeframe in mind).&lt;/p&gt;
&lt;p&gt;Amazingly, one promise of Scrum (heard from Jeff Sutherland’s InfoQ &lt;a href="http://www.infoq.com/presentations/The-Roots-of-Scrum" target="_blank"&gt;Root of Scrum&lt;/a&gt; presentation) is the ability to break this triangle and basically offer the project owner the ability to “have the cake and eat it too”, so to speak.&amp;nbsp; Some people &lt;a title="Breaking the Iron Triangle w/ Scrum" href="http://blogs.conchango.com/stevegarnett/archive/2004/11/19/297.aspx" target="_blank"&gt;argued&lt;/a&gt; whether such thing is really possible or not, but I’ll leave it out to you to decide if it’s true or not. &lt;br style="CLEAR:all;" /&gt;&lt;/p&gt;
&lt;h2&gt;2. The Three Legged Stool of People, Process and Tool&lt;/h2&gt;
&lt;p&gt;&lt;img style="DISPLAY:inline;MARGIN-LEFT:0px;MARGIN-RIGHT:0px;" align="left" src="http://ts2.images.live.com/images/thumbnail.aspx?q=864731404825&amp;amp;id=a77342b885cdd8a561426335339e6c3e&amp;amp;url=http%3a%2f%2fwww.metroretrofurniture.com%2fimages%2fstools%2fav94woodstool01_t.jpg" width="233" height="240" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Ridi wrote about Dist&lt;a href="http://geeks.netindonesia.net/blogs/ridi/archive/2009/06/25/a-way-to-distributed-extreme-programming.aspx" target="_blank"&gt;ributed Extreme Programming&lt;/a&gt; not too long ago, in there he mentioned a model of Tools, Method and Process.&amp;nbsp; He also mentioned something about communication being important, etc. (which I think is also important… the people aspect).&amp;nbsp; So let’s put them together….&lt;/p&gt;
&lt;p&gt;1. Tools&lt;/p&gt;
&lt;p&gt;2. Method &amp;amp; Process (I often think these two are actually one and the same)&lt;/p&gt;
&lt;p&gt;3. People&lt;/p&gt;
&lt;p&gt;Each of these three can be viewed as the each leg of the three legged stool.&amp;nbsp; If any one of them is not present, your stool will certainly become unbalanced and will fall down.&lt;/p&gt;
&lt;p&gt;For example, you have the best tool and the best process in the world, but the people doesn’t want to use the tool or the process (too complicated or what not).&amp;nbsp; Your project will not be successful.&amp;nbsp; Or you have the best people and the best tool in the world, but your process is a mess, you will also fail, etc.&lt;/p&gt;
&lt;p&gt;As one of my mentors said to me, keep them in your pocket and pull them out when you need them :).&amp;nbsp; I hope you can use these two three sided tools / knowledge to your advantage and success of your project.&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://netindonesia.net/blogs/jimmy/archive/2009/06/27/important-3-sided-development-project-tools.aspx&amp;amp;subject=Important 3 Sided Development Project Tools" 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/important-3-sided-development-project-tools.aspx&amp;amp;t=Important+3+Sided+Development+Project+Tools" target="_blank" title="Submit Important 3 Sided Development Project Tools 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/important-3-sided-development-project-tools.aspx&amp;amp;title=Important+3+Sided+Development+Project+Tools" target="_blank" title="Submit Important 3 Sided Development Project Tools 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/important-3-sided-development-project-tools.aspx&amp;amp;phase=2" target="_blank" title="Submit Important 3 Sided Development Project Tools 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://netindonesia.net/blogs/jimmy/archive/2009/06/27/important-3-sided-development-project-tools.aspx&amp;amp;title=Important+3+Sided+Development+Project+Tools" target="_blank" title="Add Important 3 Sided Development Project Tools 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://netindonesia.net/aggbug.aspx?PostID=182021" width="1" height="1"&gt;</content><author><name>jimmy</name><uri>http://netindonesia.net/members/jimmy.aspx</uri></author><category term="Project Management" scheme="http://netindonesia.net/blogs/jimmy/archive/tags/Project+Management/default.aspx" /></entry></feed>