<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Marshaled Thoughts</title>
    <description>moving ideas across app domains</description>
    <link>http://marshaledthoughts.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.5.0.7</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://marshaledthoughts.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.marshaledthoughts.com/syndication.axd</blogChannel:blink>
    <dc:creator>Chad Boschert</dc:creator>
    <dc:title>Marshaled Thoughts</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/MarshaledThoughts" /><feedburner:info uri="marshaledthoughts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Introduction to jQuery Sample Code</title>
      <description>&lt;p&gt;It is over a week late, but this post includes the sample code from my &amp;ldquo;Introduction to jQuery&amp;rdquo; presentation from the Springfield .NET Users group last week. The zip file in this post includes a Visual Studio 2010 Web Application that provides basic jQuery samples. The samples include manipulating the DOM, ajax, and jQuery UI. There is even a &amp;ldquo;try it&amp;rdquo; type page for experimenting with selectors and effects. Enjoy!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://marshaledthoughts.com/file.axd?file=2011%2f2%2fIntroductionToJQuery.zip"&gt;IntroductionToJQuery.zip (253.05 kb)&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarshaledThoughts/~4/mdrMXh2LQWc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/MarshaledThoughts/~3/mdrMXh2LQWc/post.aspx</link>
      <author>Chad</author>
      <comments>http://marshaledthoughts.com/post/Introduction-to-jQuery-Sample-Code.aspx#comment</comments>
      <guid isPermaLink="false">http://marshaledthoughts.com/post.aspx?id=d4d0f54b-ab0e-49b8-b2c4-385c553c5be7</guid>
      <pubDate>Thu, 03 Feb 2011 12:29:00 -0700</pubDate>
      <category>ASP.NET</category>
      <dc:publisher>Chad</dc:publisher>
      <pingback:server>http://marshaledthoughts.com/pingback.axd</pingback:server>
      <pingback:target>http://marshaledthoughts.com/post.aspx?id=d4d0f54b-ab0e-49b8-b2c4-385c553c5be7</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://marshaledthoughts.com/trackback.axd?id=d4d0f54b-ab0e-49b8-b2c4-385c553c5be7</trackback:ping>
      <wfw:comment>http://marshaledthoughts.com/post/Introduction-to-jQuery-Sample-Code.aspx#comment</wfw:comment>
      <wfw:commentRss>http://marshaledthoughts.com/syndication.axd?post=d4d0f54b-ab0e-49b8-b2c4-385c553c5be7</wfw:commentRss>
    <feedburner:origLink>http://marshaledthoughts.com/post.aspx?id=d4d0f54b-ab0e-49b8-b2c4-385c553c5be7</feedburner:origLink></item>
    <item>
      <title>Catching Common Exception Handling Mistakes</title>
      <description>&lt;p&gt;Microsoft provides excellent &lt;a title="Design Guidelines for Exceptions" href="http://msdn.microsoft.com/en-us/library/ms229014.aspx"&gt;guidance for exceptions&lt;/a&gt;, but it's easy to forget and make some of these common exception handling mistakes. Below is a list of &amp;quot;must remember&amp;quot; exception handling guidance when programming in C# (although most of this is also applicable to other .NET languages.)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;When to Catch Exceptions?&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Only catch an exception when you understand exactly why it will be thrown and can recover from it. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;If you follow this one rule, it will prevent many of the problems that you can get into when handling exceptions.&amp;#160; Most of the time, you can find a list of exceptions that a member will throw from the member's XML documentation. You can access this documentation via Intellisense or by hovering the mouse cursor over the member. For detailed documentation, you can often see a list of exceptions along with the specific condition that will throw the exception on the member's &lt;a href="http://msdn.microsoft.com/en-us/library/system.io.file.delete.aspx"&gt;MSDN documentation&lt;/a&gt; page.&lt;img alt="" src="http://marshaledthoughts.com/image.axd?picture=2011%2f1%2fXmlDocumentation.png" /&gt;&lt;/p&gt;  &lt;p&gt;This may feel funny at first, but remember that exceptions aren't bad. Understanding when and why a specific exception will be thrown will create more stable and secure code. If your application crashes because of an unhandled exception, that's just a signal that you forgot to program for a specific condition. So, before typing “catch” answer both of these questions:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Do I know exactly why this exception is being thrown here? &lt;/li&gt;    &lt;li&gt;Can I recover from this exception? &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Do not catch System.Exception&lt;/strong&gt;     &lt;br /&gt;You should never catch System.Exception (or System.SystemException,) unless you plan to log and immediately re-throw the exception. Because all managed exceptions ultimately inherit from System.Exception, you cannot possibly know exactly why the exception you’re catching is being thrown. You should always catch the most specific exception type that you can.&lt;/p&gt;  &lt;p&gt;If you do succumb to the temptation of catching System.Exception and are able to repress the shame from such coding &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://marshaledthoughts.com/image.axd?picture=wlEmoticon-smile.png" /&gt; do be sure to use “catch(Exception) {…}” NOT “catch {…}”. A catch statement without an exception type will catch all exceptions, including non-CLS exceptions.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;quot;throw;&amp;quot; != &amp;quot;throw err;&amp;quot;&lt;/strong&gt;     &lt;br /&gt;If you catch an exception for logging or other reasons, but then need to re-throw the exception, ALWAYS use &amp;quot;throw;&amp;quot;. &amp;quot;throw err;&amp;quot; will affect the stack trace making troubleshooting more difficult. Look at the following call stacks and sample code for an example of the problem that &amp;quot;throw err;&amp;quot; causes.&lt;/p&gt;  &lt;pre&gt;// With throw err;
//at MyApp.Program.Method1() in ...\Program.cs:line 29
//at MyApp.Program.Run() in ...\Program.cs:line 18
//at MyApp.Program.Main(String[] args) in ...\Program.cs:line 13&lt;/pre&gt;

