<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="../xslt/Rss2Html.xslt" type="text/xsl"?>
<rss version="2.0">
  <channel>
    <title>David's Bible Blog</title>
    <link>http://www.dcarroll.com/Rss.aspx</link>
    <description>Where I blog my faith and interests</description>
    <language>en-us</language>
    <managingEditor>davcar@pobox.com</managingEditor>
    <webMaster>davcar@pobox.com</webMaster>
    <lastBuildDate>Wed, 23 Jan 2008 07:46:46 GMT</lastBuildDate>
    <ttl>1440</ttl>
    <item>
      <title>Visual Studio Tools for Office</title>
      <pubDate>Sun, 05 Jun 2005 20:29:35 GMT</pubDate>
      <link>http://www.dcarroll.com/blog/1217.aspx</link>
      <guid isPermaLink="false">47B55BCC-D7DB-452C-A9D8-811C4D5D3178</guid>
      <description>&lt;P&gt;The basic architecture is simple. Excel 2003 and Word 2003, upon loading a document, check for two custom properties in the document: &lt;B&gt;_AssemblyLocation0&lt;/B&gt; and &lt;B&gt;_AssemblyName0&lt;/B&gt;. If these properties are found, the host application loads the Visual Studio Tools for the Microsoft Office System Assembly Loader (Otkloadr.dll). This unmanaged DLL is responsible for loading the assembly that you created using Visual Studio Tools for the Microsoft Office System. The loader uses the document's custom properties to find the document's assembly, loads the assembly into memory, examines some metadata, sets up references between the host and the assembly, and then steps out of the way.&lt;/P&gt;
&lt;P&gt;If you change the Assembly Link Location property or the name of the assembly and then rebuild your project, the _AssemblyLocation0 and _AssemblyName0 document properties will be updated during the build process. However, the build process will not update the security policy to reflect your change; security policies are updated only during the initial project creation. So, if you change either the Assembly Link Location or the assembly name, you will need to update your Microsoft .NET security settings to reflect the new file name or location.&lt;/P&gt;
&lt;P&gt;You should also make note of the project's Copy Assembly property. If Copy Assembly is disabled or set to False, the build process will not copy the assembly to the link location. When you change the project's Assembly Link Location to a network path, the Copy Assembly property is automatically set to False. Likewise, when you change the Assembly Link Location to an HTTP path, the Copy Assembly property is disabled.&lt;/P&gt;
&lt;P&gt;from: &lt;A href="http://msdn.microsoft.com/smartclient/understanding/vsto/?pull=/library/en-us/odc_vsto2003_ta/html/vstofaq.asp#vsto_q14"&gt;Smart Client Developer Center Home&lt;/A&gt; and &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_vsto2003_ta/html/vstofaq.asp"&gt;Visual Studio Tools for Office&lt;/A&gt;&lt;/P&gt;</description>
      <Category>Programming</Category>
    </item>
    <item>
      <title>Design Smells</title>
      <pubDate>Thu, 02 Jun 2005 04:39:38 GMT</pubDate>
      <link>http://www.dcarroll.com/blog/1208.aspx</link>
      <guid isPermaLink="false">03746A6D-D563-4B0F-BE56-6137D911FB4C</guid>
      <description>&lt;P&gt;From &lt;EM&gt;&lt;U&gt;A&lt;/U&gt;&lt;/EM&gt;&lt;EM&gt;&lt;U&gt;gile Software Development, Principles, Patterns, and Practices &lt;/U&gt;&lt;/EM&gt;by Robert C. Martin&lt;/P&gt;
&lt;BLOCKQUOTE dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
  &lt;P&gt;
    &lt;STRONG&gt;Design Smells,&lt;/STRONG&gt; the odors associated with rotting software.&lt;/P&gt;
  &lt;OL&gt;
    &lt;LI&gt;
      &lt;STRONG&gt;Rigidity&lt;/STRONG&gt; - System is hard to change in even the most simple ways. 
&lt;P&gt;&lt;/P&gt;&lt;/LI&gt;
    &lt;LI&gt;
      &lt;STRONG&gt;Fragility&lt;/STRONG&gt; - Changes cause system to break easily and require other changes. 
&lt;P&gt;&lt;/P&gt;&lt;/LI&gt;
    &lt;LI&gt;
      &lt;STRONG&gt;Immobility&lt;/STRONG&gt; - Difficult to entangle components that can be reused in other systems. 
