<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" 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:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>ASP.NET</title>
        <link>http://www.drowningintechnicaldebt.com/DennisBottjer/category/3.aspx</link>
        <description>Developing ASP.NET Web Applications</description>
        <language>en-US</language>
        <copyright>Dennis Bottjer</copyright>
        <generator>Subtext Version 2.1.2.2</generator>
        <item>
            <title>MSDN Webcast: Knee-Jerk Reactions to Proactive Solutions: Improved SharePoint Performance</title>
            <link>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/07/10/msdn-webcast-knee-jerk-reactions-to-proactive-solutions-improved-sharepoint.aspx</link>
            <description>&lt;p&gt;   &lt;/p&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:6B020045-44C2-4efd-A1E3-80B19875D75F:d51b4af6-baa0-4a40-a2a1-9f8f90b263c9" class="wlWriterEditableSmartContent"&gt;&lt;div class="vcalendar"&gt;&lt;table class="vevent" border="0" padding="3"&gt;&lt;tr&gt;&lt;td valign="top" align="right"&gt;&lt;b&gt;What:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;a class="url" title="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417629&amp;amp;Culture=en-US" href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417629&amp;amp;Culture=en-US" target="_blank"&gt;&lt;span class="summary"&gt;MSDN Webcast: Knee-Jerk Reactions to Proactive Solutions: Improved SharePoint Performance&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="description"&gt;Attend this webcast to learn one dozen easy-to-implement performance tips for Microsoft Office SharePoint Server 2007. We discuss a wide range of topics from adjusting out-of-the-box settings to identifying memory leaks in custom code. We also describe several ways to proactively improve the user experience and squeeze more performance out of a SharePoint Server farm. Anyone currently designing a SharePoint Server implementation can benefit from this webcast.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" align="right"&gt;&lt;b&gt;When:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;abbr class="dtstart" title="2009-07-10T12:00:00"&gt;Friday, July 10, 2009 12:00 PM&lt;/abbr&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" align="right"&gt;&lt;b&gt;Where:&lt;/b&gt;&lt;/td&gt;&lt;td class="location vcard"&gt;&lt;span class="fn org"&gt;MSDN Web Cast Live Meeting&lt;/span&gt;&lt;div class="adr" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:917cf3fa-0b1f-49ee-a78c-59f115267095" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Presentation" rel="tag"&gt;Presentation&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SharePoint+Performance" rel="tag"&gt;SharePoint Performance&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MSDN+Web+Cast" rel="tag"&gt;MSDN Web Cast&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET+MVP" rel="tag"&gt;ASP.NET MVP&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.drowningintechnicaldebt.com/DennisBottjer/aggbug/135.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>dbottjer</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/07/10/msdn-webcast-knee-jerk-reactions-to-proactive-solutions-improved-sharepoint.aspx</guid>
            <pubDate>Fri, 10 Jul 2009 21:34:18 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/135.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/07/10/msdn-webcast-knee-jerk-reactions-to-proactive-solutions-improved-sharepoint.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/commentRss/135.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/DennisBottjer/services/trackbacks/135.aspx</trackback:ping>
        </item>
        <item>
            <title>Why Silverlight?</title>
            <link>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/04/29/why-silverlight.aspx</link>
            <description>&lt;h1&gt;Why Silverlight? What is Silverlight?&lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border="0" cellspacing="0" cellpadding="2" width="696"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="595"&gt;Version 3 of Microsoft Silverlight is on the horizon and there are still some misconceptions regarding why Silverlight exists.  Before answering the “Why Silverlight” question we need to understand what Silverlight is.  Silverlight, is often compared to Flash because of its vector graphics and animation capabilities.  However, Silverlight also provides access to a subset of .NET Framework Base Classes.  So this means that complete applications can be developed using Silverlight, with various concerns separated into layers.&lt;/td&gt;
            &lt;td valign="top" width="99"&gt;&lt;a href="http://drowningintechnicaldebt.com/dennisbottjer/SilverLight_2DDB7DDF.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title="SilverLight" border="0" alt="SilverLight" width="96" height="109" src="http://drowningintechnicaldebt.com/dennisbottjer/SilverLight_thumb_2D6F4AEA.png" /&gt;&lt;/a&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Silverlight Provides:&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;Compiled Language Support (VB.NET, C#, etc.) &lt;/li&gt;
    &lt;li&gt;IDE Debugging &lt;/li&gt;
    &lt;li&gt;SEO – Deep Link Formatting &lt;/li&gt;
    &lt;li&gt;Out-of-Browser Support
    &lt;ul&gt;
        &lt;li&gt;Offline API &lt;/li&gt;
        &lt;li&gt;Sandbox &lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Silverlight would be a good fit for teams building rich internet application on ASP.NET Platform with experience using Visual Studio and writing .NET Code.  &lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;Consider Silverlight if your team already leverage ASP.NET and/or Visual Studio&lt;/p&gt;