&lt;pre&gt;class Program
{
  static void Main(string[] args)
  {
    Program p = new Program();
    p.Run();
  }

  void Run()
  {
    this.Method1();
  }

  void Method1()
  {
    try { Method2(); } catch (Exception err) { throw err; }
  }

  void Method2()
  {
    try { Method3(); } catch (Exception err) { throw err; }
  }

  void Method3()
  {
    throw new InvalidOperationException();
  }
}&lt;/pre&gt;

&lt;pre&gt;// With throw;
//at MyApp.Program.Method3() in ...\Program.cs:line 33
//at MyApp.Program.Method2() in ...\Program.cs:line 28
//at MyApp.Program.Method1() in ...\Program.cs:line 23
//at MyApp.Program.Run() in ...\Program.cs:line 18
//at MyApp.Program.Main(String[] args) in ...\Program.cs:line 13&lt;/pre&gt;

&lt;pre&gt;class Program
{
  static void Main(string[] args)
  {
    Program p = new Program();
    p.Run();
  }

  void Run()
  {
    this.Method1();
  }

  void Method1()
  {
    try { Method2(); } catch (Exception) { throw; }
  }

  void Method2()
  {
    try { Method3(); } catch (Exception) { throw; }
  }

  void Method3()
  {
    throw new InvalidOperationException();
  }
}&lt;/pre&gt;&lt;img src="http://feeds.feedburner.com/~r/MarshaledThoughts/~4/99lr-3_Xmwk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/MarshaledThoughts/~3/99lr-3_Xmwk/post.aspx</link>
      <author>Chad</author>
      <comments>http://marshaledthoughts.com/post/Catching-Common-Exception-Handling-Mistakes.aspx#comment</comments>
      <guid isPermaLink="false">http://marshaledthoughts.com/post.aspx?id=a797f0c5-f0ce-478b-bb7c-f7bc758779f7</guid>
      <pubDate>Tue, 18 Jan 2011 11:10:00 -0700</pubDate>
      <category>.NET-Basics</category>
      <dc:publisher>Chad</dc:publisher>
      <pingback:server>http://marshaledthoughts.com/pingback.axd</pingback:server>
      <pingback:target>http://marshaledthoughts.com/post.aspx?id=a797f0c5-f0ce-478b-bb7c-f7bc758779f7</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://marshaledthoughts.com/trackback.axd?id=a797f0c5-f0ce-478b-bb7c-f7bc758779f7</trackback:ping>
      <wfw:comment>http://marshaledthoughts.com/post/Catching-Common-Exception-Handling-Mistakes.aspx#comment</wfw:comment>
      <wfw:commentRss>http://marshaledthoughts.com/syndication.axd?post=a797f0c5-f0ce-478b-bb7c-f7bc758779f7</wfw:commentRss>
    <feedburner:origLink>http://marshaledthoughts.com/post.aspx?id=a797f0c5-f0ce-478b-bb7c-f7bc758779f7</feedburner:origLink></item>
    <item>
      <title>Visual Studio 2010 Icon Library</title>
      <description>&lt;p&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=image_9.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" src="http://marshaledthoughts.com/image.axd?picture=image_thumb_9.png" border="0" alt="image" width="324" height="115" align="right" /&gt;&lt;/a&gt; Icons make our applications more usable and visually stimulating.&amp;nbsp; Before scouring the internet for free icons or purchasing an icon library, check out the icons that ship with (non-Express versions of) Visual Studio for free.&lt;/p&gt;
&lt;p&gt;Since Visual Studio 2005, Visual Studio has shipped with common Windows and Office icons to encourage us to build more consistent looking applications.&lt;/p&gt;
&lt;p&gt;Icon formats include bmp, ico, png, and xaml. Also, some animations are included in gif and avi formats. The Visual Studio Icon Library is a zip file in the program files directory.&lt;/p&gt;
&lt;p align="left"&gt;&lt;strong&gt;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\VS2010ImageLibrary\1033&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarshaledThoughts/~4/P81Xc6zbWP4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/MarshaledThoughts/~3/P81Xc6zbWP4/post.aspx</link>
      <author>Chad</author>
      <comments>http://marshaledthoughts.com/post/Visual-Studio-2010-Icon-Library.aspx#comment</comments>
      <guid isPermaLink="false">http://marshaledthoughts.com/post.aspx?id=6fe1cee0-5d76-4a23-8dab-1a40dbc386ce</guid>
      <pubDate>Sat, 03 Jul 2010 09:25:00 -0700</pubDate>
      <category>design</category>
      <dc:publisher>Chad</dc:publisher>
      <pingback:server>http://marshaledthoughts.com/pingback.axd</pingback:server>
      <pingback:target>http://marshaledthoughts.com/post.aspx?id=6fe1cee0-5d76-4a23-8dab-1a40dbc386ce</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://marshaledthoughts.com/trackback.axd?id=6fe1cee0-5d76-4a23-8dab-1a40dbc386ce</trackback:ping>
      <wfw:comment>http://marshaledthoughts.com/post/Visual-Studio-2010-Icon-Library.aspx#comment</wfw:comment>
      <wfw:commentRss>http://marshaledthoughts.com/syndication.axd?post=6fe1cee0-5d76-4a23-8dab-1a40dbc386ce</wfw:commentRss>
    <feedburner:origLink>http://marshaledthoughts.com/post.aspx?id=6fe1cee0-5d76-4a23-8dab-1a40dbc386ce</feedburner:origLink></item>
    <item>
      <title>Calling STA COM Components from ASP.NET Webpage</title>
      <description>&lt;p&gt;&lt;strong&gt;Can not call friend function on object which is not an instance of defining class&lt;/strong&gt; &lt;br /&gt;Google offered little help resolving this problem, so I thought I&amp;rsquo;d create this keyword-rich blog post so that someday it might climb the page ranks and help someone.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=FriendFunctionError.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="FriendFunctionError" src="http://marshaledthoughts.com/image.axd?picture=FriendFunctionError_thumb.png" border="0" alt="FriendFunctionError" width="324" height="153" align="right" /&gt;&lt;/a&gt;At work, we have an ASP.NET website that uses our Visual Basic 6 COM library via .NET Interops. Everything works quite well until you create a new .aspx page and forget to add the AspCompat=&amp;rdquo;true&amp;rdquo; @page directive attribute. It&amp;rsquo;s an easy thing to forget (it&amp;rsquo;s bitten me twice now.)&amp;nbsp; The difficult part is that the COMException has an error message that is misleading: &amp;ldquo;Can not call friend function on object which is not an instance of defining class&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AspCompat=&amp;rdquo;true&amp;rdquo;&lt;/strong&gt; &lt;br /&gt;The solution is actually very simple. The problem is caused because ASP.NET pages execute in a multithreaded apartment (MTA) and the VB6 COM Components expect to be in a single-threaded apartment (STA.) Adding the AspCompat=&amp;rdquo;true&amp;rdquo; attribute to the @page directive to force the page to execute in a STA.&lt;/p&gt;
