<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Adam Nathan's Blog : Managed Code</title><link>http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx</link><description>Tags: Managed Code</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>.NET and COM: Available once again in non-electronic form</title><link>http://blogs.msdn.com/adam_nathan/archive/2006/05/15/587748.aspx</link><pubDate>Mon, 15 May 2006 17:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:587748</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/587748.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=587748</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=587748</wfw:comment><description>&lt;P&gt;As I mentioned in my &lt;A HREF="/adam_nathan/archive/2006/04/20/580045.aspx"&gt;earlier post&lt;/A&gt;, my .NET and COM book is now being printed on-demand and can be purchased only at the following location (and perhaps only for a limited time?):&lt;/P&gt;&lt;A href="http://www.samspublishing.com/title/067232170X"&gt;http://www.samspublishing.com/title/067232170X&lt;/A&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=587748" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category></item><item><title>This just in: .NET and COM is coming back in print!</title><link>http://blogs.msdn.com/adam_nathan/archive/2006/04/20/580045.aspx</link><pubDate>Thu, 20 Apr 2006 20:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:580045</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>23</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/580045.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=580045</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=580045</wfw:comment><description>&lt;P&gt;A few months ago &lt;A href="/adam_nathan/archive/2005/12/12/502136.aspx"&gt;I mentioned that my .NET and COM book went out of print&lt;/A&gt;.&amp;nbsp; Well, after getting regular streams of e-mail from people who still wanted to get a copy (which I forwarded on to the publisher), I can now happily say that they are planning to print more!&lt;/P&gt;
&lt;P&gt;I believe it's going to be some kind of on-demand printing that will only be available for purchase at &lt;A href="http://samspublishing.com"&gt;samspublishing.com&lt;/A&gt; (so no Amazon / B&amp;amp;N).&amp;nbsp; I'll post more info when I get it (which I'm told should be in about a week).&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=580045" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category></item><item><title>The passing of one book and the birth of another</title><link>http://blogs.msdn.com/adam_nathan/archive/2005/12/12/502136.aspx</link><pubDate>Mon, 12 Dec 2005 18:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:502136</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/502136.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=502136</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=502136</wfw:comment><description>&lt;P&gt;It's official... I got a letter informing me that &lt;A href="http://www.amazon.com/exec/obidos/ASIN/067232170X"&gt;.NET and COM&lt;/A&gt;, almost four years after&amp;nbsp;its release,&amp;nbsp;is out of print.&amp;nbsp; Of course, it still lives on &lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/B0002NYF8I/"&gt;in PDF form&lt;/A&gt;.&amp;nbsp; Like &lt;a href="http://blogs.msdn.com/adam_nathan/archive/2005/06/23/431906.aspx#437007"&gt;Luke&lt;/A&gt;, I've sometimes been baffled by the apparent lack of supply.&amp;nbsp; I've been told many times about someone that wanted to get a copy of it but wasn't able to.&amp;nbsp; But I figure if supply/demand was really out of whack then I would have heard about an Xbox 360-style bidding frenzy on eBay!&lt;/P&gt;
&lt;P&gt;After finishing .NET and COM, I said I would never write another book.&amp;nbsp; At the same time, I knew that as the years passed I would start forgetting about how bad the process really was and only remember the good things.&amp;nbsp; I really appreciate the kind words from many folks via e-mail, in person, on this blog, and on sites like Amazon.&amp;nbsp; The amount of positive feedback I've received has been overwhelming, making it even easier to forget about the enormous amount of work and sacrifices it took to create the book!&amp;nbsp; (Although I did save a particularly nasty voicemail where I got chewed out for being waaaaaaay past a number of deadlines.)&lt;/P&gt;
&lt;P&gt;Besides the fading of bad memories, something else happened this year.&amp;nbsp; My job led me to a fantastic new technology that I feel really passionate about.&amp;nbsp; Therefore, I have given into temptation and decided to write a book about my new favorite technology: WPF!&lt;/P&gt;
&lt;P&gt;Stay tuned for more info...&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=502136" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Misc/default.aspx">Misc</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category></item><item><title>Light up on Windows Vista: The "Top 10" List</title><link>http://blogs.msdn.com/adam_nathan/archive/2005/09/12/463211.aspx</link><pubDate>Tue, 13 Sep 2005 08:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:463211</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/463211.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=463211</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=463211</wfw:comment><description>&lt;P&gt;PDC attendees got a "top 10" poster, but the details are now live on MSDN: "&lt;A href="http://msdn.microsoft.com/windowsvista/top10/"&gt;10 things you can do to make your application shine when it runs on Windows Vista&lt;/A&gt;."&amp;nbsp; They are, in no particular order:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/windowsvista/top10/#CTA1"&gt;1. Follow the Windows Vista style guidelines&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/windowsvista/top10/#CTA2"&gt;2. Enrich the user experience&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/windowsvista/top10/#CTA3"&gt;3. Enable users to visualize, organize, and search&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/windowsvista/top10/#CTA4"&gt;4. Run securely&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/windowsvista/top10/#CTA5"&gt;5. Design for reliability and manageability&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/windowsvista/top10/#CTA6"&gt;6. Establish a customer feedback loop&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/windowsvista/top10/#CTA7"&gt;7. Build for connected systems&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/windowsvista/top10/#CTA8"&gt;8. Bring data to the user with RSS&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/windowsvista/top10/#CTA9"&gt;9. Make document data accessible&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/windowsvista/top10/#CTA10"&gt;10. Build for mobility&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This helps frame my talk on Thursday (FUN318), since I'll be digging into 6 out of these 10 themes and show how I applied them to Internet Hearts.&amp;nbsp; I won't be covering #1 because that's not very exciting, or #3 and #9 because they don't apply to this application, or #10 (which would have been nice) because that's too much to cram into one hour.&lt;/P&gt;
&lt;P&gt;As a side note, "Light Up on Longhorn" had a much better ring than "Light Up on Windows Vista."&amp;nbsp; Does anyone have a better term for "light up"?&lt;/P&gt;
&lt;P&gt;Tags: &lt;A href="http://technorati.com/tag/pdc" rel=tag&gt;PDC&lt;/A&gt;, &lt;A href="http://technorati.com/tag/pdc05" rel=tag&gt;PDC05&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=463211" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category></item><item><title>Announcing www.winfxhearts.com!</title><link>http://blogs.msdn.com/adam_nathan/archive/2005/09/08/462190.aspx</link><pubDate>Thu, 08 Sep 2005 17:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:462190</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>19</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/462190.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=462190</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=462190</wfw:comment><description>&lt;P&gt;To correspond with &lt;A href="http://commnet.microsoftpdc.com/content/sessionview.aspx?TopicID=5380e71b-7cc8-4c36-a846-d422cfd73eac"&gt;my PDC talk&lt;/A&gt; about making an application "light up" on Windows Vista, I've created &lt;A href="http://www.winfxhearts.com/"&gt;www.winfxhearts.com&lt;/A&gt;.&amp;nbsp; This site has a ClickOnce link that enables you can play a version of my new &amp;amp; improved Internet Hearts game.&amp;nbsp; Here's a "before &amp;amp; after" look:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A href="http://www.winfxhearts.com/"&gt;&lt;IMG src="http://pinvoke.net/blog/images/thegamesmall.png" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This is still the good ol' Win32 application, but with a dramatically different user experience thanks to WPF and ClickOnce.&amp;nbsp; In the screenshot above, the reddish part of the new UI uses WPF (Avalon), but the chat window, menus, etc. are still Win32.&amp;nbsp; And of course the game logic is still the same.&amp;nbsp; There's no need to rewrite it!&lt;/P&gt;
&lt;P&gt;Again, I promise to blog more details after the &lt;a href="http://technorati.com/tag/pdc" rel="tag"&gt;PDC&lt;/a&gt; (and not just about Avalon &amp;amp; ClickOnce, but Indigo, Windows Vista, plus the experiences of upgrading to VC8 &amp;amp; using /CLR).&amp;nbsp; In the meantime, go ahead and try the game, or look for the Channel 9 video about WinFX Hearts &amp;amp; WPF (scheduled to appear on Monday).&lt;/P&gt;
&lt;P&gt;You can play this version on Windows Vista Beta 1, Windows XP, or Windows Server 2003, as long as &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=CE888B4C-CCBD-452F-9D90-F4B7190CCA24&amp;amp;displaylang=en"&gt;WinFX Beta 1&lt;/A&gt; is installed (and a post-Beta 2 version of the .NET Framework is &lt;EM&gt;not &lt;/EM&gt;installed).&amp;nbsp; If you're going to &lt;a href="http://technorati.com/tag/pdc05" rel="tag"&gt;PDC05&lt;/a&gt;, you can play the game on machines in the "Windows Vista Test Drive" Commnet area through Tuesday (9/13).&lt;/P&gt;
&lt;P&gt;Sure, it's not as popular a game as Solitaire or &lt;a href="https://blogs.msdn.com:443/oldnewthing/archive/2005/09/05/461035.aspx"&gt;Spider Solitaire&lt;/A&gt;, but hopefully the opportunity to play humans&amp;nbsp;is an incentive.&amp;nbsp; Before entering a game, you get to choose a name and a picture (either a standard one or any image on the web!):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;IMG src="http://winfxhearts.com/logon.png"&gt;&lt;/P&gt;
&lt;P&gt;The game doesn't begin until four players have joined, so you might have to wait awhile to play (or convince some friends to join at the same time)!&lt;/P&gt;
&lt;P&gt;Post any questions/issues/comments here.&amp;nbsp; Enjoy!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=462190" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Hearts/default.aspx">Hearts</category></item><item><title>Migrating from VC6 to VC8: Resources</title><link>http://blogs.msdn.com/adam_nathan/archive/2005/07/15/439342.aspx</link><pubDate>Fri, 15 Jul 2005 20:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:439342</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/439342.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=439342</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=439342</wfw:comment><description>&lt;P&gt;In order to &lt;a href="http://blogs.msdn.com/adam_nathan/archive/2005/05/02/414174.aspx"&gt;update Internet Hearts with WinFX features&lt;/A&gt;, I'm going to leverage C++ Interop and recompile at least some of the source code with /clr so I can start using managed APIs.&amp;nbsp; Therefore, my first step was to get the source code (which hadn't been touched in about 6 years) building with Visual C++ 2005 (aka "VC8").&amp;nbsp; Yes, I could have kept pieces compiling with VC6.&amp;nbsp; Or I could have changed my approach to keep using VC6 everywhere and leverage PInvoke or COM Interop instead of C++ Interop.&amp;nbsp; But C++ Interop is the most natural choice for this project... plus I want my &lt;EM&gt;unmanaged &lt;/EM&gt;code to get the benefits of the latest &amp;amp; greatest VC compiler.&amp;nbsp; Don't be fooled into thinking that Visual C++ 2005 is only interesting for managed code!&lt;/P&gt;
&lt;P&gt;Of course, the jump from VC6 to VC8 is pretty large.&amp;nbsp; A lot has happened in those 7 (or is it 8?) years!&amp;nbsp; Actually, the biggest adjustment is going from VC6 to VC7.1, due to significantly increased compliance with ANSI/ISO standards, resulting in breaking changes.&amp;nbsp; But if you've already made the jump to VC7.1, moving to VC8 should be much easier.&amp;nbsp; The biggest change you'll notice when moving to VC8 is probably the &lt;A href="http://msdn2.microsoft.com/library/8ef0s5kh(en-us,vs.80).aspx"&gt;CRT Security Enhancements&lt;/A&gt;, which will likely give you &lt;EM&gt;lots &lt;/EM&gt;of deprecation warnings.&lt;/P&gt;
&lt;P&gt;Next time I'll discuss what challenges I ran into upgrading the Internet Hearts codebase, but in the meantime I've done some navigating of the maze known as MSDN, and came up with the following list of migration resources.&amp;nbsp; I just hope that these funky URLs will be a little more permanent than most permalinks I've tried to rely on!&lt;/P&gt;
&lt;P&gt;Overviews:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/bw65k95a(en-us,vs.80).aspx"&gt;What's new in 8.0&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/7223w6b0(en-us,vs.80).aspx"&gt;What's new in 7.1&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/2byy0fh6(en-us,vs.80).aspx"&gt;What's new in 7.0&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Moving from 6.0 to 7.1:&lt;BR&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/w1sc4t4k(en-us,vs.80).aspx"&gt;ATL/MFC Breaking changes (6.0 to 7.0)&lt;/A&gt;&amp;nbsp;(also seen &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vclrfatlcompatibilityissues.asp"&gt;here&lt;/A&gt;&amp;nbsp;but the list isn't as long) 
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vclrfatlcompatibilityissues.asp"&gt;ATL/MFC Breaking changes (7.0 to 7.1)&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/zzz7ct0s(en-us,vs.80).aspx"&gt;Standard C++ Library changes&lt;/A&gt;&amp;nbsp;and &lt;A href="http://msdn2.microsoft.com/library/8h8eh904(en-us,vs.80).aspx"&gt;issues specific to upgrading&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/ms177251(en-us,vs.80).aspx"&gt;Compiler breaking changes&lt;/A&gt; 
&lt;LI&gt;In-depth info on &lt;A href="http://msdn2.microsoft.com/library/txbse2cf(en-us,vs.80).aspx"&gt;increased standards compliance&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/kyb7zzw4(en-us,vs.80).aspx"&gt;Project upgrading&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Moving from 7.1 to 8.0:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/y8bt6w34(en-us,vs.80).aspx"&gt;Libraries breaking changes&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/k3aehyyf(en-us,vs.80).aspx"&gt;ATL obsolete topics and deprecated functions with replacements&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/96kas566(en-us,vs.80).aspx"&gt;MFC obsolete topics&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/ms177253(en-us,vs.80).aspx"&gt;Compiler breaking changes&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/z8dh4h17(en-us,vs.80).aspx"&gt;Deprecated compiler options&lt;/A&gt; 
&lt;LI&gt;Some removed linker options (mentioned &lt;A href="http://msdn2.microsoft.com/library/hx072wbd(en-us,vs.80).aspx"&gt;here&lt;/A&gt; and &lt;A href="http://msdn2.microsoft.com/library/cx002e0b(en-us,vs.80).aspx"&gt;here&lt;/A&gt;) 
&lt;LI&gt;&lt;A href="http://msdn2.microsoft.com/library/e54ke6de(en-us,vs.80).aspx"&gt;Preprocessor changes&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=439342" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Hearts/default.aspx">Hearts</category></item><item><title>Internet Hearts: 112,000 Lines of Code</title><link>http://blogs.msdn.com/adam_nathan/archive/2005/06/15/429446.aspx</link><pubDate>Wed, 15 Jun 2005 23:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:429446</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/429446.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=429446</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=429446</wfw:comment><description>&lt;P&gt;On Monday &lt;a href="http://blogs.msdn.com/adam_nathan/archive/2005/06/13/428610.aspx"&gt;I asked for guesses on the size of the Internet Hearts source base&lt;/A&gt;, and the highest (public) one was 45,000 lines of code.&amp;nbsp; The answer: approximately &lt;STRONG&gt;112,000&lt;/STRONG&gt; lines of code!&amp;nbsp; 51,000 are client-specific, 35,000 are server-specific, and 26,000 are shared by both.&lt;/P&gt;
&lt;P&gt;Higher than you expected? Well, there's a lot of functionality on the server end. And the application is actually a general-purpose game client &amp;amp; server designed to support multiple games (Internet Backgammon/Checkers/Hearts/Reversi/Spades).&amp;nbsp; For the purpose of turning this app into a shareable sample, I've already removed the non-Hearts pieces, but the generic nature of the architecture definitely contributes to the code size.&lt;/P&gt;
&lt;P&gt;When I apply today's technologies to this older code base, I'm pretty sure I'll be able to "do more with less":&amp;nbsp; Less lines of code, less time &amp;amp; effort, less bugs, etc.&amp;nbsp; So we should see the application shrink.&lt;/P&gt;
&lt;P&gt;Here are some diagrams to illustrate how the baseline Internet Hearts application is structured (prior to any improvements).&amp;nbsp; The orange-colored components involve UI, so they're candidates for an Avalon makeover.&amp;nbsp; The indigo-colored components involve networking, so they're candidates for... you guessed it... Indigo!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The Client:&lt;/STRONG&gt;&lt;/P&gt;&lt;IMG src="http://www.pinvoke.net/blog/images/heartsclient.gif"&gt; 
&lt;P&gt;&lt;STRONG&gt;The Server:&lt;/STRONG&gt;&lt;/P&gt;&lt;IMG src="http://www.pinvoke.net/blog/images/heartsserver.gif"&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=429446" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Hearts/default.aspx">Hearts</category></item><item><title>2005 Products: Why Upgrade?</title><link>http://blogs.msdn.com/adam_nathan/archive/2005/06/09/427395.aspx</link><pubDate>Thu, 09 Jun 2005 23:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:427395</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/427395.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=427395</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=427395</wfw:comment><description>&lt;P&gt;Yesterday at TechEd, someone asked me if we had one-page documents that explained:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;What's new in SQL Server 2005?&lt;/LI&gt;
&lt;LI&gt;What's new in Visual Studio 2005?&lt;/LI&gt;
&lt;LI&gt;What's new in the .NET Framework 2.0?&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;In other words, what are the features that will make her team beg to move from SQL Server 2000 and Visual Studio 2003?&amp;nbsp; I know that there are soooo many improvements and new features in these products (literally &lt;EM&gt;years &lt;/EM&gt;in the making), but have we done a good enough job enumerating the benefits of these new products and technologies?&amp;nbsp; I&amp;nbsp;wasn't aware of such one-page documents, so I started digging to see what I could find online.&lt;/P&gt;
&lt;P&gt;For SQL Server 2005, I found &lt;A href="http://download.microsoft.com/download/6/d/1/6d1121ba-1966-4e0f-ba41-c0060ddc800f/SQLServer2005ProdOvr.doc"&gt;this document&lt;/A&gt;.&amp;nbsp; (A little longer than one page!)&lt;/P&gt;
&lt;P&gt;For Visual Studio 2005, there's the new &lt;A href="http://msdn.microsoft.com/howtobuy/vs2005/editions/team/"&gt;Team System&lt;/A&gt;, which delivers tons of new functionality, and the new &lt;A href="http://msdn.microsoft.com/howtobuy/vs2005/editions/stdexp/"&gt;Express Editions&lt;/A&gt;.&amp;nbsp; But the Standard and Professional Editions have countless improvements for developer productivity, of course.&amp;nbsp; For the IDE, the closest "What's New?" list I've found is the oddly-titled "&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/vs2005icons.asp"&gt;Where Did My Icons Go?&lt;/A&gt;" article.&amp;nbsp; It's not mentioned, but for me, my favorite feature is a set of IntelliSense improvements that makes it (finally!) even better than VB6 IntelliSense!&amp;nbsp; (By the way, &lt;a href="http://blogs.msdn.com/robcaron/archive/2005/04/15/408426.aspx"&gt;this post&lt;/A&gt; gives a great overview of all the Visual Studio editions.)&lt;/P&gt;
&lt;P&gt;But we haven't even touched on language features yet!&amp;nbsp; C# now has &lt;A href="http://msdn.microsoft.com/vcsharp/2005/overview/"&gt;anonymous methods, iterators, partial classes, and more&lt;/A&gt;.&amp;nbsp; &lt;A href="http://msdn.microsoft.com/VBasic/Whidbey/"&gt;VB&lt;/A&gt;&amp;nbsp;has the &lt;A href="http://msdn.microsoft.com/vbasic/default.aspx?pull=/library/en-us/dnvs05/html/vbmy.asp"&gt;"My" feature&lt;/A&gt;, &lt;A href="http://msdn.microsoft.com/vbasic/default.aspx?pull=/library/en-us/dnvs05/html/VBUpgrade.asp"&gt;Upgrade Wizard enhancements&lt;/A&gt;, &lt;A href="http://msdn.microsoft.com/vbasic/default.aspx?pull=/library/en-us/dnvs05/html/vboperatoroverloading.asp"&gt;operator overloading&lt;/A&gt;, and &lt;A href="http://msdn.microsoft.com/vbasic/default.aspx?pull=/library/en-us/dnvs05/html/LanguageEnhancements.asp"&gt;other language enhancements&lt;/A&gt;.&amp;nbsp; &lt;A href="http://msdn.microsoft.com/visualc/whidbey/"&gt;C++&lt;/A&gt; has a ton of new features, and an &lt;A href="http://msdn.microsoft.com/visualc/whidbey/default.aspx?pull=/msdnmag/issues/04/05/visualc2005/default.aspx"&gt;overhauled syntax&lt;/A&gt; that addresses issues with the deprecated managed extensions and makes C++ interop better than ever.&lt;/P&gt;
&lt;P&gt;Then there's the .NET Framework itself, whose improvements (usually) apply across all languages.&amp;nbsp; &lt;A href="http://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/overview/default.aspx"&gt;Windows Forms&lt;/A&gt; includes great new controls and &lt;A href="http://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/features/clickonce.aspx"&gt;ClickOnce&lt;/A&gt; deployment.&amp;nbsp; &lt;A href="http://msdn.microsoft.com/asp.net/beta2/"&gt;ASP.NET&lt;/A&gt; also has tons of new controls and RAD features.&amp;nbsp; See the TechEd 2005 slides and demos &lt;A href="http://scottgu.com/talks.aspx"&gt;here&lt;/A&gt; for a good overview.&amp;nbsp; ADO.NET has &lt;A href="http://msdn2.microsoft.com/library/ex6y04yf(en-us,vs.80).aspx"&gt;a number of improvements&lt;/A&gt;.&amp;nbsp; The CLR has Edit &amp;amp; Continue, 64-bit support, generics, performance and reliability improvements, more complete interoperability, new classes and members throughout the base class libraries: generic collections, ACL Support, Serial Port support, console enhancements, etc.&amp;nbsp; &lt;A href="http://msdn2.microsoft.com/library/t357fb32.aspx"&gt;Here's a summary&lt;/A&gt; of some of the .NET Framework 2.0 improvements over 1.1: authenticated stream classes (NegotiateStream and SslStream), FTP support, etc. etc. etc.&lt;/P&gt;
&lt;P&gt;From my viewpoint, this information was too hard to dig up.&amp;nbsp; And I'm only scratching the surface!&amp;nbsp; (In fact, I probably omitted some large areas.)&amp;nbsp; I'm not in marketing, so maybe this is already in the works, but I'd love to see 1 (or 2, 3, 4, ...) pagers on the most compelling new features in these products.&lt;/P&gt;
&lt;P&gt;Have you been taking early looks at these products?&lt;/P&gt;
&lt;P&gt;What is &lt;EM&gt;your &lt;/EM&gt;most compelling new feature?&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=427395" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category></item><item><title>pinvoke.net is one year old!</title><link>http://blogs.msdn.com/adam_nathan/archive/2005/05/09/415796.aspx</link><pubDate>Mon, 09 May 2005 23:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:415796</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/415796.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=415796</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=415796</wfw:comment><description>&lt;P&gt;In a recent meeting, I got the opportunity to meet &lt;A href="http://en.wikipedia.org/wiki/Ward_Cunningham"&gt;Ward Cunningham&lt;/A&gt;, &lt;A href="http://www.flexwiki.com/default.aspx/FlexWiki.DavidOrnstein"&gt;David Ornstein&lt;/A&gt;, and &lt;a href="https://blogs.msdn.com:443/korbyp/"&gt;Korby Parnell&lt;/A&gt;.&amp;nbsp; Naturally, afterwards I had wikis on the brain.&amp;nbsp; They (not intentionally) made me feel guilty about &lt;A href="http://www.pinvoke.net"&gt;pinvoke.net&lt;/A&gt; being on such an old version of FlexWiki.&amp;nbsp; Then I realized that pinvoke.net turned one year old last month (4/18), and I forgot its birthday!&amp;nbsp; Even more guilt!&lt;/P&gt;
&lt;P&gt;So I decided that this past weekend was an appropriate time to upgrade.&amp;nbsp;&amp;nbsp;This updgrade (plus changes in my own customizations like the treeview) means that &lt;STRONG&gt;pinvoke.net now works in Firefox!&lt;/STRONG&gt;&amp;nbsp; This has been a request from many of you, so I'm really, really&amp;nbsp;happy to see this working.&amp;nbsp; I happened to be in our &lt;A href="http://www.bellevuesquare.com/ourstores/malldir.cfm?MallDir=212&amp;amp;CID=3848"&gt;local Apple store&lt;/A&gt; this weekend, so I know that it works in Safari, too!&lt;/P&gt;
&lt;P&gt;Now's also a good time to take stock of the site.&amp;nbsp; I &lt;a href="https://blogs.msdn.com:443/adam_nathan/archive/2004/05/06/127403.aspx"&gt;last reported&lt;/A&gt; that it tracked 25 DLLs and approx. 1,700 signatures and types.&amp;nbsp; As of right now, pinvoke.net contains &lt;STRONG&gt;66&lt;/STRONG&gt; DLLs with &lt;STRONG&gt;over 2,600&lt;/STRONG&gt; signatures and types!&amp;nbsp; (46 pages of constants, 9 delegates, 125 enums, 42 interfaces, 215 structures, and 2,175 APIs.)&amp;nbsp; So thanks again to everyone who has been continuing to contribute to the site!&amp;nbsp; I love seeing modules and APIs added that I never heard of before, such as iPAQUtil.dll - a recent addition.&amp;nbsp; Adding new DLLs is still a manual action, so please let me know if you want to see additional modules that aren't there yet!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=415796" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category></item><item><title>Migrating Internet Hearts to WinFX</title><link>http://blogs.msdn.com/adam_nathan/archive/2005/05/02/414174.aspx</link><pubDate>Tue, 03 May 2005 09:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:414174</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>14</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/414174.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=414174</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=414174</wfw:comment><description>&lt;P&gt;Last year, &lt;A href="http://sellsbrothers.com/"&gt;Chris Sells&lt;/A&gt; wrote &lt;A href="http://msdn.microsoft.com/longhorn/understanding/columns/default.aspx?pull=/library/en-us/dnfoghorn/html/foghorn02112004.asp"&gt;a series of articles&lt;/A&gt; in which he set out to rewrite Solitaire using Avalon.&amp;nbsp; The lack of scaling graphics in the Win32 version (and lack of access to&amp;nbsp;its source code, I suppose) forced him down the road of rewriting the app from scratch.&amp;nbsp; Plus, the point was to explore "the initial decisions developers will make when building new applications targeting Longhorn."&amp;nbsp; (This was before &lt;a href="http://blogs.msdn.com/brada/archive/2004/08/29/222489.aspx"&gt;WinFX got decoupled from Longhorn&lt;/A&gt; and made available for Windows XP &amp;amp; Windows Server 2003.)&lt;/P&gt;
&lt;P&gt;This year, I'm going to create a new WinFX-enabled version of Internet Hearts (the not-as-popular card game that also ships with Windows XP).&amp;nbsp; But the focus is going to be on &lt;EM&gt;migration&lt;/EM&gt;&amp;nbsp;rather than starting from scratch.&amp;nbsp; I'll&amp;nbsp;gradually replace the UI with Avalon and the communication with Indigo.&amp;nbsp; After all, I want to focus on the cool stuff; not rewriting the basic logic.&amp;nbsp; I'll share results as I go along, and hopefully I'll be able to share the source code, pre-migration and post-migration!&lt;/P&gt;
&lt;P&gt;I want to give special thanks to Steven Goulet (one of the folks on my new team), who came up with Internet Hearts as a great example application that could benefit from Avalon &amp;amp; Indigo.&amp;nbsp; He also did the legwork of getting permission&amp;nbsp;for the original source code.&amp;nbsp; So without him, this would not be possible!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=414174" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Hearts/default.aspx">Hearts</category></item><item><title>.NET Framework 2.0 and app compat</title><link>http://blogs.msdn.com/adam_nathan/archive/2005/04/28/413015.aspx</link><pubDate>Thu, 28 Apr 2005 19:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:413015</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/413015.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=413015</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=413015</wfw:comment><description>&lt;P&gt;&lt;a href="http://blogs.msdn.com/jasonz/"&gt;Jason Zander&lt;/A&gt;, head of the CLR, does a great job &lt;a href="http://blogs.msdn.com/jasonz/archive/2005/04/25/411925.aspx"&gt;explaining application compatibility issues&lt;/A&gt; that the team is focused on.&amp;nbsp; I'm curious to hear about managed apps and components that have been released, whether they're "&lt;A href="http://weblogs.asp.net/mhawley/archive/2004/04/05/107776.aspx"&gt;100% managed code&lt;/A&gt;" or even 1% managed code.&amp;nbsp; And have you tried installing &amp;amp; running them on Whidbey yet (without .NET Framework v1.x installed on the machine or forced to use v2.0 via&amp;nbsp;config)?&amp;nbsp; We know we have some work to do between Beta 2 and RTM, but we'd love to hear results from more apps &amp;amp; components!&amp;nbsp; So come on, here's an excuse to plug a product/project without it looking like comment spam!&lt;/P&gt;
&lt;P&gt;As an example, here's a &lt;A href="http://worldwind.arc.nasa.gov/index.html"&gt;cool application&lt;/A&gt; Jason told me about that's written in C# and uses DirectX.&amp;nbsp; I haven't tried yet, but I'm told this indeed runs fine on Whidbey Beta 2.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=413015" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category></item><item><title>Help us help you!</title><link>http://blogs.msdn.com/adam_nathan/archive/2004/09/08/227095.aspx</link><pubDate>Thu, 09 Sep 2004 00:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:227095</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/227095.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=227095</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=227095</wfw:comment><description>&lt;P&gt;[Update: This program is no longer available.]&lt;/P&gt;
&lt;P&gt;Do you write managed apps or components?&amp;nbsp; Then you should run them on a &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=CC36F05E-2050-4E54-B460-E99E50156712&amp;amp;displaylang=en"&gt;special edition of the .NET Framework 2.0&amp;nbsp;Beta 1&lt;/A&gt;.&amp;nbsp; With this, you can now give Microsoft direct feedback on what portions of the .NET Framework and Win32 you're dependent on!&amp;nbsp; This will help us maintain compatibility with future releases of the .NET Framework and prioritize our testing on the functionality you care about most.&amp;nbsp; We'll even send you info when future drops of the .NET Framework are released that will describe how .NET Framework code changes post-Beta 1 might impact your applications and components.&lt;/P&gt;
&lt;P&gt;You can download this special edition here: &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=CC36F05E-2050-4E54-B460-E99E50156712&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=CC36F05E-2050-4E54-B460-E99E50156712&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Be sure to read through the &lt;A href="http://go.microsoft.com/fwlink/?LinkId=32743"&gt;documentation&lt;/A&gt; (which is a &lt;A href="http://go.microsoft.com/fwlink/?LinkId=32743"&gt;separate link&lt;/A&gt; on the download page) to help you install and use it.&amp;nbsp; For example, on Windows XP the installation won't succeed unless you've got &lt;A href="http://www.microsoft.com/windowsxp/sp2/default.mspx"&gt;SP2&lt;/A&gt;.&amp;nbsp; And please don't hesitate to contact me if you have any questions or issues.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=227095" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category></item><item><title>'Introducing' PINVOKE.NET and its Visual Studio Add-In!</title><link>http://blogs.msdn.com/adam_nathan/archive/2004/05/06/127403.aspx</link><pubDate>Thu, 06 May 2004 22:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:127403</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>79</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/127403.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=127403</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=127403</wfw:comment><description>&lt;P&gt;&lt;SPAN&gt;I guess I'm not cut out to be a journalist. 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Two weeks ago when I decided to spend my weekend creating the PINVOKE.NET wiki, I had a great opportunity to awaken my blog from its deep slumber by announcing it to the world.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;But &lt;A href="http://www.blowery.org/PermaLink.aspx/d29af728-6cfc-4a88-8e75-71f66783ea63"&gt;Ben&lt;/A&gt;, &lt;a href="https://blogs.msdn.com:443/brada/archive/2004/04/19/116423.aspx"&gt;Brad&lt;/A&gt;, &lt;A href="http://www.urbanpotato.net/default.aspx/document/1762"&gt;Brian&lt;/A&gt;, &lt;A href="http://kindel.com/blogs/charlie/posts/256.aspx"&gt;Charlie&lt;/A&gt;, &lt;A href="http://www.sellsbrothers.com/news/showTopic.aspx?ixTopic=1290"&gt;Chris&lt;/A&gt;, &lt;A href="http://www.ugidotnet.org/PermaLink.aspx?guid=f9fd7174-a9d7-463c-b3e1-c8f5f3a714cb"&gt;Corrado&lt;/A&gt;, &lt;A href="http://darthpedro.blogspot.com/2004_04_01_darthpedro_archive.html#108250430675803638"&gt;Darth&lt;/A&gt;, &lt;A href="http://weblogs.asp.net/duncanma/archive/2004/04/19/116495.aspx"&gt;Duncan&lt;/A&gt;, &lt;A href="http://blogs.dotnetthis.com/Ivan/Archives/000021.html"&gt;Ivan&lt;/A&gt;, &lt;A href="http://dotavery.com/blog/archive/2004/04/21/1197.aspx"&gt;James&lt;/A&gt;, &lt;A href="http://weblogs.asp.net/jezell/archive/2004/04/20/116545.aspx"&gt;Jesse&lt;/A&gt;, &lt;A href="http://blogs.biasecurities.com/jim/archive/2004/04/20/450.aspx"&gt;Jim&lt;/A&gt;, &lt;A href="http://www.workstate.com/people/joe/2004/04/19/pinvvoke_net"&gt;Joe&lt;/A&gt;, &lt;A href="http://weblogs.asp.net/jledgard/archive/2004/04/19/116468.aspx"&gt;Josh&lt;/A&gt;, &lt;A href="http://www.martnet.com/~jfosler/2004_04_25_archive.html#108329836760844919"&gt;Julia&lt;/A&gt;, &lt;A href="http://dotnetjunkies.com/WebLog/kenbrubaker/archive/2004/04/23/pinvokedotnet.aspx"&gt;Ken&lt;/A&gt;, &lt;A href="http://www.netacademia.net/blogspace/petert/archives/001099.html"&gt;Peter&lt;/A&gt;, &lt;A href="http://componentry.com/blogs/phil/archives/000134.html"&gt;Phil&lt;/A&gt;, &lt;A href="http://samgentile.com/blog/archive/2004/04/19/11448.aspx"&gt;Sam&lt;/A&gt;, &lt;a href="https://blogs.msdn.com:443/seangep.net/archive/2004/04/20/117205.aspx"&gt;Sean&lt;/A&gt;, &lt;A href="http://weblogs.asp.net/shawnfa/archive/2004/04/20/117047.aspx"&gt;Shawn&lt;/A&gt;, &lt;A href="http://www.theserverside.net/news/thread.tss?thread_id=25384"&gt;Ted&lt;/A&gt;, &lt;A href="http://www.yoraispage.com/articles/20040420.asp"&gt;Yorai&lt;/A&gt;, and numerous other people beat me to it! 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This past weekend I put the finishing touches on a Visual Studio add-in that communicates with PINVOKE.NET via a Web service and &lt;A href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=75122f62-5459-4364-b9ba-7b5e6a4754fe"&gt;uploaded it to gotdotnet.com&lt;/A&gt;.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;As I waited for it to appear, I knew that this was my second chance to have an exclusive scoop on my blog.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Lo and behold, &lt;A href="http://weblogs.asp.net/kdente/archive/2004/05/05/126646.aspx"&gt;Kevin&lt;/A&gt;, &lt;a href="https://blogs.msdn.com:443/ksharkey/archive/2004/05/05/126880.aspx"&gt;Kent&lt;/A&gt;, &lt;A href="http://weblogs.asp.net/powertoys/archive/2004/05/05/126782.aspx"&gt;Josh&lt;/A&gt;, &lt;A href="http://msmvps.com/gbvb/posts/5980.aspx"&gt;Girish&lt;/A&gt;, and &lt;A href="http://blogs.geekdojo.net/pdbartlett/archive/2004/05/06/1881.aspx"&gt;Paul&lt;/A&gt; let the cat out of the bag before I did! 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Don't get me wrong… I'm flattered that so many people find this stuff blog-worthy!&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Ever since preparing for PDC 2003 last September, I wanted to create such a site in order to help people with &lt;a href="https://blogs.msdn.com:443/brada/archive/2004/02/06/69095.aspx"&gt;the PInvoke problem&lt;/A&gt;.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;That's when I reserved the pinvoke.net domain name.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;But it wasn't until an e-mail discussion on Thursday 4/15 about the difficulty of PInvoke that I put my foot down and was determined to get the site up and running by that Monday morning (4/19)!&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;That's also when it dawned on me that the wiki approach was the way to make this happen fast.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I'm grateful that I stumbled across the great work the &lt;A href="http://www.flexwiki.com/"&gt;FlexWiki&lt;/A&gt; folks have done. 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;So thank you for all of your great comments on the site, in e-mail, and in your blogs.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;It gives me hope that the site is starting to achieve its objective.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;And thank you &lt;I&gt;especially&lt;/I&gt; for your contributions to the wiki!&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;As a community we've expanded the site from 6 to &lt;STRONG&gt;25 &lt;/STRONG&gt;DLLs, with approximately &lt;B&gt;1,700&lt;/B&gt; signatures &amp;amp; types, including hundreds of pages with sample code, alternative managed APIs, VB signatures, and other helpful information.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;All this in just two and a half weeks!&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I want to highlight Craig Ellis in particular, who contributed 54 functions and 8 structures all in one sitting! 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Therefore, I'm not going to introduce the site.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;If you're somehow reading my blog but aren't familiar with it, please visit &lt;A href="http://www.pinvoke.net/"&gt;http://www.pinvoke.net&lt;/A&gt; for more information.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;And don't worry, support for more browsers is still on my TODO list.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;(Working on the site is reserved for my sparest of spare time!) 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I do want to give a quick overview of what the Visual Studio add-in does, however.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;After installing it from &lt;A href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=75122f62-5459-4364-b9ba-7b5e6a4754fe"&gt;here&lt;/A&gt;, you'll get two new menu items when right-clicking in source code: 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;IMG src="http://www.pinvoke.net/blog/images/addin1.png"&gt; 
&lt;P&gt;&lt;SPAN&gt;The &lt;B&gt;Insert PInvoke Signatures…&lt;/B&gt; option opens a dialog, shown here with the results for the MessageBeep API: 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;IMG src="http://www.pinvoke.net/blog/images/addin2.png"&gt; 
&lt;P&gt;&lt;SPAN&gt;Once you type in a function name and press Enter, you can get a description, PInvoke signature(s), and an alternative managed API from the PINVOKE.NET web service.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;If you want more information (such as sample code or structure definitions), you can click on the link at the bottom. 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;But 'tis better to give than to receive, right?&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;If you want an easy way to contribute to the PINVOKE.NET project, highlight some code and select the &lt;B&gt;Contribute PInvoke Signatures and Types…&lt;/B&gt; option: 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;IMG src="http://www.pinvoke.net/blog/images/addin3.png"&gt; 
&lt;P&gt;&lt;SPAN&gt;You'll get the following dialog, which enables you to upload your content: 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;IMG src="http://www.pinvoke.net/blog/images/addin4.png"&gt; 
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;Let me know if you have any questions/comments, and enjoy!&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=127403" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category></item><item><title>CLR SPY: Feature requests for the next version</title><link>http://blogs.msdn.com/adam_nathan/archive/2004/01/13/58308.aspx</link><pubDate>Tue, 13 Jan 2004 21:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:58308</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>16</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/58308.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=58308</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=58308</wfw:comment><description>&lt;P&gt;Now that I'm set up at my new blogging home, I'd like to get some feedback from anyone who has used the &lt;A href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=c7b955c7-231a-406c-9fa5-ad09ef3bb37f"&gt;CLR SPY&lt;/A&gt; tool that I've uploaded to gotdotnet.com and blogged a lot about in the past.&lt;/P&gt;
&lt;P&gt;We're investigating shipping the tool in the .NET Framework SDK, and would like some feedback on what you do/don't find useful about it.&amp;nbsp; The Whidbey CLR will have a larger set of CLR Debug Probes (CDPs) than what&amp;nbsp;v1.1 has, and these will all be exposed in the updated tool, of course.&amp;nbsp; But do find the “monitoring“ behavior of the tool useful?&amp;nbsp; Are the balloon notifications annoying?&amp;nbsp; etc. etc.&lt;/P&gt;
&lt;P&gt;Thank you in advance!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=58308" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category></item><item><title>An Overview of Managed/Unmanaged Code Interoperability</title><link>http://blogs.msdn.com/adam_nathan/archive/2003/11/03/56787.aspx</link><pubDate>Tue, 04 Nov 2003 03:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:56787</guid><dc:creator>Adam Nathan</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/adam_nathan/comments/56787.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adam_nathan/commentrss.aspx?PostID=56787</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adam_nathan/rsscomments.aspx?PostID=56787</wfw:comment><description>&lt;P&gt;I promised I'd post this &lt;A href="http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dndotnet/html/manunmancode.asp"&gt;link&lt;/A&gt; on my blog.&amp;nbsp; PDC attendees can also find it on their Longhorn DVD (Disk #2).&amp;nbsp; It's a document called "The Developer's Guide to Migration and Interoperability in Longhorn: Alpha Patterns and Practices". &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=56787" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adam_nathan/archive/tags/Managed+Code/default.aspx">Managed Code</category></item></channel></rss>