&lt;p&gt;Consider Silverlight for added Search Engine Optimization Value&lt;/p&gt;
&lt;p&gt;Consider Silverlight to build a layered rich internet application. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Additional Information:&lt;/h2&gt;
&lt;p&gt;Follow me on twitter &lt;a title="Follow Dennis Bottjer on Twitter" target="_blank" href="http://twitter.com/dbottjer"&gt;@dbottjer&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Resources:&lt;/h2&gt;
&lt;p&gt;&lt;a title="http://www.microsoft.com/silverlight/overview/faq.aspx" target="_blank" href="http://www.microsoft.com/silverlight/overview/faq.aspx"&gt;Silverlight Frequently Asked Questions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="http://silverlight.net/" href="http://silverlight.net/"&gt;Microsoft Official Silverlight &lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2123e4fd-04aa-4755-8aa4-7147d04b1683" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/Silverlight"&gt;Silverlight&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Rich+Internet+Application"&gt;Rich Internet Application&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.drowningintechnicaldebt.com/DennisBottjer/aggbug/129.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dennis Bottjer</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/04/29/why-silverlight.aspx</guid>
            <pubDate>Wed, 29 Apr 2009 09:56:11 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/129.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/04/29/why-silverlight.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/commentRss/129.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/DennisBottjer/services/trackbacks/129.aspx</trackback:ping>
        </item>
        <item>
            <title>Automated Web Testing with Visual Studio 2008</title>
            <link>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/04/28/automated-web-testing-with-visual-studio-2008.aspx</link>
            <description>&lt;h1&gt;Tulsa Developers User Group | Automated Web Testing with Visual Studio 2008 (Review)&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/default.aspx" target="_blank"&gt;Corey Roth&lt;/a&gt; presented tonight on automated web testing with Visual Studio 2008 at the Tulsa Developers User Group.  Visual Studio can be used to record an action such as logging into a web application.  Alternatively, users can inspect screen values for specific results.  The test would pass if the expect value is present and fail if the value is missing.  Visual Studio must be installed to execute the tests.   &lt;/p&gt;  &lt;p&gt;A tests project actually generates .NET Code (C# or VB.NET).  The tool can also be used to show raw header information and cookies.  One drawback is that only Internet Explorer is supported.&lt;/p&gt;  &lt;h2 /&gt;  &lt;h2&gt;Additional Information:&lt;/h2&gt;  &lt;p&gt;Follow me on twitter &lt;a title="Follow Dennis Bottjer on Twitter" href="http://twitter.com/dbottjer" target="_blank"&gt;@dbottjer&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:885ff8fc-9044-4f80-9e15-5c2774ad0534" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Web+Automated+Tested" rel="tag"&gt;Web Automated Tested&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Tulsa+Developers+User+Group" rel="tag"&gt;Tulsa Developers User Group&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.drowningintechnicaldebt.com/DennisBottjer/aggbug/128.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>dbottjer</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/04/28/automated-web-testing-with-visual-studio-2008.aspx</guid>
            <pubDate>Tue, 28 Apr 2009 06:32:03 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/128.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/04/28/automated-web-testing-with-visual-studio-2008.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/commentRss/128.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/DennisBottjer/services/trackbacks/128.aspx</trackback:ping>
        </item>
        <item>
            <title>ASP.NET MVP Again on April Fools… No Joke!</title>
            <link>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/04/01/asp-net-mvp-again-on-april-fools-no-joke.aspx</link>
            <description>&lt;p&gt;I just received notification that I am now a three time Microsoft ASP.NET MVP.&lt;/p&gt;
