<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 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:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Neil Cowburn</title>
    <link>http://blog.opennetcf.com/ncowburn/</link>
    <description>Principal Partner of OpenNETCF Consulting &amp; Co-Founder of OpenNETCF.org</description>
    <language>en-us</language>
    <copyright>Neil Cowburn</copyright>
    <lastBuildDate>Tue, 12 Aug 2008 15:09:06 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>neilc@opennetcf.com</managingEditor>
    <webMaster>neilc@opennetcf.com</webMaster>
    <item>
      <trackback:ping>http://blog.opennetcf.com/ncowburn/Trackback.aspx?guid=faa7a649-3004-4a7d-a956-8a121b352ce1</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/ncowburn/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/ncowburn/PermaLink,guid,faa7a649-3004-4a7d-a956-8a121b352ce1.aspx</pingback:target>
      <dc:creator>Neil Cowburn</dc:creator>
      <wfw:comment>http://blog.opennetcf.com/ncowburn/CommentView,guid,faa7a649-3004-4a7d-a956-8a121b352ce1.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/ncowburn/SyndicationService.asmx/GetEntryCommentsRss?guid=faa7a649-3004-4a7d-a956-8a121b352ce1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When you reference an assembly compiled against .NET Compact Framework 2.0 in a project
targeting .NET Compact Framework, it's quite likely you will receive a number of <b>ResolveAssemblyReferences</b> warnings,
similar to this:
</p>
        <pre>ResolveAssemblyReferences:
  Consider app.config remapping of assembly "System.Windows.Forms, Culture=neutral, 
  PublicKeyToken=969db8053d3322ac, Retargetable=Yes" from Version "2.0.0.0" [] to 
  Version "3.5.0.0" [C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\
  WindowsCE\System.Windows.Forms.dll] to solve conflict and get rid of warning.</pre>
        <p>
This warning occurs when the compiler has loaded the .NET Compact Framework 3.5 base
class libraries (BCLs) and the referenced assembly, but the metadata contained in
the referenced assembly references the .NET Compact Framework 2.0 BCLs. 
</p>
        <p>
To remove the warnings you can add an App.Config to your project and redirect the
assembly bindings from the 2.0 versions to the 3.5 equivalents. Below is an example
of the XML required in the App.Config to redirect the 2.0 version of System.dll to
the 3.5 version.
</p>
        <pre class="xml" name="code">&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;configuration&gt;
  &lt;runtime&gt;
    &lt;assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1"&gt;
      &lt;dependentassembly&gt;
        &lt;assemblyidentity name="System" culture="neutral" publickeytoken="969db8053d3322ac" /&gt;
        &lt;bindingredirect  newVersion="3.5.0.0" oldVersion="2.0.0.0" /&gt;
      &lt;/dependentassembly&gt;
    &lt;/assemblybinding&gt;
  &lt;/runtime&gt;
&lt;/configuration&gt;</pre>
        <p>
You will need to add a <b>dependentassembly</b> element for each of the ResolveAssemblyReferences
warnings that you receive.
</p>
        <p>
Make sure the <b>Build Action</b> property of the App.Config is set to <b>Content</b> and
the <b>Copy To Output Directory</b> property is set to <b>Only if newer</b>. Then,
rebuild your solution and the warnings should not appear. 
</p>
        <img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=faa7a649-3004-4a7d-a956-8a121b352ce1" />
      </body>
      <title>HOWTO: Prevent ResolveAssemblyReferences warnings in Visual Studio 2008</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/ncowburn/PermaLink,guid,faa7a649-3004-4a7d-a956-8a121b352ce1.aspx</guid>
      <link>http://blog.opennetcf.com/ncowburn/2008/08/12/HOWTOPreventResolveAssemblyReferencesWarningsInVisualStudio2008.aspx</link>
      <pubDate>Tue, 12 Aug 2008 15:09:06 GMT</pubDate>
      <description>&lt;p&gt;
When you reference an assembly compiled against .NET Compact Framework 2.0 in a project
targeting .NET Compact Framework, it's quite likely you will receive a number of &lt;b&gt;ResolveAssemblyReferences&lt;/b&gt; warnings,
similar to this:
&lt;/p&gt;
&lt;pre&gt;ResolveAssemblyReferences:
  Consider app.config remapping of assembly "System.Windows.Forms, Culture=neutral, 
  PublicKeyToken=969db8053d3322ac, Retargetable=Yes" from Version "2.0.0.0" [] to 
  Version "3.5.0.0" [C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\
  WindowsCE\System.Windows.Forms.dll] to solve conflict and get rid of warning.&lt;/pre&gt;
&lt;p&gt;
This warning occurs when the compiler has loaded the .NET Compact Framework 3.5 base
class libraries (BCLs) and the referenced assembly, but the metadata contained in
the referenced assembly references the .NET Compact Framework 2.0 BCLs. 
&lt;/p&gt;
&lt;p&gt;
To remove the warnings you can add an App.Config to your project and redirect the
assembly bindings from the 2.0 versions to the 3.5 equivalents. Below is an example
of the XML required in the App.Config to redirect the 2.0 version of System.dll to
the 3.5 version.
&lt;/p&gt;
&lt;pre class="xml" name="code"&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&gt;
&amp;lt;configuration&gt;
  &amp;lt;runtime&gt;
    &amp;lt;assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1"&gt;
      &amp;lt;dependentassembly&gt;
        &amp;lt;assemblyidentity name="System" culture="neutral" publickeytoken="969db8053d3322ac" /&gt;
        &amp;lt;bindingredirect  newVersion="3.5.0.0" oldVersion="2.0.0.0" /&gt;
      &amp;lt;/dependentassembly&gt;
    &amp;lt;/assemblybinding&gt;
  &amp;lt;/runtime&gt;