&lt;p&gt;The MSDN documentation does offer one word of caution about setting AspCompat=&amp;rdquo;true&amp;rdquo;. It can introduce performance issues if you instantiate your COM objects inside the page&amp;rsquo;s constructor. Microsoft recommends keeping that code in the page event handlers such as Page_Init and Page_Load.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarshaledThoughts/~4/Y71z4QKwjPA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/MarshaledThoughts/~3/Y71z4QKwjPA/post.aspx</link>
      <author>Chad</author>
      <comments>http://marshaledthoughts.com/post/Calling-STA-COM-Components-from-ASPNET-Webpage.aspx#comment</comments>
      <guid isPermaLink="false">http://marshaledthoughts.com/post.aspx?id=6b93cd0d-0486-4781-89fa-92071ab99e4f</guid>
      <pubDate>Fri, 11 Jun 2010 16:10:00 -0700</pubDate>
      <category>ASP.NET</category>
      <category>COM</category>
      <category>Web</category>
      <dc:publisher>Chad</dc:publisher>
      <pingback:server>http://marshaledthoughts.com/pingback.axd</pingback:server>
      <pingback:target>http://marshaledthoughts.com/post.aspx?id=6b93cd0d-0486-4781-89fa-92071ab99e4f</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://marshaledthoughts.com/trackback.axd?id=6b93cd0d-0486-4781-89fa-92071ab99e4f</trackback:ping>
      <wfw:comment>http://marshaledthoughts.com/post/Calling-STA-COM-Components-from-ASPNET-Webpage.aspx#comment</wfw:comment>
      <wfw:commentRss>http://marshaledthoughts.com/syndication.axd?post=6b93cd0d-0486-4781-89fa-92071ab99e4f</wfw:commentRss>
    <feedburner:origLink>http://marshaledthoughts.com/post.aspx?id=6b93cd0d-0486-4781-89fa-92071ab99e4f</feedburner:origLink></item>
    <item>
      <title>New Visual Studio 2010 Features</title>
      <description>&lt;p&gt;I&amp;rsquo;ve had some people ask for this list so I&amp;rsquo;m putting it up here for everyone. Below is my outline from Wednesday night&amp;rsquo;s &lt;a href="http://groups.google.com/group/sgfdotnet" target="_blank"&gt;Springfield .NET Users group&lt;/a&gt; meeting presentation. These are all of the new VS2010 features that I covered. Enjoy!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;New VS2010 Features&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visual  