&lt;p&gt;&lt;a mce_href="http://drowningintechnicaldebt.com/dennisbottjer/MVPLogo_6C814533.jpg" href="http://drowningintechnicaldebt.com/dennisbottjer/MVPLogo_6C814533.jpg"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="MVPLogo" border="0" alt="MVPLogo" width="244" height="49" mce_src="http://drowningintechnicaldebt.com/dennisbottjer/MVPLogo_thumb_6C15123E.jpg" src="http://drowningintechnicaldebt.com/dennisbottjer/MVPLogo_thumb_6C15123E.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Dear Dennis Bottjer, &lt;/p&gt;
&lt;p&gt;Congratulations! We are pleased to present you with the 2009 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. &lt;/p&gt;
&lt;p&gt;Also in this email: &lt;/p&gt;
&lt;p&gt;About your MVP Award Gift &lt;br /&gt;
How to access &lt;a mce_href="http://www.mvpaward.com" href="http://www.mvpaward.com/"&gt;http://www.mvpaward.com&lt;/a&gt; to get your technical subscription benefits &lt;br /&gt;
Your MVP Identification Number &lt;br /&gt;
MVP Award Program Code of Conduct &lt;br /&gt;
The Microsoft MVP Award provides us the unique opportunity to celebrate and honor your significant contributions and say "Thank you for your technical leadership." &lt;/p&gt;
&lt;p&gt;Toby Richards &lt;br /&gt;
General Manager &lt;br /&gt;
Community Support Services&lt;/p&gt;
&lt;h2&gt;Special Thanks:&lt;/h2&gt;
&lt;p&gt;My Wife Carrie, Daughter Kate, Mom &amp;amp; Dad, Mom and Dad R. and Extended Family (Everyone without a blog that I know and love. :-) )&lt;/p&gt;
&lt;p&gt;&lt;a title="Senior MVP Lead" target="_blank" mce_href="http://twitter.com/Zannabanana" href="http://twitter.com/Zannabanana"&gt;Suzanna Moran&lt;/a&gt; – MVP Lead&lt;/p&gt;
&lt;p&gt;&lt;a title="Joe Healy - DevFish" target="_blank" mce_href="http://www.devfish.net/" href="http://www.devfish.net/"&gt;Joe Healy&lt;/a&gt; – Microsoft DE&lt;/p&gt;
&lt;p&gt;&lt;a title="Microsoft DE South Central" target="_blank" mce_href="http://blogs.msdn.com/chkoenig/" href="http://blogs.msdn.com/chkoenig/"&gt;Chris Koenig&lt;/a&gt; – Microsoft DE&lt;/p&gt;
&lt;p&gt;&lt;a title="Shawn Weisfeld C# MVP" target="_blank" mce_href="http://www.developerroundtable.com/Home.aspx" href="http://www.developerroundtable.com/Home.aspx"&gt;Shawn Weisfeld&lt;/a&gt; – C# MVP&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" mce_href="http://sharepoint.microsoft.com/blogs/SharePointing/default.aspx" href="http://sharepoint.microsoft.com/blogs/SharePointing/default.aspx"&gt;Steve Walker&lt;/a&gt; – Microsoft MCS&lt;/p&gt;
&lt;p&gt;&lt;a title="David L. Walker" target="_blank" mce_href="http://www.davidlwalker.com/" href="http://www.davidlwalker.com/"&gt;David Walker&lt;/a&gt; – Fellow Tulsa MVP&lt;/p&gt;
&lt;p&gt;Colin Cole – Microsoft MCS&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" mce_href="http://www.myspringpoint.com" href="http://www.myspringpoint.com/"&gt;SpringPoint Coworkers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" mce_href="http://www.andrewconnell.com/blog/" href="http://www.andrewconnell.com/blog/"&gt;Andrew Connell (WCM Guru)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Eric Shupps" target="_blank" mce_href="http://www.binarywave.com/blogs/eshupps/default.aspx" href="http://www.binarywave.com/blogs/eshupps/default.aspx"&gt;The SharePoint Cowboy Eric Shupps&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a mce_href="http://www.presentingmatters.com/Speech-and-Busines" href="http://www.presentingmatters.com/Speech-and-Busines"&gt;&lt;/a&gt;&lt;a title="Presentation Coach" target="_blank" mce_href="http://www.presentingmatters.com/Speech-and-Business-Presentation-Coaching.html" href="http://www.presentingmatters.com/Speech-and-Business-Presentation-Coaching.html"&gt;Shari Alexander - Presentation Coach&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="Founder SharePoint Saturday" target="_blank" mce_href="http://blog.michaellotter.com" href="http://blog.michaellotter.com/"&gt;Michael Lotter&lt;/a&gt; – Founder SharePoint Saturday&lt;/p&gt;
&lt;p&gt;&lt;a mce_href="http://www.mosslover.com/" href="http://www.mosslover.com/"&gt;Becky Isserman&lt;/a&gt; – KC Office Geeks&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" mce_href="http://www.sharepointjoel.com" href="http://www.sharepointjoel.com/"&gt;Joel Oleson&lt;/a&gt; – SharePoint Consultant&lt;/p&gt;
&lt;p&gt;&lt;a title="Roy Ashbrook" target="_blank" mce_href="http://drowningintechnicaldebt.com/blogs/royashbrook/default.aspx" href="http://drowningintechnicaldebt.com/blogs/royashbrook/default.aspx"&gt;Roy Ashbrook&lt;/a&gt; – Friend and Colleague&lt;/p&gt;
&lt;p&gt;&lt;a title="David Strommer" target="_blank" mce_href="http://drowningintechnicaldebt.com/blogs/davidstrommer/default.aspx" href="http://drowningintechnicaldebt.com/blogs/davidstrommer/default.aspx"&gt;David Strommer&lt;/a&gt; – Friend and Colleague  &lt;/p&gt;
&lt;p&gt;&lt;a title="David McCollough" target="_blank" mce_href="http://weblogs.asp.net/davidmccollough/" href="http://weblogs.asp.net/davidmccollough/"&gt;David McCollough&lt;/a&gt; – Friend and Colleague&lt;/p&gt;
&lt;p&gt;&lt;a title="Chris Barba" target="_blank" mce_href="http://Chrisbarba.wordpress.com" href="http://chrisbarba.wordpress.com/"&gt;Chris Barba&lt;/a&gt; – Friend and Colleague&lt;/p&gt;
&lt;p&gt;The Tulsa .NET and Florida .NET Communities&lt;/p&gt;
&lt;p mce_keep="true"&gt; &lt;/p&gt;
&lt;div style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:50a58b5d-5661-4b8d-9878-35ec176ea00e" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a rel="tag" mce_href="http://technorati.com/tags/MVP+2009" href="http://technorati.com/tags/MVP+2009"&gt;MVP 2009&lt;/a&gt;,&lt;a rel="tag" mce_href="http://technorati.com/tags/ASP.NET+MVP" href="http://technorati.com/tags/ASP.NET+MVP"&gt;ASP.NET MVP&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.drowningintechnicaldebt.com/DennisBottjer/aggbug/114.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dennis Bottjer</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/04/01/asp-net-mvp-again-on-april-fools-no-joke.aspx</guid>
            <pubDate>Wed, 01 Apr 2009 20:28:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/114.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2009/04/01/asp-net-mvp-again-on-april-fools-no-joke.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/commentRss/114.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/DennisBottjer/services/trackbacks/114.aspx</trackback:ping>
        </item>
        <item>
            <title>Introducing David McCollough's Blog</title>
            <link>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2008/11/07/introducing-david-mccollough-s-blog.aspx</link>
            <description>&lt;p&gt;My friend and coworker at &lt;a href="http://www.myspringpoint.com" target="_blank"&gt;SpringPoint&lt;/a&gt; &lt;a href="http://weblogs.asp.net/davidmccollough/default.aspx" target="_blank"&gt;David McCoullough&lt;/a&gt; is blogging.  David is a talent ASP.NET developer who has attacked SharePoint development with a ferocious passion.  Welcome to the BlogoSphere David!&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:774a590a-2d12-434d-b206-92274e79f0a2" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SharePoint" rel="tag"&gt;SharePoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/David%20McCoullough" rel="tag"&gt;David McCoullough&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SpringPoint" rel="tag"&gt;SpringPoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.drowningintechnicaldebt.com/DennisBottjer/aggbug/95.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>dbottjer</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2008/11/07/introducing-david-mccollough-s-blog.aspx</guid>
            <pubDate>Fri, 07 Nov 2008 21:14:41 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/95.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2008/11/07/introducing-david-mccollough-s-blog.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/commentRss/95.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/DennisBottjer/services/trackbacks/95.aspx</trackback:ping>
        </item>
        <item>
            <title>Disposing of SharePoint Objects</title>
            <link>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2008/06/18/disposing-of-sharepoint-objects.aspx</link>
            <description>&lt;p&gt;The .NET Framework allows developers to write &lt;strong&gt;&lt;em&gt;managed&lt;/em&gt;&lt;/strong&gt; code.  The term &lt;strong&gt;&lt;em&gt;managed&lt;/em&gt;&lt;/strong&gt; refers to how memory is handled by a computer system.  For example, C/C++ code is commonly known as &lt;strong&gt;&lt;em&gt;unmanaged&lt;/em&gt;&lt;/strong&gt; because developers must allocate and de-allocate memory.  In contrast, the .NET Framework provide a mechanism known as the &lt;strong&gt;&lt;em&gt;Garbage Collector (GC)&lt;/em&gt;&lt;/strong&gt; to de-allocate or collect object no longer in use.&lt;/p&gt;
