<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bee Eee Blog &#187; coding</title>
	<atom:link href="http://blog.bee-eee.com/category/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bee-eee.com</link>
	<description>-- C# hints and tips</description>
	<lastBuildDate>Wed, 23 Dec 2009 19:00:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>WCF Resolving error &#8216;The caller was not authenticated by the service.&#8217;</title>
		<link>http://blog.bee-eee.com/2009/09/17/wcf-resolving-error-the-caller-was-not-authenticated-by-the-service/</link>
		<comments>http://blog.bee-eee.com/2009/09/17/wcf-resolving-error-the-caller-was-not-authenticated-by-the-service/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 17:49:10 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://blog.bee-eee.com/?p=79</guid>
		<description><![CDATA[I ran across an easy way to get wsHttpBinding to work on a remote machine.  This involves just a little bit of code on the client side to complete the authentication. VPortalDataServiceClient client = new VPortalDataServiceClient(); client.ClientCredentials.Windows.ClientCredential.UserName = "btomas"; client.ClientCredentials.Windows.ClientCredential.Password = "password123"; The UserName is the windows account user name that is hosting the service. [...]]]></description>
			<content:encoded><![CDATA[<p>I ran across an easy way to get wsHttpBinding to work on a remote machine.  This involves just a little bit of code on the client side to complete the authentication.</p>
<pre class="code">                VPortalDataServiceClient client = new VPortalDataServiceClient();
                client.ClientCredentials.Windows.ClientCredential.UserName = "btomas";
                client.ClientCredentials.Windows.ClientCredential.Password = "password123";</pre>
<p>The UserName is the windows account user name that is hosting the service.  This user may just need to be one on the domain that the machine can see &#8212; not exactly sure though.  And the Password is the password of that user.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bee-eee.com/2009/09/17/wcf-resolving-error-the-caller-was-not-authenticated-by-the-service/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>c# Getting a nullable attribute to serialize to xml</title>
		<link>http://blog.bee-eee.com/2009/07/23/c-getting-a-nullable-attribute-to-serialize-to-xml/</link>
		<comments>http://blog.bee-eee.com/2009/07/23/c-getting-a-nullable-attribute-to-serialize-to-xml/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 15:55:12 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[c# coding GUI]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[linq]]></category>

		<guid isPermaLink="false">http://blog.bee-eee.com/?p=76</guid>
		<description><![CDATA[It isn&#8217;t straight forward to get a nullable field to serialize. Technically it isn&#8217;t supported. But I just discovered a way today. You see null strings are supported. The idea is to ignore the real nullable property while substituting the string version as follows: [XmlRoot("Comment")] public class Comment { [XmlIgnore] public DateTime? CommentTime { get; [...]]]></description>
			<content:encoded><![CDATA[<p>It isn&#8217;t straight forward to get a nullable field to serialize.  Technically it isn&#8217;t supported.  But I just discovered a way today.  You see null strings are supported.  The idea is to ignore the real nullable property while substituting the string version as follows:</p>
<pre class="code">
    [XmlRoot("Comment")]
    public class Comment
    {
        [XmlIgnore]
        public DateTime? CommentTime { get; set; }

        [XmlAttribute("CommentTime")]
        public string CommentTimeStr
        {
            get
            {
                return (CommentTime.HasValue) ? CommentTime.Value.ToString() : null;
            }

            set
            {
                if (string.IsNullOrEmpty(value))
                    CommentTime = null;
                else
                    CommentTime = DateTime.Parse(value);
            }
        }
  }
</pre>
<p>Now it can be serialized.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bee-eee.com/2009/07/23/c-getting-a-nullable-attribute-to-serialize-to-xml/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>c# finding those blasted predefined IEqualityComparer classes!</title>
		<link>http://blog.bee-eee.com/2009/04/14/c-finding-those-blasted-predefined-iequalitycomparer-classes/</link>
		<comments>http://blog.bee-eee.com/2009/04/14/c-finding-those-blasted-predefined-iequalitycomparer-classes/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 17:28:27 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://blog.bee-eee.com/?p=74</guid>
		<description><![CDATA[Why there isn&#8217;t any reference in the IEqualityComparer documentation to pre-implmented classes that override the function I don&#8217;t know. But here&#8217;s one for string comparisons: StringComparer This static class contains many different predefined IEqualityComparer instances to be used in functions like &#8220;Contains&#8221;. Enjoy.]]></description>
			<content:encoded><![CDATA[<p>Why there isn&#8217;t any reference in the IEqualityComparer documentation to pre-implmented classes that override the function I don&#8217;t know.</p>
<p>But here&#8217;s one for string comparisons:</p>
<pre class="code">
StringComparer
</pre>
<p>This static class contains many different predefined IEqualityComparer instances to be used in functions like &#8220;Contains&#8221;.  Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bee-eee.com/2009/04/14/c-finding-those-blasted-predefined-iequalitycomparer-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c# Getting your machine&#8217;s IP addresses.</title>
		<link>http://blog.bee-eee.com/2009/03/17/c-getting-your-machines-ip-addresses/</link>
		<comments>http://blog.bee-eee.com/2009/03/17/c-getting-your-machines-ip-addresses/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 15:35:30 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[c# coding GUI]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[networking]]></category>

		<guid isPermaLink="false">http://blog.bee-eee.com/?p=69</guid>
		<description><![CDATA[Here is the simple way to get all of the IP addresses for you machine. This code filters out everything but IPv4 address, but to truly get everything just remove the if statement. string hostName = Dns.GetHostName(); var addrs = Dns.GetHostAddresses(hostName); bool hasIP = false; for (int i = 0; i < addrs.Length; i++) { [...]]]></description>
			<content:encoded><![CDATA[<p>Here is the simple way to get all of the IP addresses for you machine.  This code filters out everything but IPv4 address, but to truly get everything just remove the if statement.</p>
<pre class="code">
string hostName = Dns.GetHostName();
var addrs = Dns.GetHostAddresses(hostName);
bool hasIP = false;
for (int i = 0; i < addrs.Length; i++)
{
    IPAddress addr = addrs[i];
    if (addr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
    {
        si.DataIP = addr.ToString();
        hasIP = true;
        break;
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.bee-eee.com/2009/03/17/c-getting-your-machines-ip-addresses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MS SQL Delete all the data from the tables.</title>
		<link>http://blog.bee-eee.com/2008/11/21/ms-sql-delete-all-the-data-from-the-tables/</link>
		<comments>http://blog.bee-eee.com/2008/11/21/ms-sql-delete-all-the-data-from-the-tables/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 18:24:45 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[mmsql]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://blog.bee-eee.com/?p=54</guid>
		<description><![CDATA[Here&#8217;s a helpful, and perhaps dangerous, little tidbit of code for SQL Server 2005. It deletes all of the data from all of the tables. To be completely effective, the command may need to be run more than once because of foreign keys. Basically run it until there aren&#8217;t any errors. Then the db is [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a helpful, and perhaps dangerous, little tidbit of code for SQL Server 2005.  It deletes all of the data from all of the tables.  To be completely effective, the command may need to be run more than once because of foreign keys.  Basically run it until there aren&#8217;t any errors.  Then the db is clean and empty of all data.</p>
<p><code>exec sp_MSForeachTable "delete from ?"</code></p>
<p>the sp_MSForeachTable is a very useful system stored procedure.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bee-eee.com/2008/11/21/ms-sql-delete-all-the-data-from-the-tables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c# linq to sql string comparisons</title>
		<link>http://blog.bee-eee.com/2008/10/27/c-linq-to-sql-string-comparisons/</link>
		<comments>http://blog.bee-eee.com/2008/10/27/c-linq-to-sql-string-comparisons/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 20:21:02 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://blog.bee-eee.com/?p=48</guid>
		<description><![CDATA[There are four different string comparisons for handling string fields with linq to sql.  They are as follows: The exact macth DataContext dc = new DataContext(...) var results = from row in dc.table where row.string_column == "Exact Match" select row; Begins With: DataContext dc = new DataContext(...) var results = from row in dc.table where [...]]]></description>
			<content:encoded><![CDATA[<p>There are four different string comparisons for handling string fields with linq to sql.  They are as follows:</p>
<p><strong>The exact macth</strong></p>
<pre class="code">DataContext dc = new DataContext(...)
var results =
  from row in dc.table
  where row.string_column == "Exact Match"
  select row;</pre>
<p><strong>Begins With:</strong></p>
<pre class="code">DataContext dc = new DataContext(...)
var results =
  from row in dc.table
  where row.string_column.StartsWith("Ex")
  select row;</pre>
<p>produces an sql match string &#8220;Ex%&#8221;</p>
<p><strong>Contains</strong></p>
<pre class="code">DataContext dc = new DataContext(...)
var results =
  from row in dc.table
  where row.string_column.Contains("Ex")
  select row;</pre>
<p>Which is equivalent to &#8220;%Ex%&#8221;</p>
<p><strong>Ends With</strong></p>
<pre class="code">DataContext dc = new DataContext(...)
var results =
  from row in dc.table
  where row.string_column.EndsWith("Ex")
  select row;</pre>
<p>Which is equivalent to &#8220;%Ex&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bee-eee.com/2008/10/27/c-linq-to-sql-string-comparisons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c# Reading the contents of a web page</title>
		<link>http://blog.bee-eee.com/2008/09/10/c-reading-the-contents-of-a-web-page/</link>
		<comments>http://blog.bee-eee.com/2008/09/10/c-reading-the-contents-of-a-web-page/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 16:13:07 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://blog.bee-eee.com/2008/09/10/c-reading-the-contents-of-a-web-page/</guid>
		<description><![CDATA[Reading the contents of a web page can be very useful.  Here&#8217;s some code I&#8217;m developing to read the historical stock prices from http://finance.google.com string uri = "http://finance.google.com/finance/historical?cid=667226&#38;startdate=Sep+9%2C+2007&#38;enddate=Sep+10%2C+2008&#38;output=csv"; WebRequest request = WebRequest.Create(uri); WebResponse response = request.GetResponse(); var stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("utf-8")); string page = reader.ReadToEnd(); There you go. Very simple [...]]]></description>
			<content:encoded><![CDATA[<p>Reading the contents of a web page can be very useful.  Here&#8217;s some code I&#8217;m developing to read the historical stock prices from http://finance.google.com</p>
<pre class="code">
string uri = "http://finance.google.com/finance/historical?cid=667226&amp;startdate=Sep+9%2C+2007&amp;enddate=Sep+10%2C+2008&amp;output=csv";
WebRequest request = WebRequest.Create(uri);
WebResponse response = request.GetResponse();
var stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
string page = reader.ReadToEnd();</pre>
<p>There you go.  Very simple isn&#8217;t it?  Just got to love .Net</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bee-eee.com/2008/09/10/c-reading-the-contents-of-a-web-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c# timing functions</title>
		<link>http://blog.bee-eee.com/2008/06/12/c-timing-functions/</link>
		<comments>http://blog.bee-eee.com/2008/06/12/c-timing-functions/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 15:25:29 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://blog.bee-eee.com/2008/06/12/c-timing-functions/</guid>
		<description><![CDATA[Here are some timing functions that come in the .Net framework.  I&#8217;ve used these for moderately accurate timing code &#8212; at least down to the millisecond level.  For any timing less than about 30 milliseconds these work much better than timer events piled on each other which tend to get inaccurate. int begin = System.Environment.TickCount [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some timing functions that come in the .Net framework.  I&#8217;ve used these for moderately accurate timing code &#8212; at least down to the millisecond level.  For any timing less than about 30 milliseconds these work much better than timer events piled on each other which tend to get inaccurate.</p>
<pre class="code">
int begin = System.Environment.TickCount
... do something
int end = System.Environment.TickCount
int elapsed = end - begin;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.bee-eee.com/2008/06/12/c-timing-functions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c# getting a list of files from a directory</title>
		<link>http://blog.bee-eee.com/2008/06/04/c-getting-a-list-of-files-from-a-directory/</link>
		<comments>http://blog.bee-eee.com/2008/06/04/c-getting-a-list-of-files-from-a-directory/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 17:21:40 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://blog.bee-eee.com/2008/06/04/c-getting-a-list-of-files-from-a-directory/</guid>
		<description><![CDATA[Here&#8217;s how to get an array of file descriptors (name and other information). System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(Program.DataDirectory); System.IO.FileInfo[] files = di.GetFiles("*.txt");]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s how to get an array of file descriptors (name and other information).</p>
<pre class="code">
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(Program.DataDirectory);
System.IO.FileInfo[] files = di.GetFiles("*.txt");
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.bee-eee.com/2008/06/04/c-getting-a-list-of-files-from-a-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c# getting the application directory.</title>
		<link>http://blog.bee-eee.com/2008/06/04/c-getting-the-application-directory/</link>
		<comments>http://blog.bee-eee.com/2008/06/04/c-getting-the-application-directory/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 16:39:24 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://blog.bee-eee.com/2008/06/04/c-getting-the-application-directory/</guid>
		<description><![CDATA[Getting the directory that the application is in at run-time is nice.  Here&#8217;s the code. string appDir = AppDomain.CurrentDomain.BaseDirectory;]]></description>
			<content:encoded><![CDATA[<p>Getting the directory that the application is in at run-time is nice.  Here&#8217;s the code.</p>
<pre class="code">
string appDir = AppDomain.CurrentDomain.BaseDirectory;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.bee-eee.com/2008/06/04/c-getting-the-application-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