&lt;P&gt;&lt;/P&gt;&lt;/LI&gt;
    &lt;LI&gt;
      &lt;STRONG&gt;Viscosity&lt;/STRONG&gt; - Doing things right is harder than doing things wrong. 
&lt;P&gt;&lt;/P&gt;&lt;/LI&gt;
    &lt;LI&gt;
      &lt;STRONG&gt;Needless Complexity&lt;/STRONG&gt; - System contains infrastructure that has no direct benefit. 
&lt;P&gt;&lt;/P&gt;&lt;/LI&gt;
    &lt;LI&gt;
      &lt;STRONG&gt;Needless Repetition&lt;/STRONG&gt; - Repeated structures that should have a single abstraction. 
&lt;P&gt;&lt;/P&gt;&lt;/LI&gt;
    &lt;LI&gt;
      &lt;STRONG&gt;Opacity&lt;/STRONG&gt; - Code is hard to understand. 
&lt;P&gt;&lt;/P&gt;&lt;/LI&gt;
  &lt;/OL&gt;
&lt;/BLOCKQUOTE&gt;
&lt;A href="http://codebetter.com/blogs/david.hayden/archive/2005/05/20/63408.aspx"&gt;via David Hayden&lt;/A&gt;</description>
      <Category>Programming</Category>
    </item>
    <item>
      <title>Downloaded .NET Controls reqiure Full Trust</title>
      <pubDate>Tue, 14 Sep 2004 19:44:00 GMT</pubDate>
      <link>http://www.dcarroll.com/blog/1029.aspx</link>
      <guid isPermaLink="false">7C738728-57E9-464E-9805-F5DAB995A24D</guid>
      <description>&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconnetframeworkassembliesmarkedwithallowpartiallytrustedcallersattribute.asp"&gt;.NET Framework Assemblies Marked with AllowPartiallyTrustedCallersAttribute&lt;/A&gt;  Lists the framework assemblies which allow calls from downloaded code. All others have an explicit demand for "Full Trust".
&lt;P&gt;Noel Fouts, a co-worker of mine and a good friend, was investigating this issue related to some .NET WinForm controls we are using in some of our applications. He sent out the following email as a summary of his findings. It is an excellent summary of why our controls required "Full Trust."&lt;/P&gt;&lt;BLOCKQUOTE dir="ltr" style="MARGIN-RIGHT: 0px"&gt;&lt;P&gt;I have conducted quite a bit of testing on our client side .Net code and thought I would share my research. &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Evidence Testing&lt;/STRONG&gt; - Evidence is what the .NET Framework uses to identify the code that is about to run. You create an evidence policy to link to a set of permissions to grant your code. &lt;/P&gt;&lt;P&gt;For downloaded exes and their dependencies all types of evidence is supported. This includes a Strongname. The customer can use the Strongname we sign our code with to identify our code. This would only work for Tranproc because it is an exe. &lt;/P&gt;&lt;P&gt;For hosted user controls only "Site" and "URL" types of evidence are supported. For URL, only the "http:/sitename/directory/*" format is supported. You cannot reference a specific assembly in the URL. You must use an asterick. &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Permission Testing&lt;/STRONG&gt; - Permissions are the rights the code is granted. Some code requires the "Full Trust" permission because it calls other libraries that do not have the "Allow Partially Trusted Callers" bit set. Any downloaded code or code that calls unmanaged code is considered "Partially Trusted." &lt;/P&gt;&lt;P&gt;In Framework 1.1 when code is downloaded from a URL it has some minimal rights. (1.0 gave no intial rights) Additionaly rights can be granted in situations where the code is calling other assemblies that have the "Allow Partially Trusted Callers" bit set to true. If it calls any code with that bit set to false it requires the "Full Trust" permission. &lt;/P&gt;&lt;P&gt;Any code that inherits from System.Windows.Forms.Usercontrol requires "Full Trust." This is true for all of Winforms and most of Tranproc. Full control is also required for those time when we use the "AxSHDocVw.dll" library to run a web browser window. This is true for several cases in both Winforms and Tranproc. &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Deployment&lt;/STRONG&gt; - Some .NET code can be deployed from a URL and some can be deployed to a users workstation. &lt;/P&gt;&lt;P&gt;The Tranproc.exe can be pre deployed to a users workstation. It can be launched from their hard drive via a "file:///” url, however the user will get a File Open/Save dialog box. &lt;/P&gt;&lt;P&gt;WinForm controls cannot be preinstalled. They are not an executable therefore they cannot be launched from an "&lt;A&gt;" anchor tag. They are hosted by IE and IE as a security measure will not launch the container control found in the CLASSID of the Object tag from the permant GAC or the harddrive. You can however preinstall any depency assemblies in the GAC and they will load if they have been granted the correct permissions. To reiterate though, the main control that the webpage hosts cannot be loaded from the users GAC. &lt;/A&gt;&lt;/P&gt;&lt;P&gt;I hope this is helpful. &lt;/P&gt;&lt;P&gt;Noel Fouts, MCSD, MCDBA, MCSE &lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;The most suprising thing to me is the requirement that all winform controls which inherit from UserControl have "FullTrust" in order to run. That seems to defeat the pitch that .NET is much safer than ActiveX controls. It means you really have to explain well the Evidence Based part which allows your machine to trust code only from this site as if it were part of your local machine. I think that if you can get this across in your pitch to a client who is at first resistant to any downloaded controls, they will accept it.&lt;/P&gt;</description>
      <Category>Programming</Category>
    </item>
    <item>
      <title>Show Progress for Long Running ASP.NET page</title>
      <pubDate>Thu, 15 Apr 2004 00:52:51 GMT</pubDate>
      <link>http://www.dcarroll.com/blog/870.aspx</link>
      <guid isPermaLink="false">E011F2FB-C67A-4E7D-BFE2-D5664A63BD74</guid>
      <description>&lt;font face="Courier New"&gt;&lt;/font&gt;