&lt;p&gt;I have found it particularly helpful to consider SharePoint a very large ASP.NET Application.  If you can visualize SharePoint as an ASP.NET application it becomes familiar and relatable.  If you begin to deconstruct SharePoint you will notice that it is comprised of Active Server Pages (ASPX), Master Pages, Style Sheets (CSS), User Controls (ASCX), Server Controls, Web Services (ASMX), Handlers, etc.  All these artifacts are common to ASP.NET developers.&lt;/p&gt;
&lt;p&gt;SharePoint provides a rich API for developers to program against and extend this large "&lt;strong&gt;&lt;em&gt;ASP.NET Application&lt;/em&gt;&lt;/strong&gt;."  Two object commonly used in SharePoint development are &lt;strong&gt;&lt;em&gt;SPSite&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;SPWeb&lt;/em&gt;&lt;/strong&gt;.  Despite the names of these objects it must be understood that an &lt;strong&gt;&lt;em&gt;SPSite&lt;/em&gt;&lt;/strong&gt; object represents a &lt;strong&gt;&lt;em&gt;site collection&lt;/em&gt;&lt;/strong&gt;.  While an &lt;strong&gt;&lt;em&gt;SPWeb&lt;/em&gt;&lt;/strong&gt; object represent a &lt;strong&gt;&lt;em&gt;site&lt;/em&gt;&lt;/strong&gt; beneath a &lt;strong&gt;&lt;em&gt;site collection&lt;/em&gt;&lt;/strong&gt;.  Both of these object are managed wrappers of unmanaged code.  Furthermore, both of these object implement IDisposible.  So now for the million dollar question... When should you as a developer explicitly dispose of these object?  Well, the answer is, it depends.     &lt;/p&gt;
&lt;div style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 8pt; PADDING-BOTTOM: 4px; MARGIN: 20px 0px 10px; OVERFLOW: auto; BORDER-LEFT: gray 1px solid; WIDTH: 97.5%; CURSOR: text; MAX-HEIGHT: 200px; LINE-HEIGHT: 12pt; PADDING-TOP: 4px; BORDER-BOTTOM: gray 1px solid; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BACKGROUND-COLOR: #f4f4f4"&gt;
&lt;div style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;span style="COLOR: #606060"&gt;   1:&lt;/span&gt; String title;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;span style="COLOR: #606060"&gt;   2:&lt;/span&gt;  &lt;/pre&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;span style="COLOR: #606060"&gt;   3:&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;(SPSite siteCollection = &lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt; SPSite(&lt;span style="COLOR: #006080"&gt;"http://mossdev"&lt;/span&gt;))&lt;/pre&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;span style="COLOR: #606060"&gt;   4:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;span style="COLOR: #606060"&gt;   5:&lt;/span&gt;   &lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;(SPWeb site = siteCollection.OpenWeb())&lt;/pre&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;span style="COLOR: #606060"&gt;   6:&lt;/span&gt;    {&lt;/pre&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;span style="COLOR: #606060"&gt;   7:&lt;/span&gt;        title = site.Title;&lt;/pre&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;span style="COLOR: #606060"&gt;   8:&lt;/span&gt;    }&lt;/pre&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;span style="COLOR: #606060"&gt;   9:&lt;/span&gt; }  &lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p mce_keep="true"&gt; &lt;/p&gt;
&lt;p&gt;In the example above we created a new &lt;strong&gt;&lt;em&gt;SPSite&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;SPWeb&lt;/em&gt;&lt;/strong&gt; object.  We explicitly created a new &lt;strong&gt;&lt;em&gt;SPSite&lt;/em&gt;&lt;/strong&gt; object while we called the &lt;strong&gt;&lt;em&gt;OpenWeb()&lt;/em&gt;&lt;/strong&gt; method of &lt;strong&gt;&lt;em&gt;SPSite&lt;/em&gt;&lt;/strong&gt; to return a new &lt;strong&gt;&lt;em&gt;SPWeb&lt;/em&gt;&lt;/strong&gt; Object.  Since in effect we created new instances of both object we should dispose of both objects.   Note that, wrapping the objects within a using statement will automatically dispose of that object when it is no longer needed.   A good example of when not to dispose of an &lt;strong&gt;&lt;em&gt;SPSite&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;SPWeb&lt;/em&gt;&lt;/strong&gt; object is when a reference to an existing object is returned from a method call.  For example, the method call &lt;strong&gt;&lt;em&gt;SPControl.GetContextSite()&lt;/em&gt;&lt;/strong&gt; will return a reference to an &lt;strong&gt;&lt;em&gt;SPSite&lt;/em&gt;&lt;/strong&gt; object we did not create therefore we should not dispose of this particular &lt;strong&gt;&lt;em&gt;SPSite&lt;/em&gt;&lt;/strong&gt; object.  Disposing of this particular instance will crash current page and possibly the site.&lt;/p&gt;
&lt;p&gt;Disposing of SharePoint objects such as &lt;strong&gt;&lt;em&gt;SPSite&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;SPWeb&lt;/em&gt;&lt;/strong&gt; will free both managed and unmanaged resources as soon as possible which will increase system performance and scalability.&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:51797397-9d94-4bc7-bd69-fd571effa2a9" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SharePoint%20Object%20Model" rel="tag" mce_href="http://technorati.com/tags/SharePoint%20Object%20Model"&gt;SharePoint Object Model&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SharePoint%20Object" rel="tag" mce_href="http://technorati.com/tags/SharePoint%20Object"&gt;SharePoint Object&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SPSite" rel="tag" mce_href="http://technorati.com/tags/SPSite"&gt;SPSite&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SPWeb" rel="tag" mce_href="http://technorati.com/tags/SPWeb"&gt;SPWeb&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Disposing%20of%20SharePoint%20Objects" rel="tag" mce_href="http://technorati.com/tags/Disposing%20of%20SharePoint%20Objects"&gt;Disposing of SharePoint Objects&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.drowningintechnicaldebt.com/DennisBottjer/aggbug/90.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>dbottjer</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2008/06/18/disposing-of-sharepoint-objects.aspx</guid>
            <pubDate>Wed, 18 Jun 2008 09:09:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/90.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2008/06/18/disposing-of-sharepoint-objects.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/commentRss/90.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/DennisBottjer/services/trackbacks/90.aspx</trackback:ping>
        </item>
        <item>
            <title>ASP.NET Debug=true Performance Considerations</title>
            <link>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/10/10/asp-net-debug-true-performance-considerations.aspx</link>
            <description>&lt;p&gt;I'm sure, like me, you've seen plenty of production web.config files with debug=true set.  Most senior ASP.NET developers will recognize that debug should be set to false for the production build.  However, this small detail is often over looked.  So what does this setting really do and does it have any significant impact on a production site?&lt;/p&gt;