&lt;ul&gt;
&lt;li&gt;IDE redesigned for improved readability  
&lt;ul&gt;
&lt;li&gt;Unnecessary lines and gradients removed &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Multi-monitor support  
&lt;ul&gt;
&lt;li&gt;Document windows (Code Editor, Design View, etc.) can be placed outside of the IDE window.  
&lt;ul&gt;
&lt;li&gt;Code Editor &amp;amp; Design View can now be viewed side-by-side &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Performance  
&lt;ul&gt;
&lt;li&gt;Start-up is faster &lt;/li&gt;
&lt;li&gt;Add References Dialog is faster &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Code Editor  
&lt;ul&gt;
&lt;li&gt;Zoom &lt;/li&gt;
&lt;li&gt;Clicking a symbol highlights all instances of that symbol  
&lt;ul&gt;
&lt;li&gt;Move to next/previous with Shift+Ctrl+Up/Down &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Box Selection Enhancements  
&lt;ul&gt;
&lt;li&gt;Box selection Alt+Select or Shift+Alt+Arrow (available prior to 2010) &lt;/li&gt;
&lt;li&gt;Text Insertion: Type into a box to insert new text on every line &lt;/li&gt;
&lt;li&gt;Paste Contents of one box to another &lt;/li&gt;
&lt;li&gt;Zero-Length boxes &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Navigate To  
&lt;ul&gt;
&lt;li&gt;Edit &amp;gt; Navigate To &lt;/li&gt;
&lt;li&gt;Upper case characters make the search case-sensitive &lt;/li&gt;
&lt;li&gt;Wildcard, regex, and boolean operators not supported &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Intellisense  
&lt;ul&gt;
&lt;li&gt;"Contains" &lt;/li&gt;
&lt;li&gt;Camel case &lt;/li&gt;
&lt;li&gt;Completion v. Suggestion Mode  
&lt;ul&gt;
&lt;li&gt;Suggestion mode doesn't insert the suggested intellisense item &lt;/li&gt;
&lt;li&gt;Toggle Mode: Ctrl+Alt+Space when intellisense menu is visible. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Debugging  
&lt;ul&gt;
&lt;li&gt;Data Tips: Tool tip watch windows  
&lt;ul&gt;
&lt;li&gt;"Stick" &amp;amp; "Float" debug values to the code editor &lt;/li&gt;
&lt;li&gt;Like floating watch window &lt;/li&gt;
&lt;li&gt;Scrolls with code &lt;/li&gt;
&lt;li&gt;Hides when new file is viewed &lt;/li&gt;
&lt;li&gt;Can add comments &lt;/li&gt;
&lt;li&gt;Can be imported/exported (as .xml)  
&lt;ul&gt;
&lt;li&gt;From debug &amp;gt; export datatips &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Break points window  
&lt;ul&gt;
&lt;li&gt;Can label break points &lt;/li&gt;
&lt;li&gt;Search and filter on labels &lt;/li&gt;
&lt;li&gt;Helps manage break points &lt;/li&gt;
&lt;li&gt;Can be imported/exported (as .xml)  
&lt;ul&gt;
&lt;li&gt;From break point window &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Thread Window  
&lt;ul&gt;
&lt;li&gt;Flag Just my Code &amp;gt; Group by Flagged &amp;gt; Collapse un-flagged - shows just my threads &lt;/li&gt;
&lt;li&gt;Search by field values &lt;/li&gt;
&lt;li&gt;Inline Call stack expansion  
&lt;ul&gt;
&lt;li&gt;Click arrow in location field &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Search call stacks &lt;/li&gt;
&lt;li&gt;Thread arrow &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Save a mini dump  
&lt;ul&gt;
&lt;li&gt;While VS breaks on an error &amp;gt; Debug &amp;gt; Save Dump &lt;/li&gt;
&lt;li&gt;VS can now open a .dmp file directly (not file &amp;gt; open project) &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Historical Debugger (Team System, Managed Code only, 32 bit only)  
&lt;ul&gt;
&lt;li&gt;Tools &amp;gt; Options &amp;gt; Historical Debugging &lt;/li&gt;
&lt;li&gt;Allows you to step back in time &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;WPF &amp;amp; Silverlight Designer  
&lt;ul&gt;
&lt;li&gt;Silverlight Designer support (VS2008 was read-only) &lt;/li&gt;
&lt;li&gt;Drag-and-Drop data binding in WPF  
&lt;ul&gt;
&lt;li&gt;Binding building dialog &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Debugging - WPF Tree Visualizer &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/MarshaledThoughts/~4/S6XaWMuraws" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/MarshaledThoughts/~3/S6XaWMuraws/post.aspx</link>
      <author>Chad</author>
      <comments>http://marshaledthoughts.com/post/New-Visual-Studio-2010-Features.aspx#comment</comments>
      <guid isPermaLink="false">http://marshaledthoughts.com/post.aspx?id=56352ba7-973f-4094-82ac-fdb3da80d40d</guid>
      <pubDate>Thu, 29 Apr 2010 17:22:00 -0700</pubDate>
      <category>Presentations</category>
      <dc:publisher>Chad</dc:publisher>
      <pingback:server>http://marshaledthoughts.com/pingback.axd</pingback:server>
      <pingback:target>http://marshaledthoughts.com/post.aspx?id=56352ba7-973f-4094-82ac-fdb3da80d40d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://marshaledthoughts.com/trackback.axd?id=56352ba7-973f-4094-82ac-fdb3da80d40d</trackback:ping>
      <wfw:comment>http://marshaledthoughts.com/post/New-Visual-Studio-2010-Features.aspx#comment</wfw:comment>
      <wfw:commentRss>http://marshaledthoughts.com/syndication.axd?post=56352ba7-973f-4094-82ac-fdb3da80d40d</wfw:commentRss>
    <feedburner:origLink>http://marshaledthoughts.com/post.aspx?id=56352ba7-973f-4094-82ac-fdb3da80d40d</feedburner:origLink></item>
    <item>
      <title>Coding even faster with TemporaryMacro in Visual Studio</title>
      <description>&lt;p&gt;Last week I found my new favorite Visual Studio 2008 productivity tool: &lt;strong&gt;TemporaryMacro&lt;/strong&gt;. You can find this functionality in Tools &amp;gt; Macros &amp;gt; Record/Run TemporaryMacro. Being a shortcut-junkie though, I prefer Ctrl+Shift+R and Ctrl+Shift+P for recording and playing respectively.&lt;/p&gt;