&lt;font face="Courier New"&gt;
  &lt;span style="BACKGROUND-COLOR: #ffff00"&gt;&amp;lt;%@ Import Namespace="System.Threading" %&amp;gt;&lt;br /&gt; &amp;lt;%@Page Language="VB" %&amp;gt;&lt;/span&gt;
  &lt;br /&gt;
  &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;
  &lt;font color="#800000"&gt;html&lt;/font&gt;
  &lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
  &lt;br /&gt;
  &lt;span style="BACKGROUND-COLOR: #ffff00"&gt;&amp;lt;%&lt;/span&gt;
  &lt;br /&gt;     Response.Write(&lt;font color="#008080"&gt;"&amp;lt;div id='mydiv'&amp;gt;Loading&amp;lt;/div&amp;gt;"&lt;/font&gt;)&lt;br /&gt;     Response.Write(&lt;font color="#008080"&gt;"&amp;lt;script language=javascript&amp;gt;;"&lt;/font&gt;)&lt;br /&gt;     Response.Write(&lt;font color="#008080"&gt;"var dots=0;var dotmax=10;function ShowWait()"&lt;/font&gt;)&lt;br /&gt;     Response.Write(&lt;font color="#008080"&gt;"{var output;output='Loading';dots++;if(dots&amp;gt;=dotmax)dots=1;"&lt;/font&gt;)&lt;br /&gt;     Response.Write(&lt;font color="#008080"&gt;"for(var x=0;x&amp;lt;dots;x++)output+='.';mydiv.innerText= output;}"&lt;/font&gt;)&lt;br /&gt;     Response.Write(&lt;font color="#008080"&gt;"function StartShowWait(){window.setInterval('ShowWait()',1000);}"&lt;/font&gt;)&lt;br /&gt;     Response.Write(&lt;font color="#008080"&gt;"function HideWait(){mydiv.style.display='none';window.clearInterval();}"&lt;/font&gt;)&lt;br /&gt;     Response.Write(&lt;font color="#008080"&gt;"StartShowWait();&amp;lt;/script&amp;gt;"&lt;/font&gt;)&lt;br /&gt;     Response.Flush()&lt;br /&gt;     Thread.Sleep(10000)&lt;br /&gt;&lt;span style="BACKGROUND-COLOR: #ffff00"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;head&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;HideWait();&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;script&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;head&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;body&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;h1&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;Loaded&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;h1&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;body&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;html&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;
&lt;font color="#800000"&gt;
  &lt;br /&gt;
  &lt;font face="Courier New"&gt;&lt;/font&gt;