&lt;p&gt;When &lt;b&gt;debug&lt;/b&gt; is set to &lt;b&gt;true&lt;/b&gt;, the following occurs: 
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Pages are not batch compiled. 
&lt;/li&gt;&lt;li&gt;Pages do not time out. When a problem occurs, such as a problem with a Web service call, the Web server may start to queue requests and stop responding. 
&lt;/li&gt;&lt;li&gt;Additional files are generated in the Temporary &lt;a href="http://asp.net/" mce_href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; Files folder. 
&lt;/li&gt;&lt;li&gt;The &lt;b&gt;System.Diagnostics.DebuggableAttribute&lt;/b&gt; attribute is added to generated code. This causes the CLR to track extra information about generated code, and it also disables certain optimizations. &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Source of Information: &lt;a title="http://msdn2.microsoft.com/en-us/library/ms998549.aspx" href="http://msdn2.microsoft.com/en-us/library/ms998549.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms998549.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms998549.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/DennisBottjer/aggbug/75.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>dbottjer</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/10/10/asp-net-debug-true-performance-considerations.aspx</guid>
            <pubDate>Wed, 10 Oct 2007 13:36:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/75.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/10/10/asp-net-debug-true-performance-considerations.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/commentRss/75.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/DennisBottjer/services/trackbacks/75.aspx</trackback:ping>
        </item>
        <item>
            <title>Loosing ASP.NET Session State in IIS6</title>
            <link>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/05/09/loosing-asp.net-session-state-in-iis6.aspx</link>
            <description>&lt;p&gt;Last year we deployed a new underwriting system.  Since the Fall of 2006 we have been steadily releasing updates to the system.   Supporting the large user-base of this application has required us to improve our debugging and performance monitor skills.  For example, we have become huge fans of unit testing and made strides to better understand memory management and profiling.  To protect the health of the application we needed to understand the recycling of application pools / worker processes. 