&amp;lt;/configuration&gt;&lt;/pre&gt;
&lt;p&gt;
You will need to add a &lt;b&gt;dependentassembly&lt;/b&gt; element for each of the ResolveAssemblyReferences
warnings that you receive.
&lt;/p&gt;
&lt;p&gt;
Make sure the &lt;b&gt;Build Action&lt;/b&gt; property of the App.Config is set to &lt;b&gt;Content&lt;/b&gt; and
the &lt;b&gt;Copy To Output Directory&lt;/b&gt; property is set to &lt;b&gt;Only if newer&lt;/b&gt;. Then,
rebuild your solution and the warnings should not appear. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=faa7a649-3004-4a7d-a956-8a121b352ce1" /&gt;</description>
      <comments>http://blog.opennetcf.com/ncowburn/CommentView,guid,faa7a649-3004-4a7d-a956-8a121b352ce1.aspx</comments>
      <category>.NET Compact Framework</category>
      <category>HOWTO</category>
      <category>OpenNETCF</category>
      <category>VS 2008</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/ncowburn/Trackback.aspx?guid=d2422827-824f-443e-b0d0-629d3b9799a9</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/ncowburn/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/ncowburn/PermaLink,guid,d2422827-824f-443e-b0d0-629d3b9799a9.aspx</pingback:target>
      <dc:creator>Neil Cowburn</dc:creator>
      <wfw:comment>http://blog.opennetcf.com/ncowburn/CommentView,guid,d2422827-824f-443e-b0d0-629d3b9799a9.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/ncowburn/SyndicationService.asmx/GetEntryCommentsRss?guid=d2422827-824f-443e-b0d0-629d3b9799a9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
There's been a lot of internal discussion today on how to leverage C# 3.0 features
without requiring .NET Compact Framework 3.5. Mark has the low down on using extension
methods with a little compiler misdirection hack. 
</p>
        <p>