&lt;p&gt;The Macro feature in Visual Studio is one of those things that I&amp;rsquo;ve always been aware of, but have never really taken advantage of because I didn&amp;rsquo;t want to manage a library of macros. The TemporaryMacro feature is a quick and easy to use &amp;ldquo;throw away&amp;rdquo; macro and great for tedious text modifications.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example Usage&lt;/strong&gt; &lt;br /&gt;This is a simple example, but yesterday I had pasted a digital certificate thumbprint into a .config file. The thumbprint had a space every two characters, that wasn&amp;rsquo;t necessary. To remove the spaces, I had to press: Right &amp;gt; Right &amp;gt; Delete for all 19 spaces that I wanted to remove.&lt;/p&gt;
&lt;p&gt;With macros I started the recorder by pressing Ctrl+Shift+R. I pressed Right &amp;gt; Right &amp;gt; Delete to remove the first space. I then pressed Ctrl+Shift+R to stop the macro recording. Then I quickly pressed Ctrl+Shift+P 18 more times to replay the macro removing the remaining spaces.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Useful Text Manipulation Shortcuts&lt;/strong&gt; &lt;br /&gt;The record &amp;gt; replay process takes a tiny bit of forethought because you need to consider how executing the macro repeatedly will behave. You also need to think about the edge case of your final replay as you may accidentally change text that you didn&amp;rsquo;t intend to change. I use these shortcuts all of the time, but I find that within the context of macros I use them differently to affect the behavior of the text manipulation replays.&lt;/p&gt;
&lt;p&gt;Arrow &amp;ndash; Move the cursor left or right one character or up or down one line. &lt;br /&gt;Shift+Arrow &amp;ndash; Select text while moving cursor moves up, down, left, or right. &lt;br /&gt;Ctrl+Left (or Right) &amp;ndash; Move the cursor left or right one &lt;span style="text-decoration: underline;"&gt;word&lt;/span&gt; at a time. &lt;br /&gt;Shift+Ctrl+Left (or Right) &amp;ndash; Select text while moving left or right one &lt;span style="text-decoration: underline;"&gt;word&lt;/span&gt; at a time. &lt;br /&gt;End &amp;ndash; Move the cursor to the end of the line. &lt;br /&gt;Ctrl+End &amp;ndash; Move the cursor to the end of the file. &lt;br /&gt;Home &amp;ndash; Move the cursor to the &lt;span style="text-decoration: underline;"&gt;beginning of text&lt;/span&gt; for the current line. &lt;br /&gt;Home (a second time) &amp;ndash; Move the cursor to the begging of the line. &lt;br /&gt;Shift+{any of the home/end combinations} &amp;ndash; Select text while moving the cursor. &lt;br /&gt;Ctrl+Home &amp;ndash; Move the cursor to the beginning of the file. &lt;br /&gt;Shift+Delete &amp;ndash; Delete the entire line.&lt;/p&gt;
&lt;p&gt;It may feel slow at first, but I promise you that if you stick with it, the TemporaryMacro will become a frequent tool in your daily coding habits.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarshaledThoughts/~4/zsh8feDdKYs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/MarshaledThoughts/~3/zsh8feDdKYs/post.aspx</link>
      <author>Chad</author>
      <comments>http://marshaledthoughts.com/post/Coding-even-faster-with-TemporaryMacro-in-Visual-Studio.aspx#comment</comments>
      <guid isPermaLink="false">http://marshaledthoughts.com/post.aspx?id=ae2cacb2-a475-4561-ba67-cff3dc584a94</guid>
      <pubDate>Mon, 12 Apr 2010 10:43:00 -0700</pubDate>
      <category>.NET-Basics</category>
      <dc:publisher>Chad</dc:publisher>
      <pingback:server>http://marshaledthoughts.com/pingback.axd</pingback:server>
      <pingback:target>http://marshaledthoughts.com/post.aspx?id=ae2cacb2-a475-4561-ba67-cff3dc584a94</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://marshaledthoughts.com/trackback.axd?id=ae2cacb2-a475-4561-ba67-cff3dc584a94</trackback:ping>
      <wfw:comment>http://marshaledthoughts.com/post/Coding-even-faster-with-TemporaryMacro-in-Visual-Studio.aspx#comment</wfw:comment>
      <wfw:commentRss>http://marshaledthoughts.com/syndication.axd?post=ae2cacb2-a475-4561-ba67-cff3dc584a94</wfw:commentRss>
    <feedburner:origLink>http://marshaledthoughts.com/post.aspx?id=ae2cacb2-a475-4561-ba67-cff3dc584a94</feedburner:origLink></item>
    <item>
      <title>Attention To Detail: Problems Installing SQL Server 2008 on Windows 7</title>
      <description>&lt;p&gt;I tried installing SQL Server 2008 Developer Edition on a Windows 7 machine yesterday and ran into some issues that I thought I&amp;rsquo;d note here. I also re-learned a lesson about carefully reading error messages. The solution was simple, but I made it more difficult than it should have been. Hopefully this will help you when you decide to install SQL Server 2008 on a Win7 machine and also serve as a reminder that slow down and pay attention.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows 7 Known Compatibility Issues&lt;/strong&gt; &lt;br /&gt;When I first ran the SQL Server 2008 install, Windows 7 displayed a message box alerting me that there are known compatibility issues for SQL Server 2008 on Windows 7.&amp;nbsp; You will want to remember to install SQL Server 2008 SP1 after successfully installing SQL Server 2008. For now, you can ignore this warning and continue with the install.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rule Check &amp;ndash; Previous releases of Visual Studio 2008&lt;/strong&gt; &lt;br /&gt;After choosing my install options and setting up configurations, the install failed with the Rule Check Result: &amp;ldquo;Previous releases of Microsoft Visual Studio 2008&amp;rdquo;. If you click the Failed link you will see instruction that Visual Studio 2008 SP1.&lt;/p&gt;
&lt;p&gt;Installing VS2008 SP1 and re-starting the install corrected my problem.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Lesson&lt;/strong&gt; &lt;br /&gt;For me the issue was mental sleight of hand. Since installing software is a no-brainer task, I was doing other things while the install ran. When the install first started, I made the mental note that I needed to install &lt;span style="text-decoration: underline;"&gt;SQL Server&lt;/span&gt; 2008 SP1. Near the end of the install when the rule check failed for previous versions of &lt;span style="text-decoration: underline;"&gt;Visual Studio&lt;/span&gt; 2008, I literally thought that it said SQL Server 2008.&lt;/p&gt;
&lt;p&gt;I was pretty sure that I hadn&amp;rsquo;t installed SQL Server 2008 yet, but thought that maybe I had put an Express edition on there or something. I searched my installed programs and services, but didn&amp;rsquo;t find anything. I even tried installing SQL Server 2008 SP1. Only after reading through some blog posts about SQL Server 2008 compatibility issues on Windows 7 did I realize that I had misread the error message.&lt;/p&gt;
&lt;p&gt;When reading error messages and stack traces from my own applications, I&amp;rsquo;m diligent about reading them closely, but I simply underestimated the level of attention that this install required. Whoops!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarshaledThoughts/~4/2dcJsGcMyls" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/MarshaledThoughts/~3/2dcJsGcMyls/post.aspx</link>
      <author>Chad</author>
      <comments>http://marshaledthoughts.com/post/Attention-To-Detail-Problems-Installing-SQL-Server-2008-on-Windows-7.aspx#comment</comments>
      <guid isPermaLink="false">http://marshaledthoughts.com/post.aspx?id=bc09be1c-75dc-43d9-9a28-afb1176c6518</guid>
      <pubDate>Thu, 01 Apr 2010 10:26:00 -0700</pubDate>
      <dc:publisher>Chad</dc:publisher>
      <pingback:server>http://marshaledthoughts.com/pingback.axd</pingback:server>
      <pingback:target>http://marshaledthoughts.com/post.aspx?id=bc09be1c-75dc-43d9-9a28-afb1176c6518</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://marshaledthoughts.com/trackback.axd?id=bc09be1c-75dc-43d9-9a28-afb1176c6518</trackback:ping>
      <wfw:comment>http://marshaledthoughts.com/post/Attention-To-Detail-Problems-Installing-SQL-Server-2008-on-Windows-7.aspx#comment</wfw:comment>
      <wfw:commentRss>http://marshaledthoughts.com/syndication.axd?post=bc09be1c-75dc-43d9-9a28-afb1176c6518</wfw:commentRss>
    <feedburner:origLink>http://marshaledthoughts.com/post.aspx?id=bc09be1c-75dc-43d9-9a28-afb1176c6518</feedburner:origLink></item>
    <item>
      <title>TCP Federation with Windows Identity Foundation</title>
      <description>&lt;p&gt;Windows Identity Foundation (WIF) makes it very easy to build basic federated scenarios. The &lt;a title="Windows Identity Foundation SDK Download" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c148b2df-c7af-46bb-9162-2c9422208504&amp;amp;displaylang=en" target="_blank"&gt;WIF SDK&lt;/a&gt; offers Visual Studio templates for building simple Security Token Services (STS) and Relying Party (RP) services. The SDK also has an excellent help file with information about customizing the basic scenarios.&lt;/p&gt;