&lt;/p&gt;&lt;p&gt;&lt;a title="http://blogs.msdn.com/david.wang/archive/2006/01/26/Thoughts-on-Application-Pool-Recycling-and-Application-Availability.aspx" href="http://blogs.msdn.com/david.wang/archive/2006/01/26/Thoughts-on-Application-Pool-Recycling-and-Application-Availability.aspx" mce_href="http://blogs.msdn.com/david.wang/archive/2006/01/26/Thoughts-on-Application-Pool-Recycling-and-Application-Availability.aspx"&gt;Thoughts on Application Pool Recycling and Application Availability&lt;/a&gt; explains in detail how IIS6 is designed to gracefully transfer client connections to the new worker process.  In general devising a health strategy and recycling application pools is a good idea.  It is a bad idea to be overly aggressive in the recycling of Application Pools.  For example, recycling an application pool every hour would be very aggressive.  If application pool recycling is required that frequently I would profile the application's memory usage to determine how garbage collection is working.  Perhaps objects aren't being disposed of in a timely manor.  It is always a good idea to create a connection or instantiate an object as late as possible and dispose of them as soon as possible.  Furthermore, forced Garbage Collection like the GC Collect method is not recommend b/c it can corrupt Garbage Collection Statistics. 
&lt;/p&gt;&lt;p&gt;When recycling an application pool for an application that maintains session state, the way in which the session state is maintained should be considered.  For example, maintaining In-Process session state will result in a loss of session state when the Application Pool is recycled.  As a result users may be forced to login to an application again. 
&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/david.wang/archive/2005/09/19/Why_do_I_lose_ASP_Session_State_on_IIS6.aspx" mce_href="http://blogs.msdn.com/david.wang/archive/2005/09/19/Why_do_I_lose_ASP_Session_State_on_IIS6.aspx"&gt;Why do I lose ASP Session State on IIS6&lt;/a&gt; further explains the loss of session state when maintaining state in-process. A better strategy may be to store session state out of process.&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/DennisBottjer/aggbug/64.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>dbottjer</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/05/09/loosing-asp.net-session-state-in-iis6.aspx</guid>
            <pubDate>Wed, 09 May 2007 19:25:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/64.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/05/09/loosing-asp.net-session-state-in-iis6.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/commentRss/64.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/DennisBottjer/services/trackbacks/64.aspx</trackback:ping>
        </item>
        <item>
            <title>Web Services and UTF8Encoded ByteArrays</title>
            <link>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/05/01/web-services-utf8encoded-bytearrays.aspx</link>
            <description>&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;Our business partner began reporting all bullet points were being converted to question marks during the archiving of Word Docs.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;An early hunch that perhaps our FTP component was defaulting to ASCII transfer mode instead of Binary proved incorrect.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;With this option ruled out we knew our electronic document repository was properly receiving both the control file and the Word Doc.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;We began to suspect the web service exposed by our application which returns a document and metadata for archiving.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;We were using a byte array to store, in this case, the word document and write it to the http response stream.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;However, we were not specifying the encoding type which was our fatal mistake.&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&lt;span class="lnum" /&gt; &lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;StringWriter sw = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringWriter();&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;XmlTextWriter xw = &lt;span class="kwrd"&gt;new&lt;/span&gt; XmlTextWriter(sw);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;// Save Approval Document to Text Writter.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;doc.WriteTo(xw);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="rem"&gt;// Added this line to specify encoding and resolve bullet point issue.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;UTF8Encoding encoding = &lt;span class="kwrd"&gt;new&lt;/span&gt; UTF8Encoding();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="rem"&gt;// Convert Approval Document To Byte Array.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;byte&lt;/span&gt;[] docAsBytes = encoding.GetBytes(sw.ToString());&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;vvDoc.FileBinary = docAsBytes;&lt;/pre&gt;&lt;/div&gt;&lt;img src="http://www.drowningintechnicaldebt.com/DennisBottjer/aggbug/60.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>dbottjer</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/05/01/web-services-utf8encoded-bytearrays.aspx</guid>
            <pubDate>Tue, 01 May 2007 10:06:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/60.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/05/01/web-services-utf8encoded-bytearrays.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/commentRss/60.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/DennisBottjer/services/trackbacks/60.aspx</trackback:ping>
        </item>
        <item>
            <title>XHTMLConformance</title>
            <link>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/04/30/xhtmlconformance.aspx</link>
            <description>&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;&amp;lt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;xhtmlConformance&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;mode&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt;"&lt;/font&gt;&lt;font size="2"&gt;"&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; /&amp;gt; is new to ASP.NET 2.0 and can be added to the Web.Config to specify the XHTML rendering mode for an ASP.NET Application.  Mode can be set to Legacy, Transitional, or Strict.  Using the Legacy mode is not recommended if your site uses AJAX.  I found setting the mode to transitional particularly useful when trying to persuade DotNetNuke 4.x to output XHTML Transitional Compliant Markup.&lt;/font&gt;&lt;font color="#0000ff" size="2" /&gt;&lt;img src="http://www.drowningintechnicaldebt.com/DennisBottjer/aggbug/59.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>dbottjer</dc:creator>
            <guid>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/04/30/xhtmlconformance.aspx</guid>
            <pubDate>Mon, 30 Apr 2007 13:11:00 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/59.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/DennisBottjer/archive/2007/04/30/xhtmlconformance.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/DennisBottjer/comments/commentRss/59.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/DennisBottjer/services/trackbacks/59.aspx</trackback:ping>
        </item>
    </channel>
</rss>