The discussions kicked off because I discovered that you can use <a href="http://weblogs.asp.net/scottgu/archive/2007/04/08/new-orcas-language-feature-lambda-expressions.aspx">lambda
expressions</a> with .NET Compact Framework 2.0 projects in Visual Studio 2008. <a href="http://twitter.com/neilco/statuses/865281558">I
even twittered about it yesterday</a>. <i>(Note: it didn't take me too long to realize <a href="http://twitter.com/neilco/statuses/865310767">it's
not a bug</a>, but due to Visual Studio 2008 using the C# 3.0 compiler.)</i> Code
like the following <i>just works</i> -- no hacks required:
</p>
        <pre name="code" class="csharp">
delegate double PowerOf(double x, double y);

static void Main() 
{
    PowerOf pwr = (x, y) =&gt; Math.Pow(x, y);
    double result = pwr(2, 3);
}</pre>
        <p>
If you are using Visual Studio 2008 and still need to target .NET Compact Framework
2.0, the little things like this go a long way to creating and maintaining reusable
code.
</p>
        <img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=d2422827-824f-443e-b0d0-629d3b9799a9" />
      </body>
      <title>Lambda expressions in .NET Compact Framework 2.0</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/ncowburn/PermaLink,guid,d2422827-824f-443e-b0d0-629d3b9799a9.aspx</guid>
      <link>http://blog.opennetcf.com/ncowburn/2008/07/23/LambdaExpressionsInNETCompactFramework20.aspx</link>
      <pubDate>Wed, 23 Jul 2008 16:13:23 GMT</pubDate>
      <description>&lt;p&gt;
There's been a lot of internal discussion today on how to leverage C# 3.0 features
without requiring .NET Compact Framework 3.5. Mark has the low down on using extension
methods with a little compiler misdirection hack. 
&lt;/p&gt;
&lt;p&gt;
The discussions kicked off because I discovered that you can use &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/04/08/new-orcas-language-feature-lambda-expressions.aspx"&gt;lambda
expressions&lt;/a&gt; with .NET Compact Framework 2.0 projects in Visual Studio 2008. &lt;a href="http://twitter.com/neilco/statuses/865281558"&gt;I
even twittered about it yesterday&lt;/a&gt;. &lt;i&gt;(Note: it didn't take me too long to realize &lt;a href="http://twitter.com/neilco/statuses/865310767"&gt;it's
not a bug&lt;/a&gt;, but due to Visual Studio 2008 using the C# 3.0 compiler.)&lt;/i&gt; Code
like the following &lt;i&gt;just works&lt;/i&gt; -- no hacks required:
&lt;/p&gt;
&lt;pre name="code" class="csharp"&gt;
delegate double PowerOf(double x, double y);

static void Main() 
{
    PowerOf pwr = (x, y) =&gt; Math.Pow(x, y);
    double result = pwr(2, 3);
}&lt;/pre&gt;
&lt;p&gt;
If you are using Visual Studio 2008 and still need to target .NET Compact Framework
2.0, the little things like this go a long way to creating and maintaining reusable
code.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=d2422827-824f-443e-b0d0-629d3b9799a9" /&gt;</description>
      <comments>http://blog.opennetcf.com/ncowburn/CommentView,guid,d2422827-824f-443e-b0d0-629d3b9799a9.aspx</comments>
      <category>.NET Compact Framework</category>
      <category>OpenNETCF</category>
      <category>Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/ncowburn/Trackback.aspx?guid=af019ac1-c8c9-4b02-8b82-1574f3b48479</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/ncowburn/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/ncowburn/PermaLink,guid,af019ac1-c8c9-4b02-8b82-1574f3b48479.aspx</pingback:target>
      <dc:creator>Neil Cowburn</dc:creator>
      <wfw:comment>http://blog.opennetcf.com/ncowburn/CommentView,guid,af019ac1-c8c9-4b02-8b82-1574f3b48479.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/ncowburn/SyndicationService.asmx/GetEntryCommentsRss?guid=af019ac1-c8c9-4b02-8b82-1574f3b48479</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="text-align: center">
          <img src="http://www.opennetcf.com/Portals/0/MSWEP/Gold_Partner_rgb.png" />
        </p>
        <p>
Over the last few months we've been working hard to attain the Gold Level partner
status in the Microsoft Partner Program and I'm extremely pleased to say that we've
done it! For our customers, this is an assurance that by choosing to work with OpenNETCF
products and our consultants, you really are choosing a high calibre company. 
</p>
        <p>
Massive amounts of credit for <a href="http://blog.opennetcf.com/marteaga">Mark</a> for
driving this internally. Good job!
</p>
        <img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=af019ac1-c8c9-4b02-8b82-1574f3b48479" />
      </body>
      <title>OpenNETCF is now a Microsoft Gold Partner</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/ncowburn/PermaLink,guid,af019ac1-c8c9-4b02-8b82-1574f3b48479.aspx</guid>
      <link>http://blog.opennetcf.com/ncowburn/2008/07/16/OpenNETCFIsNowAMicrosoftGoldPartner.aspx</link>
      <pubDate>Wed, 16 Jul 2008 10:04:10 GMT</pubDate>
      <description>
&lt;p style="text-align: center"&gt;
&lt;img src="http://www.opennetcf.com/Portals/0/MSWEP/Gold_Partner_rgb.png" /&gt;
&lt;/p&gt;
&lt;p&gt;
Over the last few months we've been working hard to attain the Gold Level partner
status in the Microsoft Partner Program and I'm extremely pleased to say that we've
done it! For our customers, this is an assurance that by choosing to work with OpenNETCF
products and our consultants, you really are choosing a high calibre company. 
&lt;/p&gt;
&lt;p&gt;
Massive amounts of credit for &lt;a href="http://blog.opennetcf.com/marteaga"&gt;Mark&lt;/a&gt; for
driving this internally. Good job!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=af019ac1-c8c9-4b02-8b82-1574f3b48479" /&gt;</description>
      <comments>http://blog.opennetcf.com/ncowburn/CommentView,guid,af019ac1-c8c9-4b02-8b82-1574f3b48479.aspx</comments>
      <category>General</category>
      <category>OpenNETCF</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/ncowburn/Trackback.aspx?guid=ce65e9c5-4053-482c-bc70-b52b9888c0b4</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/ncowburn/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/ncowburn/PermaLink,guid,ce65e9c5-4053-482c-bc70-b52b9888c0b4.aspx</pingback:target>
      <dc:creator>Neil Cowburn</dc:creator>
      <wfw:comment>http://blog.opennetcf.com/ncowburn/CommentView,guid,ce65e9c5-4053-482c-bc70-b52b9888c0b4.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/ncowburn/SyndicationService.asmx/GetEntryCommentsRss?guid=ce65e9c5-4053-482c-bc70-b52b9888c0b4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The next <b>Smart Device Development Chat</b> will take place on MSDN at <b>10am PST</b> on <b>Wednesday,
July 16.</b></p>
        <p>
Please join experts from the Windows Mobile, Windows CE, SQL Server CE and .NET Compact
Framework communities in a chat around application development for smart devices.
These chats are a great opportunity to have your questions answered by experts from
around the world. 
</p>
        <p>
          <a href="http://www.microsoft.com/communities/chats/vcs/08_0716_msdn_SDD.ics">Add
to Calendar</a>
        </p>
        <p>
If you cannot attend the MSDN Chat, there is a permanent chat room available on the <a href="http://chat.neilcowburn.com/" target="_new">web</a> and
via <a href="irc://irc.freenode.net/mobiledev">IRC (irc://irc.freenode.net/mobiledev)</a>.
Engage with your peers online today! 
</p>
        <img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=ce65e9c5-4053-482c-bc70-b52b9888c0b4" />
      </body>
      <title>Mark your calendars - Smart Device Development Chat, July 16.</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/ncowburn/PermaLink,guid,ce65e9c5-4053-482c-bc70-b52b9888c0b4.aspx</guid>
      <link>http://blog.opennetcf.com/ncowburn/2008/07/11/MarkYourCalendarsSmartDeviceDevelopmentChatJuly16.aspx</link>
      <pubDate>Fri, 11 Jul 2008 10:05:14 GMT</pubDate>
      <description>&lt;p&gt;
The next &lt;b&gt;Smart Device Development Chat&lt;/b&gt; will take place on MSDN at &lt;b&gt;10am PST&lt;/b&gt; on &lt;b&gt;Wednesday,
July 16.&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;
Please join experts from the Windows Mobile, Windows CE, SQL Server CE and .NET Compact
Framework communities in a chat around application development for smart devices.
These chats are a great opportunity to have your questions answered by experts from
around the world. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/communities/chats/vcs/08_0716_msdn_SDD.ics"&gt;Add
to Calendar&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
If you cannot attend the MSDN Chat, there is a permanent chat room available on the &lt;a href="http://chat.neilcowburn.com/" target="_new"&gt;web&lt;/a&gt; and
via &lt;a href="irc://irc.freenode.net/mobiledev"&gt;IRC (irc://irc.freenode.net/mobiledev)&lt;/a&gt;.
Engage with your peers online today! 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=ce65e9c5-4053-482c-bc70-b52b9888c0b4" /&gt;</description>
      <comments>http://blog.opennetcf.com/ncowburn/CommentView,guid,ce65e9c5-4053-482c-bc70-b52b9888c0b4.aspx</comments>
      <category>Mobility/Embedded</category>
      <category>OpenNETCF</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/ncowburn/Trackback.aspx?guid=9a2d5a26-1485-49db-8f67-7931b2088658</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/ncowburn/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/ncowburn/PermaLink,guid,9a2d5a26-1485-49db-8f67-7931b2088658.aspx</pingback:target>
      <dc:creator>Neil Cowburn</dc:creator>
      <wfw:comment>http://blog.opennetcf.com/ncowburn/CommentView,guid,9a2d5a26-1485-49db-8f67-7931b2088658.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/ncowburn/SyndicationService.asmx/GetEntryCommentsRss?guid=9a2d5a26-1485-49db-8f67-7931b2088658</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I got an email last week asking about how to disable a particular network connection
under Vista. The specific scenario, how to disable an active 3G connection, is not
something I'm going to cover, but what I present below could be used as basis for
that scenario.
</p>
        <p>
With Vista, Microsoft introduced two new methods to the <a href="msdn.microsoft.com/en-us/library/aa394216(VS.85).aspx">Win32_NetworkAdapter</a> class
under <a href="msdn.microsoft.com/en-us/library/aa394582.aspx">WMI</a>: <b>Enable</b> and <b>Disable</b>.
Before can call either of those methods, we need to know how to enumerate the network
connections.
</p>
        <p>
The .NET Framework SDK provides a helpful utility called <b>mgmtclassgen.exe</b>,
which can be used to create .NET-friendly wrappers of the WMI classes. Open up a Visual
Studio command prompt and enter the following:
</p>
        <pre>mgmtclassgen Win32_NetworkAdapter -p NetworkAdapter.cs</pre>
        <p>
This will generate a file called NetworkAdapter.cs which will contain a C# representation
of the WMI Win32_NetworkAdapter class. You can add this source code file to your C#
project and then access all the properties without too much extra effort.
</p>
        <p>
To filter and disable the specific adapters, you do something like this:
</p>
        <pre name="code" class="csharp">SelectQuery query = new SelectQuery("Win32_NetworkAdapter", "NetConnectionStatus=2");
ManagementObjectSearcher search = new ManagementObjectSearcher(query);
foreach(ManagementObject result in search.Get())
{
    NetworkAdapter adapter = new NetworkAdapter(result);

    // Identify the adapter you wish to disable here. 
    // In particular, check the AdapterType and 
    // Description properties.

    // Here, we're selecting the LAN adapters.
    if (adapter.AdapterType.Equals("Ethernet 802.3")) 
    {
        adapter.Disable();
    }
}</pre>
        <p>
Don't forget to add a reference to <b>System.Management.dll</b>!
</p>
        <img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=9a2d5a26-1485-49db-8f67-7931b2088658" />
      </body>
      <title>HOW-TO: Disable/Enable Network Connections Programmatically under Vista</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/ncowburn/PermaLink,guid,9a2d5a26-1485-49db-8f67-7931b2088658.aspx</guid>
      <link>http://blog.opennetcf.com/ncowburn/2008/06/24/HOWTODisableEnableNetworkConnectionsProgrammaticallyUnderVista.aspx</link>
      <pubDate>Tue, 24 Jun 2008 15:06:00 GMT</pubDate>
      <description>&lt;p&gt;
I got an email last week asking about how to disable a particular network connection
under Vista. The specific scenario, how to disable an active 3G connection, is not
something I'm going to cover, but what I present below could be used as basis for
that scenario.
&lt;/p&gt;
&lt;p&gt;
With Vista, Microsoft introduced two new methods to the &lt;a href="msdn.microsoft.com/en-us/library/aa394216(VS.85).aspx"&gt;Win32_NetworkAdapter&lt;/a&gt; class
under &lt;a href="msdn.microsoft.com/en-us/library/aa394582.aspx"&gt;WMI&lt;/a&gt;: &lt;b&gt;Enable&lt;/b&gt; and &lt;b&gt;Disable&lt;/b&gt;.
Before can call either of those methods, we need to know how to enumerate the network
connections.
&lt;/p&gt;
&lt;p&gt;
The .NET Framework SDK provides a helpful utility called &lt;b&gt;mgmtclassgen.exe&lt;/b&gt;,
which can be used to create .NET-friendly wrappers of the WMI classes. Open up a Visual
Studio command prompt and enter the following:
&lt;/p&gt;
&lt;pre&gt;mgmtclassgen Win32_NetworkAdapter -p NetworkAdapter.cs&lt;/pre&gt;
&lt;p&gt;
This will generate a file called NetworkAdapter.cs which will contain a C# representation
of the WMI Win32_NetworkAdapter class. You can add this source code file to your C#
project and then access all the properties without too much extra effort.
&lt;/p&gt;
&lt;p&gt;
To filter and disable the specific adapters, you do something like this:
&lt;/p&gt;
&lt;pre name="code" class="csharp"&gt;SelectQuery query = new SelectQuery("Win32_NetworkAdapter", "NetConnectionStatus=2");
ManagementObjectSearcher search = new ManagementObjectSearcher(query);
foreach(ManagementObject result in search.Get())
{
    NetworkAdapter adapter = new NetworkAdapter(result);

    // Identify the adapter you wish to disable here. 
    // In particular, check the AdapterType and 
    // Description properties.

    // Here, we're selecting the LAN adapters.
    if (adapter.AdapterType.Equals("Ethernet 802.3")) 
    {
        adapter.Disable();
    }
}&lt;/pre&gt;
&lt;p&gt;
Don't forget to add a reference to &lt;b&gt;System.Management.dll&lt;/b&gt;!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=9a2d5a26-1485-49db-8f67-7931b2088658" /&gt;</description>
      <comments>http://blog.opennetcf.com/ncowburn/CommentView,guid,9a2d5a26-1485-49db-8f67-7931b2088658.aspx</comments>
      <category>.NET Framework</category>
      <category>HOWTO</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/ncowburn/Trackback.aspx?guid=c157733d-c758-4ca7-ab31-8a23d39e3b23</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/ncowburn/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/ncowburn/PermaLink,guid,c157733d-c758-4ca7-ab31-8a23d39e3b23.aspx</pingback:target>
      <dc:creator>Neil Cowburn</dc:creator>
      <wfw:comment>http://blog.opennetcf.com/ncowburn/CommentView,guid,c157733d-c758-4ca7-ab31-8a23d39e3b23.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/ncowburn/SyndicationService.asmx/GetEntryCommentsRss?guid=c157733d-c758-4ca7-ab31-8a23d39e3b23</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A little later than I intended, but here is the transcript to Smart Device Development
chat from May 13, 2008: <a href="http://opennetcf.com/chats/2008-05-13.html">Read
it here</a></p>
        <img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=c157733d-c758-4ca7-ab31-8a23d39e3b23" />
      </body>
      <title>Chat Transcript: May 13, 2008 - Smart Device Development Chat</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/ncowburn/PermaLink,guid,c157733d-c758-4ca7-ab31-8a23d39e3b23.aspx</guid>
      <link>http://blog.opennetcf.com/ncowburn/2008/06/16/ChatTranscriptMay132008SmartDeviceDevelopmentChat.aspx</link>
      <pubDate>Mon, 16 Jun 2008 16:41:58 GMT</pubDate>
      <description>&lt;p&gt;
A little later than I intended, but here is the transcript to Smart Device Development
chat from May 13, 2008: &lt;a href="http://opennetcf.com/chats/2008-05-13.html"&gt;Read
it here&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=c157733d-c758-4ca7-ab31-8a23d39e3b23" /&gt;</description>
      <comments>http://blog.opennetcf.com/ncowburn/CommentView,guid,c157733d-c758-4ca7-ab31-8a23d39e3b23.aspx</comments>
      <category>Mobility/Embedded</category>
      <category>OpenNETCF</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/ncowburn/Trackback.aspx?guid=44952503-2a1e-41d3-a301-3da2cf7fc936</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/ncowburn/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/ncowburn/PermaLink,guid,44952503-2a1e-41d3-a301-3da2cf7fc936.aspx</pingback:target>
      <dc:creator>Neil Cowburn</dc:creator>
      <wfw:comment>http://blog.opennetcf.com/ncowburn/CommentView,guid,44952503-2a1e-41d3-a301-3da2cf7fc936.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/ncowburn/SyndicationService.asmx/GetEntryCommentsRss?guid=44952503-2a1e-41d3-a301-3da2cf7fc936</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-047037733X.html">
          <img src="http://blog.opennetcf.com/ncowburn/content/binary/SamBook.jpg" border="0" style="float: left; padding-right: 10px;" />
        </a>
        <p>
I was browsing around over lunch when I came across an upcoming title from Wrox that
I thought might be interesting to someone out there. 
</p>
        <p>
The book, being writing by <a href="http://www.embeddedpc.net/">Samuel Phung</a> of <a href="http://www.icop.com.tw/">ICOP</a>,
is titled <a href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-047037733X.html">Professional
Microsoft Embedded CE 6.0</a>. A book like this is sorely needed as most of the knowledge
exists primarily in the embedded newsgroup or scattered around in a handful of blogs. 
</p>
        <p>
The 20-chapter book will cover everything from creating an image to development in
C# and VB.NET, as well as C++ and is scheduled to be released in November. Wrox have
made <a href="http://embeddedce60.wrox.com/wiki">a number of chapters available</a> through
their Wrox First subscription service.
</p>
        <img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=44952503-2a1e-41d3-a301-3da2cf7fc936" />
      </body>
      <title>Book: Professional Microsoft Embedded CE 6.0</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/ncowburn/PermaLink,guid,44952503-2a1e-41d3-a301-3da2cf7fc936.aspx</guid>
      <link>http://blog.opennetcf.com/ncowburn/2008/06/06/BookProfessionalMicrosoftEmbeddedCE60.aspx</link>
      <pubDate>Fri, 06 Jun 2008 14:03:39 GMT</pubDate>
      <description>&lt;a href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-047037733X.html"&gt;&lt;img src="http://blog.opennetcf.com/ncowburn/content/binary/SamBook.jpg" border="0" style="float: left; padding-right: 10px;"&gt;&lt;/a&gt;
&lt;p&gt;
I was browsing around over lunch when I came across an upcoming title from Wrox that
I thought might be interesting to someone out there. 
&lt;/p&gt;
&lt;p&gt;
The book, being writing by &lt;a href="http://www.embeddedpc.net/"&gt;Samuel Phung&lt;/a&gt; of &lt;a href="http://www.icop.com.tw/"&gt;ICOP&lt;/a&gt;,
is titled &lt;a href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-047037733X.html"&gt;Professional
Microsoft Embedded CE 6.0&lt;/a&gt;. A book like this is sorely needed as most of the knowledge
exists primarily in the embedded newsgroup or scattered around in a handful of blogs. 
&lt;/p&gt;
&lt;p&gt;
The 20-chapter book will cover everything from creating an image to development in
C# and VB.NET, as well as C++ and is scheduled to be released in November. Wrox have
made &lt;a href="http://embeddedce60.wrox.com/wiki"&gt;a number of chapters available&lt;/a&gt; through
their Wrox First subscription service.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=44952503-2a1e-41d3-a301-3da2cf7fc936" /&gt;</description>
      <comments>http://blog.opennetcf.com/ncowburn/CommentView,guid,44952503-2a1e-41d3-a301-3da2cf7fc936.aspx</comments>
      <category>Books</category>
      <category>Mobility/Embedded</category>
      <category>OpenNETCF</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/ncowburn/Trackback.aspx?guid=521bb4c6-6a12-4753-aa7f-8972ac26b4f0</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/ncowburn/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/ncowburn/PermaLink,guid,521bb4c6-6a12-4753-aa7f-8972ac26b4f0.aspx</pingback:target>
      <dc:creator>Neil Cowburn</dc:creator>
      <wfw:comment>http://blog.opennetcf.com/ncowburn/CommentView,guid,521bb4c6-6a12-4753-aa7f-8972ac26b4f0.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/ncowburn/SyndicationService.asmx/GetEntryCommentsRss?guid=521bb4c6-6a12-4753-aa7f-8972ac26b4f0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In a comment on <a href="http://blog.opennetcf.com/ncowburn/2008/06/03/HOWTORetrieveTheICCIDUsingTheSIMManagerAPIs.aspx"><i>HOW-TO:
Retrieve the ICC-ID using the SIM Manager APIs</i></a>, Paul requested some help in
translating the VB code to C#. Here it is in all its glory.
</p>
        <p>
P/Invoke prototypes:
</p>
        <pre name="code" class="csharp">[DllImport("cellcore.dll")]
static extern int SimInitialize (
            uint dwFlags, 
            IntPtr lpfnCallback, 
            uint dwParam, 
            ref IntPtr lphSim);

[DllImport("cellcore.dll")]
static extern int SimDeinitialize (IntPtr hSim);

[DllImport("cellcore.dll")]
static extern int SimReadRecord (
            IntPtr hSim, 
            uint dwAddress, 
            uint dwRecordType,	
            uint dwIndex, 
            byte[] lpData, 
            uint dwBufferSize, 
            ref int dwSize);</pre>
        <p>
Constants:
</p>
        <pre name="code" class="csharp">const int EF_ICCID = 0x2FE2;
const int SIM_RECORDTYPE_TRANSPARENT = 0x1;</pre>
        <p>
Implementation:
</p>
        <pre name="code" class="csharp">IntPtr hSim;
byte[] iccid = new byte[10];
int zero = 0;

SimInitialize (0, IntPtr.Zero, 0, ref hSim);

SimReadRecord (hSim, 
            EF_ICCID, 
            SIM_RECORDTYPE_TRANSPARENT, 
            0, 
            iccid, 
            (uint)iccid.Length, 
            ref zero);

SimDeinitalize (hSim);</pre>
        <img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=521bb4c6-6a12-4753-aa7f-8972ac26b4f0" />
      </body>
      <title>Follow-up: Retrieve the ICCID in C#</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/ncowburn/PermaLink,guid,521bb4c6-6a12-4753-aa7f-8972ac26b4f0.aspx</guid>
      <link>http://blog.opennetcf.com/ncowburn/2008/06/04/FollowupRetrieveTheICCIDInC.aspx</link>
      <pubDate>Wed, 04 Jun 2008 15:07:39 GMT</pubDate>
      <description>&lt;p&gt;
In a comment on &lt;a href="http://blog.opennetcf.com/ncowburn/2008/06/03/HOWTORetrieveTheICCIDUsingTheSIMManagerAPIs.aspx"&gt;&lt;i&gt;HOW-TO:
Retrieve the ICC-ID using the SIM Manager APIs&lt;/i&gt;&lt;/a&gt;, Paul requested some help in
translating the VB code to C#. Here it is in all its glory.
&lt;/p&gt;
&lt;p&gt;
P/Invoke prototypes:
&lt;/p&gt;
&lt;pre name="code" class="csharp"&gt;[DllImport("cellcore.dll")]
static extern int SimInitialize (
            uint dwFlags, 
            IntPtr lpfnCallback, 
            uint dwParam, 
            ref IntPtr lphSim);

[DllImport("cellcore.dll")]
static extern int SimDeinitialize (IntPtr hSim);

[DllImport("cellcore.dll")]
static extern int SimReadRecord (
            IntPtr hSim, 
            uint dwAddress, 
            uint dwRecordType,	
            uint dwIndex, 
            byte[] lpData, 
            uint dwBufferSize, 
            ref int dwSize);&lt;/pre&gt;
&lt;p&gt;
Constants:
&lt;/p&gt;
&lt;pre name="code" class="csharp"&gt;const int EF_ICCID = 0x2FE2;
const int SIM_RECORDTYPE_TRANSPARENT = 0x1;&lt;/pre&gt;
&lt;p&gt;
Implementation:
&lt;/p&gt;
&lt;pre name="code" class="csharp"&gt;IntPtr hSim;
byte[] iccid = new byte[10];
int zero = 0;

SimInitialize (0, IntPtr.Zero, 0, ref hSim);

SimReadRecord (hSim, 
            EF_ICCID, 
            SIM_RECORDTYPE_TRANSPARENT, 
            0, 
            iccid, 
            (uint)iccid.Length, 
            ref zero);

SimDeinitalize (hSim);&lt;/pre&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=521bb4c6-6a12-4753-aa7f-8972ac26b4f0" /&gt;</description>
      <comments>http://blog.opennetcf.com/ncowburn/CommentView,guid,521bb4c6-6a12-4753-aa7f-8972ac26b4f0.aspx</comments>
      <category>.NET Compact Framework</category>
      <category>HOWTO</category>
      <category>OpenNETCF</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/ncowburn/Trackback.aspx?guid=309b8b8e-ebc7-4078-a8ba-f174761ea7af</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/ncowburn/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/ncowburn/PermaLink,guid,309b8b8e-ebc7-4078-a8ba-f174761ea7af.aspx</pingback:target>
      <dc:creator>Neil Cowburn</dc:creator>
      <wfw:comment>http://blog.opennetcf.com/ncowburn/CommentView,guid,309b8b8e-ebc7-4078-a8ba-f174761ea7af.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/ncowburn/SyndicationService.asmx/GetEntryCommentsRss?guid=309b8b8e-ebc7-4078-a8ba-f174761ea7af</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <title>HOW-TO: Retrieve the ICC-ID using the SIM Manager APIs</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/ncowburn/PermaLink,guid,309b8b8e-ebc7-4078-a8ba-f174761ea7af.aspx</guid>
      <link>http://blog.opennetcf.com/ncowburn/2008/06/03/HOWTORetrieveTheICCIDUsingTheSIMManagerAPIs.aspx</link>
      <pubDate>Tue, 03 Jun 2008 22:06:39 GMT</pubDate>
      <description>&lt;p&gt;
Today, we had a &lt;a href="http://community.opennetcf.com/forums/p/10772/65429.aspx#65429" target="_new"&gt;question&lt;/a&gt; in
the &lt;a href="http://community.opennetcf.com/forums/" target="_new"&gt;forums&lt;/a&gt; about
how to retrieve the &lt;a href="http://en.wikipedia.org/wiki/ICCID" target="_new"&gt;ICCID&lt;/a&gt; from
the SIM card in a Windows Mobile device. 
&lt;/p&gt;
&lt;p&gt;
A SIM card comprises of a microcontroller, ROM storage for programs and EEPROM storage
for various bits of information like the IMSI, network-specific subscriber data and
security information. The layout of the SIM file system on the EEPROM is fairly basic,
consisting of a master file storing two dedicated files, each of which contain elementary
files. These elementary files hold the GSM data, with each elementary file containing
just one record. A record in this instance could be a phone book or the IMSI. One
such record is the ICCID (also known as the SIM Serial Number, SSN) and you may know
it as is the 19-digit number printed on the plastic housing surrounding the SIM module. 
&lt;/p&gt;
&lt;p&gt;
I did a little bit of research this evening and it turns out it's not too difficult
to retrieve this number and you can use the &lt;a href="http://msdn.microsoft.com/en-us/library/aa458492.aspx"&gt;SIM
Manager API&lt;/a&gt; to do it. The 3 functions in the SIM Manager API that we are interested
in are &lt;b&gt;SimInitialize&lt;/b&gt;, &lt;b&gt;SimDeinitialize&lt;/b&gt;, and &lt;b&gt;SimReadRecord&lt;/b&gt;.
&lt;/p&gt;
&lt;p style="padding: 10px; border: 2px solid #ff9; background: #fff9d7"&gt;
&lt;b&gt;SECURITY NOTE&lt;/b&gt;
&lt;br /&gt;
&lt;br /&gt;
SimReadRecord is a privileged function. You either need to lower the security configuration
on your device to &lt;i&gt;Prompt One Tier&lt;/i&gt; or lower using the Device Security Manager,
or sign your code with a privileged certificate. 
&lt;/p&gt;
&lt;p&gt;
The P/Invoke prototypes for these functions are pretty self-explanatory and don't
require any complex marshaling. Here they are in all their glory:
&lt;/p&gt;
&lt;!-- P/Invoke Sigs --&gt;
&lt;pre name="code" class="vb.net"&gt;&amp;lt;DllImport("cellcore.dll")&amp;gt; _
Shared Function SimInitialize( _
        ByVal dwFlags As Integer, _
        ByVal lpfnCallback As IntPtr, _
        ByVal dwParam As Integer, _
        ByRef lphSim As IntPtr) As Integer
End Function

&amp;lt;DllImport("cellcore.dll")&amp;gt; _
Shared Function SimDeinitialize( _
        ByVal hSim As IntPtr) As Integer
End Function

&amp;lt;DllImport("cellcore.dll")&amp;gt; _
Shared Function SimReadRecord( _
        ByVal hSim As IntPtr, _
        ByVal dwAddress As Integer, _
        ByVal dwRecordType As Integer, _
        ByVal dwIndex As Integer, _
        ByVal lpData() As Byte, _
        ByVal dwBufferSize As Integer, _
        ByRef dwSize As Integer) As Integer
End Function&lt;/pre&gt;
&lt;p&gt;
The key to retrieving the ICCID is the call to &lt;b&gt;SimReadRecord&lt;/b&gt;. This will allow
us to retrieve a elementary file from the SIM's EEPROM. SimReadRecord takes an address
of the record we want to read. This address is defined as &lt;b&gt;EF_ICCID&lt;/b&gt; below:
&lt;/p&gt;
&lt;!-- Constants --&gt;
&lt;pre name="code" class="vb.net"&gt;Dim EF_ICCID As Integer = &amp;H2FE2
Dim SIM_RECORDTYPE_TRANSPARENT As Integer = 1&lt;/pre&gt;
&lt;p&gt;
With the infrastructure code out of the way, we're now ready to execute the sequence
to retrieve the ICCID.
&lt;/p&gt;
&lt;!-- Implementation --&gt;
&lt;pre name="code" class="vb.net"&gt;Dim hSim As IntPtr
Dim iccid(9) As Byte

SimInitialize(0, IntPtr.Zero, 0, hSim)

SimReadRecord(hSim, _
              EF_ICCID, _
              SIM_RECORDTYPE_TRANSPARENT, _
              0, _
              iccid, _
              iccid.Length, _
              0)

SimDeinitialize(hSim)

Dim SimSerialNumber As String = FormatAsSimString(iccid)&lt;/pre&gt;
&lt;p&gt;
&lt;b&gt;FormatAsSimString&lt;/b&gt; is a method that I wrote to convert the ICCID byte array
into the same format as printed on the SIM card. SimSerialNumber will be formatted
string that looks something like this: 
&lt;p&gt;
&lt;p&gt;
111111 22222 3333 4444
&lt;/p&gt;
&lt;p&gt;
If you compare the bytes in the ICCID array to the digits printed on the SIM card,
you'll note they don't quite match up. This is because the ICCID array is an array
of 4-bit unsigned integers in little endian order. For example, if the first 6 digits
of your ICCID is 894412, they will appear as 0x98, 0x44, 0x21 in the byte array. The
helper method below will convert a pair of 4-bit integers (i.e, a byte) into a string. 
&lt;/p&gt;
&lt;!-- 4-bit integer Endian conversion --&gt;
&lt;pre name="code" class="vb.net"&gt;Shared Function ConvertInt4PairToString(ByVal byteValue As Byte) As String
    Return ((byteValue &amp;lt;&amp;lt; 4) &amp;gt;&amp;gt; 4) &amp;amp; (byteValue &amp;gt;&amp;gt; 4)
End Function
&lt;/pre&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=309b8b8e-ebc7-4078-a8ba-f174761ea7af" /&gt;</description>
      <comments>http://blog.opennetcf.com/ncowburn/CommentView,guid,309b8b8e-ebc7-4078-a8ba-f174761ea7af.aspx</comments>
      <category>.NET Compact Framework</category>
      <category>HOWTO</category>
      <category>OpenNETCF</category>
    </item>
    <item>
      <trackback:ping>http://blog.opennetcf.com/ncowburn/Trackback.aspx?guid=4e0f3ae6-97db-4ecb-8c15-931430cfa484</trackback:ping>
      <pingback:server>http://blog.opennetcf.com/ncowburn/pingback.aspx</pingback:server>
      <pingback:target>http://blog.opennetcf.com/ncowburn/PermaLink,guid,4e0f3ae6-97db-4ecb-8c15-931430cfa484.aspx</pingback:target>
      <dc:creator>Neil Cowburn</dc:creator>
      <wfw:comment>http://blog.opennetcf.com/ncowburn/CommentView,guid,4e0f3ae6-97db-4ecb-8c15-931430cfa484.aspx</wfw:comment>
      <wfw:commentRss>http://blog.opennetcf.com/ncowburn/SyndicationService.asmx/GetEntryCommentsRss?guid=4e0f3ae6-97db-4ecb-8c15-931430cfa484</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Remember that I mentioned <a href="http://blog.opennetcf.com/ncowburn/2008/05/01/ElusiveStyleCopIsToBeReleasedToThePublic.aspx">Microsoft
were preparing to release StyleCop to the masses</a>? Well, it's now <a href="http://blogs.msdn.com/sourceanalysis/archive/2008/05/23/announcing-the-release-of-microsoft-source-analysis.aspx">available
for download</a>.
</p>
        <img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=4e0f3ae6-97db-4ecb-8c15-931430cfa484" />
      </body>
      <title>Source Analysis for C#</title>
      <guid isPermaLink="false">http://blog.opennetcf.com/ncowburn/PermaLink,guid,4e0f3ae6-97db-4ecb-8c15-931430cfa484.aspx</guid>
      <link>http://blog.opennetcf.com/ncowburn/2008/05/23/SourceAnalysisForC.aspx</link>
      <pubDate>Fri, 23 May 2008 18:44:43 GMT</pubDate>
      <description>&lt;p&gt;
Remember that I mentioned &lt;a href="http://blog.opennetcf.com/ncowburn/2008/05/01/ElusiveStyleCopIsToBeReleasedToThePublic.aspx"&gt;Microsoft
were preparing to release StyleCop to the masses&lt;/a&gt;? Well, it's now &lt;a href="http://blogs.msdn.com/sourceanalysis/archive/2008/05/23/announcing-the-release-of-microsoft-source-analysis.aspx"&gt;available
for download&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.opennetcf.com/ncowburn/aggbug.ashx?id=4e0f3ae6-97db-4ecb-8c15-931430cfa484" /&gt;</description>
      <comments>http://blog.opennetcf.com/ncowburn/CommentView,guid,4e0f3ae6-97db-4ecb-8c15-931430cfa484.aspx</comments>
      <category>OpenNETCF</category>
      <category>VS 2008</category>
    </item>
  </channel>
</rss>