&lt;p&gt;However, being as new as it is, there isn&amp;rsquo;t much guidance yet for building your own STSs and RPs from scratch. Also, the deployment and securirty best practices information is difficult to find or non-existent.&lt;/p&gt;
&lt;p&gt;Lately, I&amp;rsquo;ve been researching WIF and discovered that I have a specific scenario that isn&amp;rsquo;t covered in the guidance. It seems to me that this would be a common scenario, but I was unable to find many resources online that offered help. In fact, I only found &lt;a title="Federation Over TCP With WCF" href="http://weblogs.asp.net/cibrax/archive/2008/04/21/federation-over-tcp-with-wcf.aspx" target="_blank"&gt;one blog post&lt;/a&gt; that was useful in solving this problem. You may want to check it out before going through all of the steps in this post.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" src="http://marshaledthoughts.com/image.axd?picture=image_thumb_8.png" border="0" alt="image" width="244" height="169" align="right" /&gt;&lt;/a&gt;My scenario included a Claims Aware Relying Party WCF service that that exposed its endpoints over net.tcp bindings. The STS could be accessed through wsHttp endpoints.&lt;/p&gt;
&lt;p&gt;I built this scenario but had a really difficult time updating the XML binding configurations for the RP and Client. This post includes my step by step notes for building the scenario described here. I&amp;rsquo;ve included the source code for download too, but &lt;span style="text-decoration: underline;"&gt;it will NOT work on your computer&lt;/span&gt; because you will not have the same certificates or URIs. &lt;strong&gt;The steps and source code are provided for demonstration purposes and should not be used in production applications.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://marshaledthoughts.com/file.axd?file=2010%2f3%2fWIFSample.zip"&gt;WIFSample.zip (99.74 kb)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How To: Implement Federated Security over TCP&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The steps below are pasted directly from my OneNote notebook so I have to apologize for the quality &amp;ndash; that said, they should be clear enough to follow along. This process creates a functional federated solution, but it is far from being production-ready. I&amp;rsquo;m sure that there is a more direct way to accomplish this, but I&amp;rsquo;ve found that this process is a reliable way to build the appropriate bindings for TCP Federation.&lt;/p&gt;
&lt;p&gt;**Before you start, you should have installed the WIF SDK (be sure that you&amp;rsquo;re on a supported OS &amp;ndash; Vista or higher) and that you have a good ~30 minutes to finish these steps.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: You can click any of these images for a larger version&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Visual Studio 2008 as &lt;span style="text-decoration: underline;"&gt;an Administrator&lt;/span&gt; (this is important because VS will need to create and install certificates in certmgr.msc)&lt;ol&gt;
&lt;li&gt;Create a new Blank Solution&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image001.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" src="http://marshaledthoughts.com/image.axd?picture=clip_image001_thumb.png" border="0" alt="clip_image001" width="324" height="220" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;In Solution Explorer: Right-click the WIFSample Solution&lt;/li&gt;
&lt;li&gt;Create your Relying Party Service (WCF Service Library)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image002.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" src="http://marshaledthoughts.com/image.axd?picture=clip_image002_thumb.png" border="0" alt="clip_image002" width="324" height="209" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Open the App.config, copy the base address for your RP service&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image003.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image003" src="http://marshaledthoughts.com/image.axd?picture=clip_image003_thumb.png" border="0" alt="clip_image003" width="324" height="79" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;In Solution Explorer: Right-click SampleRP project &amp;gt; Add STS Reference&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image004.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" src="http://marshaledthoughts.com/image.axd?picture=clip_image004_thumb.png" border="0" alt="clip_image004" width="324" height="245" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image005.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image005" src="http://marshaledthoughts.com/image.axd?picture=clip_image005_thumb.png" border="0" alt="clip_image005" width="324" height="245" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image006.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" src="http://marshaledthoughts.com/image.axd?picture=clip_image006_thumb.png" border="0" alt="clip_image006" width="324" height="245" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image007.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image007" src="http://marshaledthoughts.com/image.axd?picture=clip_image007_thumb.png" border="0" alt="clip_image007" width="324" height="245" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Right-click SampleRP project &amp;gt; Properties &lt;ol&gt;
&lt;li&gt;Choose the debug tab&lt;/li&gt;
&lt;li&gt;Remove /client:"WcfTestClient.exe" from the Command line arguments field &amp;ndash; it will annoy you.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Create HttpClient Console Application &lt;ol&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image008.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" src="http://marshaledthoughts.com/image.axd?picture=clip_image008_thumb.png" border="0" alt="clip_image008" width="324" height="209" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Right-click HttpClient project &amp;gt; Add Service Reference&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image009.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image009" src="http://marshaledthoughts.com/image.axd?picture=clip_image009_thumb.png" border="0" alt="clip_image009" width="324" height="263" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Right-click solution &amp;gt; Set startup projects &lt;ol&gt;
&lt;li&gt;Set all projects to start with the STS starting first, RP second and Client last&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image010.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" src="http://marshaledthoughts.com/image.axd?picture=clip_image010_thumb.png" border="0" alt="clip_image010" width="324" height="205" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;ol&gt;
&lt;li&gt;Call the RP Service from your Console Application&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image011.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image011" src="http://marshaledthoughts.com/image.axd?picture=clip_image011_thumb.png" border="0" alt="clip_image011" width="324" height="89" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add a reference to System.IdentityModel &amp;amp; Microsoft.IdentityModel to the RP service project&lt;/li&gt;
&lt;li&gt;Update Service1's implementation to output the claims identity&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image012.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012" src="http://marshaledthoughts.com/image.axd?picture=clip_image012_thumb.png" border="0" alt="clip_image012" width="324" height="71" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Test that the Http Bindings are correct &lt;ol&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image013.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image013" src="http://marshaledthoughts.com/image.axd?picture=clip_image013_thumb.png" border="0" alt="clip_image013" width="324" height="110" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Add netTcp Binding to RP &lt;ol&gt;
&lt;li&gt;Open RP's App.config&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image014.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image014" src="http://marshaledthoughts.com/image.axd?picture=clip_image014_thumb.png" border="0" alt="clip_image014" width="324" height="52" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add endpoints for net.tcp bindings&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image015.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image015" src="http://marshaledthoughts.com/image.axd?picture=clip_image015_thumb.png" border="0" alt="clip_image015" width="324" height="56" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add the netTcp customBinding (you may want to copy this from the source code.)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image016.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image016" src="http://marshaledthoughts.com/image.axd?picture=clip_image016_thumb.png" border="0" alt="clip_image016" width="324" height="117" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;And the binding for the STS&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image017.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image017" src="http://marshaledthoughts.com/image.axd?picture=clip_image017_thumb.png" border="0" alt="clip_image017" width="324" height="94" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lastly add the net.tcp endpoint to the audienceUris&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image018.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image018" src="http://marshaledthoughts.com/image.axd?picture=clip_image018_thumb.png" border="0" alt="clip_image018" width="324" height="51" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Test that haven't broken your RP - Run the solution (note that you&amp;rsquo;re still using http endpoints on the RP) &lt;ol&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image019.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image019" src="http://marshaledthoughts.com/image.axd?picture=clip_image019_thumb.png" border="0" alt="clip_image019" width="324" height="77" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Lastly, let's add a TcpClient&lt;ol&gt;
&lt;li&gt;Right-click solution &amp;gt; Add New Project &amp;gt; Console Application&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image020.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image020" src="http://marshaledthoughts.com/image.axd?picture=clip_image020_thumb.png" border="0" alt="clip_image020" width="324" height="209" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Right-click TcpClient project &amp;gt; Add Service Reference&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image021.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image021" src="http://marshaledthoughts.com/image.axd?picture=clip_image021_thumb.png" border="0" alt="clip_image021" width="324" height="263" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Open TcpClient's app.config and comment the http endpoint&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image022.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image022" src="http://marshaledthoughts.com/image.axd?picture=clip_image022_thumb.png" border="0" alt="clip_image022" width="324" height="102" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Implement the TcpClient&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image023.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image023" src="http://marshaledthoughts.com/image.axd?picture=clip_image023_thumb.png" border="0" alt="clip_image023" width="324" height="118" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image024.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image024" src="http://marshaledthoughts.com/image.axd?picture=clip_image024_thumb.png" border="0" alt="clip_image024" width="324" height="205" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Success&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marshaledthoughts.com/image.axd?picture=clip_image025.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image025" src="http://marshaledthoughts.com/image.axd?picture=clip_image025_thumb.png" border="0" alt="clip_image025" width="324" height="106" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://feeds.feedburner.com/~r/MarshaledThoughts/~4/mfKzCzPEn94" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/MarshaledThoughts/~3/mfKzCzPEn94/post.aspx</link>
      <author>Chad</author>
      <comments>http://marshaledthoughts.com/post/TCP-Federation-with-Windows-Identity-Foundation.aspx#comment</comments>
      <guid isPermaLink="false">http://marshaledthoughts.com/post.aspx?id=b4b750d4-c2ec-4e72-aa2d-b024379e59a5</guid>
      <pubDate>Thu, 25 Mar 2010 12:00:00 -0700</pubDate>
      <category>WCF</category>
      <category>WIF</category>
      <dc:publisher>Chad</dc:publisher>
      <pingback:server>http://marshaledthoughts.com/pingback.axd</pingback:server>
      <pingback:target>http://marshaledthoughts.com/post.aspx?id=b4b750d4-c2ec-4e72-aa2d-b024379e59a5</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://marshaledthoughts.com/trackback.axd?id=b4b750d4-c2ec-4e72-aa2d-b024379e59a5</trackback:ping>
      <wfw:comment>http://marshaledthoughts.com/post/TCP-Federation-with-Windows-Identity-Foundation.aspx#comment</wfw:comment>
      <wfw:commentRss>http://marshaledthoughts.com/syndication.axd?post=b4b750d4-c2ec-4e72-aa2d-b024379e59a5</wfw:commentRss>
    <feedburner:origLink>http://marshaledthoughts.com/post.aspx?id=b4b750d4-c2ec-4e72-aa2d-b024379e59a5</feedburner:origLink></item>
    <item>
      <title>ASP.NET Server-Side Events not Firing</title>
      <description>&lt;p&gt;Recently, I was troubleshooting a difficult to find bug in an ASP.NET website. The bug was clearly environmental since the website worked for many other customers.&amp;#160; We could only reproduce it on this particular customer’s server, so my diagnostic options were limited.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Symptom&lt;/strong&gt;    &lt;br /&gt;This application contains an ASP.NET DataGrid control that will redirect to a new page when a row is clicked. After some SQL and ASP.NET tracing, I determined that &lt;strong&gt;the server-side RowCommand event wasn’t firing&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Cause&lt;/strong&gt;    &lt;br /&gt;To enable selecting a row by clicking it, the original developer added some custom JavaScript that would invoke the Select row command on the datagrid when the row is clicked. ASP.NET uses dollar signs to delimit control namespaces so that controls can be uniquely named within the control hierarchy. When the HTML is rendered, ASP.NET replaces the delimiters with an underscore and uses that name for the element’s ID attribute. When forcing the post back, the original developer simply replaced the underscores with dollar signs so that &lt;strong&gt;ctl01_content_datagrid&lt;/strong&gt; became &lt;strong&gt;ctl01$content$datagrid&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;This works normally, however on this customer’s server &lt;strong&gt;clt01&lt;/strong&gt; was being named &lt;strong&gt;_ctl01&lt;/strong&gt;, this broke the original developers assumption about names since the first underscore was actually part of the control name and not a delimiter. When the post back made it to the server, ASP.NET didn’t fire the server-side event because the names were wrong.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Fix&lt;/strong&gt;    &lt;br /&gt;The correct way to fix this would be to use the ClientScriptManager (via Page.ClientScript) to emit the correct __doPostPostBack(…) statement, but this particular application relies heavily on ASP.NET’s “&lt;em&gt;normal&lt;/em&gt;” naming convention.&amp;#160; The quick and simple solution was to add the &amp;lt;xhtmlConformance mode=”Transitional” /&amp;gt; element to the web.config. Since Transitional is the default mode for this setting, I assume (but didn’t verify) that the mode was set somewhere deeper in the configuration stack such as a root-level web.config or machine.config.&lt;/p&gt;  &lt;p&gt;Details for this setting are here –&amp;gt; &lt;a href="http://msdn.microsoft.com/en-us/library/ms228268.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms228268.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MarshaledThoughts/~4/OI8XFwpZtjs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/MarshaledThoughts/~3/OI8XFwpZtjs/post.aspx</link>
      <author>Chad</author>
      <comments>http://marshaledthoughts.com/post/ASPNET-Server-Side-Events-not-Firing.aspx#comment</comments>
      <guid isPermaLink="false">http://marshaledthoughts.com/post.aspx?id=32e1b313-be5b-41ee-8bf2-5e31fc878a19</guid>
      <pubDate>Tue, 02 Mar 2010 12:27:00 -0700</pubDate>
      <category>ASP.NET</category>
      <dc:publisher>Chad</dc:publisher>
      <pingback:server>http://marshaledthoughts.com/pingback.axd</pingback:server>
      <pingback:target>http://marshaledthoughts.com/post.aspx?id=32e1b313-be5b-41ee-8bf2-5e31fc878a19</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://marshaledthoughts.com/trackback.axd?id=32e1b313-be5b-41ee-8bf2-5e31fc878a19</trackback:ping>
      <wfw:comment>http://marshaledthoughts.com/post/ASPNET-Server-Side-Events-not-Firing.aspx#comment</wfw:comment>
      <wfw:commentRss>http://marshaledthoughts.com/syndication.axd?post=32e1b313-be5b-41ee-8bf2-5e31fc878a19</wfw:commentRss>
    <feedburner:origLink>http://marshaledthoughts.com/post.aspx?id=32e1b313-be5b-41ee-8bf2-5e31fc878a19</feedburner:origLink></item>
    <item>
      <title>Valentines Muncher</title>
      <description>&lt;p&gt;I have a fun post this week. At work we had a Valentine's Day event and all employees decorated Valentine bags. I saw this as an opportunity to build a robot using my Lego NXT set. I built and programmed the robot&amp;rsquo;s insides and my wife decorated and accessorized the robot&amp;rsquo;s outsides. Watch the video to see him in action.&lt;/p&gt;