&lt;/font&gt;</description>
      <Category>Programming</Category>
    </item>
    <item>
      <title>Easily misunderstood options in RegEx</title>
      <pubDate>Thu, 25 Mar 2004 12:46:04 GMT</pubDate>
      <link>http://www.dcarroll.com/blog/779.aspx</link>
      <guid isPermaLink="false">2574A932-A450-4258-8518-4C3FFDA052D7</guid>
      <description>&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr valign="top"&gt;
      &lt;th align="left" width="35%"&gt;Option&lt;/th&gt;
      &lt;th align="left" width="65%"&gt;Description&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr valign="top"&gt;
      &lt;td width="35%"&gt;Multiline&lt;/td&gt;
      &lt;td width="65%"&gt;Has nothing to do with how many lines are in the input string. Rather, this simply modifies the behavior of &lt;b&gt;^&lt;/b&gt; and &lt;b&gt;$&lt;/b&gt; so that they match BOL and EOL instead of the beginning and end of the entire input string.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr valign="top"&gt;
      &lt;td width="35%"&gt;IgnorePatternWhitespace&lt;/td&gt;
      &lt;td width="65%"&gt;Allows pattern to have as much white space as desired, and also enables the use of in-pattern comments, using the (?# comment #) syntax.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr valign="top"&gt;
      &lt;td width="35%"&gt;SingleLine&lt;/td&gt;
      &lt;td width="65%"&gt;Has nothing to do with how many lines are in the input string. Rather, will cause the &lt;b&gt;.&lt;/b&gt; (period) metacharacter to match any character, instead of any character except \n, which is the default.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;</description>
      <Category>Programming</Category>
    </item>
    <item>
      <title>How to implement Equals in C#</title>
      <pubDate>Wed, 24 Mar 2004 01:02:05 GMT</pubDate>
      <link>http://www.dcarroll.com/blog/758.aspx</link>
      <guid isPermaLink="false">BF460D19-2245-4466-ADDE-0FD0B4F73781</guid>
      <description>&lt;p&gt;
  &lt;font size="2"&gt;
    &lt;font face="Courier New"&gt;public override bool Equals(object obj)&lt;br /&gt;{&lt;br /&gt;    if (obj == null) return false;&lt;br /&gt;    if (this.GetType() != obj.GetType()) return false;&lt;br /&gt;&lt;/font&gt;
  &lt;/font&gt;
  &lt;font size="2"&gt;
    &lt;font face="Courier New" size="2"&gt;// safe because of the GetType check&lt;br /&gt;    Customer cust = (Customer) obj;&lt;br /&gt;    // use this pattern to compare reference members&lt;br /&gt;    if (!Object.Equals(Name, cust.Name)) return false;&lt;br /&gt;    // use this pattern to compare value members&lt;br /&gt;    if (!Age.Equals(cust.Age)) return false;&lt;br /&gt;    return true;&lt;br /&gt;} &lt;/font&gt;
  &lt;/font&gt;
&lt;/p&gt;</description>
      <Category>Programming</Category>
    </item>
    <item>
      <title>SOA definition </title>
      <pubDate>Mon, 13 Oct 2003 13:31:37 GMT</pubDate>
      <link>http://www.dcarroll.com/blog/490.aspx</link>
      <guid isPermaLink="false">31FAE738-F918-4000-B826-FFAF459C79D5</guid>
      <description>&lt;p class="MsoNormal"&gt;excerpted from &lt;a href="http://www.objectwatch.com/issue_45.htm"&gt;Roger Sessions at ObjectWatch&lt;/a&gt; via &lt;a href="http://weblogs.asp.net/jtucker/posts/31731.aspx"&gt;Jason Tucker&lt;/a&gt;&lt;/p&gt;
&lt;div dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
  &lt;p&gt;An Service-Oriented Architecture (SOA) is an architecture that defines how autonomous systems interoperate with particular focus on: &lt;/p&gt;
  &lt;ul dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
    &lt;li&gt;Asynchronous communications&lt;/li&gt;
    &lt;li&gt;Heterogeneous transport channels&lt;/li&gt;
    &lt;li&gt;Proof of identify&lt;/li&gt;
    &lt;li&gt;Error management&lt;/li&gt;
    &lt;li&gt;Workflow coordination&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;If two systems are autonomous, then they have no mutual dependencies. This implies that neither system interrupts its own work to wait for some other system to complete its task. This implies asynchronous communications. The first SOA principle is therefore asynchronous communications. &lt;/p&gt;
  &lt;p&gt;If two autonomous systems interoperate, then there must be a communications channel between the two that is independent of the technology used by either system. The second SOA principle is therefore heterogeneous communications channels. &lt;/p&gt;
  &lt;p&gt;If two systems are truly autonomous of each other, then there is a natural healthy mutual suspicion that must be maintained. In order to get beyond this, there must be a way for each system to convince the other that it is really who it claims to be. The third SOA principle is therefore proof of identify.&lt;/p&gt;
  &lt;p class="MsoNormal"&gt;It would be great if everything worked every time. Unfortunately, things don’t always work. An architecture of interoperability must take into account what happens when things don’t work as well as when things do work. The fourth SOA principle is therefore error management across the systems matrix.&lt;/p&gt;
  &lt;p&gt;When multiple autonomous systems are communicating with each other asynchronously, keeping track of where we are in the overall workflow effort is much more complicated than when systems are working together synchronously. The fifth SOA principle is therefore workflow coordination.&lt;/p&gt;
&lt;/div&gt;</description>
      <Category>Programming</Category>
    </item>
    <item>
      <title>Attribute Value Template</title>
      <pubDate>Sun, 05 Oct 2003 18:24:07 GMT</pubDate>
      <link>http://www.dcarroll.com/blog/445.aspx</link>
      <guid isPermaLink="false">A2CD2567-BDDB-4AF5-A3FD-2CE5CFBEBB29</guid>
      <description>&lt;p&gt;I just learned something about XSLT. It is called an &lt;strong&gt;&lt;a href="http://www.w3.org/TR/xslt#attribute-value-templates"&gt;attribute value template.&lt;/a&gt;&lt;/strong&gt; For example, instead of having to use the following construction to create a link:&lt;/p&gt;
&lt;pre&gt;&amp;lt;a&amp;gt;&amp;lt;xsl:attribute name="href"&amp;gt;&lt;br /&gt;   &amp;lt;xsl:value-of select="@url"/&amp;gt;&lt;br /&gt;   &amp;lt;/xsl:attribute&amp;gt;My Link&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;/pre&gt;
&lt;p&gt;you can simply say&lt;/p&gt;
&lt;pre&gt;&amp;lt;a href="{@url}"&amp;gt;My Link&amp;lt;/a&amp;gt;&lt;/pre&gt;
&lt;p&gt;There is a lot of XSLT code I need to go clean up now...&lt;/p&gt;</description>
      <Category>Programming</Category>
    </item>
    <item>
      <title>Bible Reading Plan Code</title>
      <pubDate>Fri, 03 Oct 2003 20:04:26 GMT</pubDate>
      <link>http://www.dcarroll.com/blog/427.aspx</link>
      <guid isPermaLink="false">3D44B031-231A-4383-BFE7-A6EB5B0401B2</guid>
      <description>&lt;P&gt;
  &lt;A href="http://thebrowntrout.net/random"&gt;Kevin &lt;/A&gt;asked about the code I was using to generate the reading plan. Here are some links to the source code and to the xml file of the Bible books and daily readings.&lt;/P&gt;
&lt;DIV dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
  &lt;P&gt;
    &lt;A href="http://www.dcarroll.com/CodeSamples/ReadingPlan.aspx.htm"&gt;ReadPlan.aspx&lt;/A&gt;
    &lt;BR /&gt;
    &lt;A href="http://www.dcarroll.com/CodeSamples/ReadingPlan.aspx.vb.htm"&gt;ReadPlan.aspx.vb&lt;/A&gt;
    &lt;BR /&gt;
    &lt;A href="http://www.dcarroll.com/CodeSamples/Bible.xml"&gt;Bible.xml&lt;/A&gt;
  &lt;/P&gt;
&lt;/DIV&gt;
&lt;P dir="ltr"&gt;Enjoy!&lt;/P&gt;</description>
      <Category>Programming</Category>
    </item>
    <item>
      <title>DataGrid.ColAutoResize</title>
      <pubDate>Thu, 02 Oct 2003 12:48:23 GMT</pubDate>
      <link>http://www.dcarroll.com/blog/396.aspx</link>
      <guid isPermaLink="false">7E712912-F7A6-44E7-B2ED-CCF9845255E7</guid>
      <description>&lt;p&gt;ColAutoResize is an undocumented Private member of Datagrid. This is how to call it via Reflection:&lt;/p&gt;
&lt;p&gt;
  &lt;font face="Courier New"&gt;Dim gridType As Type = grid.GetType()&lt;br /&gt;Dim mi as MethodInfo =     gridType.GetMethod("ColAutoResize", _&lt;br /&gt;&lt;/font&gt;
  &lt;font face="Courier New"&gt;
BindingFlags.Instance Or BindingFlags.NonPublic)&lt;br /&gt;mi.Invoke(grid, New Object() {0})&lt;br /&gt;&lt;/font&gt;
&lt;/p&gt;</description>
      <Category>Programming</Category>
    </item>
  </channel>
</rss>