&lt;div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:92c9513b-3d43-4ba2-9c9b-aa9705fb9021" class="wlWriterSmartContent" style="width: 425px; display: block; float: none; margin-left: auto; margin-right: auto; padding: 0px;"&gt;
&lt;div&gt;&lt;embed type="application/x-shockwave-flash" width="425" height="355" src="http://www.youtube.com/v/EwzhC9OGDVw&amp;amp;hl=en"&gt;&lt;/embed&gt;&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MarshaledThoughts/~4/-OPdDW3zg0o" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/MarshaledThoughts/~3/-OPdDW3zg0o/post.aspx</link>
      <author>Chad</author>
      <comments>http://marshaledthoughts.com/post/Valentines-Muncher.aspx#comment</comments>
      <guid isPermaLink="false">http://marshaledthoughts.com/post.aspx?id=521f1ab7-60a9-4d9a-b56f-92ec00646bb9</guid>
      <pubDate>Mon, 15 Feb 2010 05:13:00 -0700</pubDate>
      <category>JustForFun</category>
      <dc:publisher>Chad</dc:publisher>
      <pingback:server>http://marshaledthoughts.com/pingback.axd</pingback:server>
      <pingback:target>http://marshaledthoughts.com/post.aspx?id=521f1ab7-60a9-4d9a-b56f-92ec00646bb9</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://marshaledthoughts.com/trackback.axd?id=521f1ab7-60a9-4d9a-b56f-92ec00646bb9</trackback:ping>
      <wfw:comment>http://marshaledthoughts.com/post/Valentines-Muncher.aspx#comment</wfw:comment>
      <wfw:commentRss>http://marshaledthoughts.com/syndication.axd?post=521f1ab7-60a9-4d9a-b56f-92ec00646bb9</wfw:commentRss>
    <feedburner:origLink>http://marshaledthoughts.com/post.aspx?id=521f1ab7-60a9-4d9a-b56f-92ec00646bb9</feedburner:origLink></item>
  </channel>
</rss>

