<?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>J-dee.com &#187; C#</title>
	<atom:link href="http://www.j-dee.com/category/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.j-dee.com</link>
	<description>Liverpool ASP.NET Developer - C#, jQuery, Js, Rails, SQL, Agile, OOP, Cool Web Tech</description>
	<lastBuildDate>Sat, 05 Dec 2009 10:29:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>AmpliFeeder Preview</title>
		<link>http://www.j-dee.com/2009/02/20/amplifeeder/</link>
		<comments>http://www.j-dee.com/2009/02/20/amplifeeder/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 17:22:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AmpliFeeder]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[MicroBlog]]></category>

		<guid isPermaLink="false">http://www.j-dee.com/?p=168</guid>
		<description><![CDATA[Mark Krynksy over at lifestreamblog.com has written a fantastic preview of my new open source lifestreaming platform: AmpliFeeder  that pretty much sums the project up entirely. The plan is to get the self hosted version to release a quickly as possible with the other versions ( including the hosted version ) rolling out towards the summer.
Mark [...]]]></description>
			<content:encoded><![CDATA[<p>Mark Krynksy over at <a title="lifestreamblog.com" href="http://lifestreamblog.com" target="_blank">lifestreamblog.com </a>has written a fantastic <a href="http://lifestreamblog.com/new-open-source-app-amplifeeder-brings-beautiful-visualizations-for-your-lifestream/" target="_blank">preview of my new open source lifestreaming platform: AmpliFeeder </a> that pretty much sums the project up entirely. The plan is to get the self hosted version to release a quickly as possible with the other versions ( including the hosted version ) rolling out towards the summer.</p>
<p>Mark provided me with some invaluable feedback that has pushed the release back a little, but the app will be so much better for it. From a technical point of view, the initial release is 90% jQuery and only 10% ASP.NET so knocking out alternate platform versions will be a breeze. I&#8217;ll keep this site updated with developments as they break but if you want to contact me instantly I&#8217;m always on Twitter @jonpauldavies. Here are a few more exclusive screen shots of what is to come.</p>
<p><a href="http://www.j-dee.com/wp-content/uploads/2009/02/admin_microblog.png"><img class="alignnone size-medium wp-image-169" title="admin_microblog" src="http://www.j-dee.com/wp-content/uploads/2009/02/admin_microblog-300x234.png" alt="admin_microblog" width="300" height="234" /></a><a href="http://www.j-dee.com/wp-content/uploads/2009/02/theme9.png"><img class="alignnone size-medium wp-image-170" title="theme9" src="http://www.j-dee.com/wp-content/uploads/2009/02/theme9-300x161.png" alt="theme9" width="300" height="161" /></a><br />
<a href="http://www.j-dee.com/wp-content/uploads/2009/02/theme1.png"><img class="alignnone size-medium wp-image-171" title="theme1" src="http://www.j-dee.com/wp-content/uploads/2009/02/theme1-300x161.png" alt="theme1" width="300" height="161" /></a><a href="http://www.j-dee.com/wp-content/uploads/2009/02/admin_channels.png"><img class="alignnone size-medium wp-image-172" title="admin_channels" src="http://www.j-dee.com/wp-content/uploads/2009/02/admin_channels-300x234.png" alt="admin_channels" width="300" height="234" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.j-dee.com/2009/02/20/amplifeeder/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Make a positive number a negative number in 1 line of C# code &#8211; A code quiz!</title>
		<link>http://www.j-dee.com/2008/07/16/make-a-positive-number-a-negative-number-in-1-line-of-c-code-a-code-quiz/</link>
		<comments>http://www.j-dee.com/2008/07/16/make-a-positive-number-a-negative-number-in-1-line-of-c-code-a-code-quiz/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 12:52:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.j-dee.com/2008/07/16/make-a-positive-number-a-negative-number-in-1-line-of-c-code-a-code-quiz/</guid>
		<description><![CDATA[Here are 4 methods, each one is meant to turn a positive number into a negative. 
public int ReturnMinusVersion1(int i)
{
    return -i;
}

public int ReturnMinusVersion2(int i)
{
    return --i -i +i;
}

public int ReturnMinusVersion3(int i)
{
    return ~i + 1;
}

public int ReturnMinusVersion4(int i)
{
    return i * -1;
}
The [...]]]></description>
			<content:encoded><![CDATA[<p>Here are 4 methods, each one is meant to turn a positive number into a negative. </p>
<pre class="code"><span style="color: blue">public int </span>ReturnMinusVersion1(<span style="color: blue">int </span>i)
{
    <span style="color: blue">return </span>-i;
}

<span style="color: blue">public int </span>ReturnMinusVersion2(<span style="color: blue">int </span>i)
{
    <span style="color: blue">return </span>--i -i +i;
}

<span style="color: blue">public int </span>ReturnMinusVersion3(<span style="color: blue">int </span>i)
{
    <span style="color: blue">return </span>~i + 1;
}

<span style="color: blue">public int </span>ReturnMinusVersion4(<span style="color: blue">int </span>i)
{
    <span style="color: blue">return </span>i * -1;
}</pre>
<p>The questions are:</p>
<p>Which methods compile?</p>
<p>Which methods produce the correct result?</p>
<p>Explain why the working methods work.</p>
<p>Which is best and why?</p>
<p>Any other cool ways of making a positive number a negative? Have fun!</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.j-dee.com%2f2008%2f07%2f16%2fmake-a-positive-number-a-negative-number-in-1-line-of-c-code-a-code-quiz%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.j-dee.com%2f2008%2f07%2f16%2fmake-a-positive-number-a-negative-number-in-1-line-of-c-code-a-code-quiz%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.j-dee.com/2008/07/16/make-a-positive-number-a-negative-number-in-1-line-of-c-code-a-code-quiz/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Super Lambda Bananas</title>
		<link>http://www.j-dee.com/2008/06/29/super-lambda-bananas/</link>
		<comments>http://www.j-dee.com/2008/06/29/super-lambda-bananas/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 08:30:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://www.j-dee.com/2008/06/29/super-lambda-bananas/</guid>
		<description><![CDATA[ I&#8217;m a big generic collection user and I can&#8217;t express how much the C# 3 Linq expressions have improved my coding experience, especially in the form of lambda syntax. I used to spend a lot of time trying to bend predicates to my will in order to pull the good stuff out of my [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://www.j-dee.com/wp-content/uploads/2008/06/302279198-06564a7141-m1.jpg" border="0" alt="302279198_06564a7141_m" width="106" height="80" align="left" /> I&#8217;m a big generic collection user and I can&#8217;t express how much the C# 3 Linq expressions have improved my coding experience, especially in the form of lambda syntax. I used to spend a lot of time trying to bend predicates to my will in order to pull the good stuff out of my collections, and some of the new expressions make this a thing of the past.</p>
<p>Some of the expressions do need a bit of extra thought to understand what is going on though. For example, what is the difference between .Where, .TakeWhile and .SkipWhile? They all return a subset of your collection, but what exactly do you get? Let&#8217;s investigate!</p>
<p>So say we start with this:</p>
<pre class="csharpcode"><span class="kwrd">string</span>[] names = {<span class="str">"dave"</span>, <span class="str">"dee"</span>, <span class="str">"dozy"</span>, <span class="str">"beaky"</span>,
<span class="str">"mick"</span>, <span class="str">"titch"</span>, <span class="str">"darius"</span>};

names.Where(name =&gt; name.StartsWith(<span class="str">"d"</span>));</pre>
<p> .Where will return &#8220;dave&#8221;, &#8220;dee&#8221;, &#8220;dozy&#8221; and &#8220;darius&#8221;, matching everything that starts with &#8216;d&#8217;. TakeWhile and SkipWhile are different though, working on your sequence <strong>only until a specified condition is deemed false</strong>. So&#8230;..</p>
<pre class="csharpcode">names.TakeWhile(name =&gt; name.StartsWith(<span class="str">"d"</span>));</pre>
<p>will return &#8220;dave&#8221;, &#8220;dee&#8221; and &#8220;dozy&#8221;: the search is called off when StartsWith(&#8221;d&#8221;) becomes false. Conversely</p>
<pre class="csharpcode">names.SkipWhile(name =&gt; name.StartsWith(<span class="str">"d"</span>));</pre>
<p> </p>
<p>will get you &#8220;beaky&#8221;, &#8220;mick&#8221;, &#8220;titch&#8221; and &#8220;darius&#8221;, skipping the items in the sequence until StartsWith(&#8221;d&#8221;) becomes false.</p>
<p>Try doing that with predicates!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.j-dee.com/2008/06/29/super-lambda-bananas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADO.NET Entity Framework Quickstart Tutorial</title>
		<link>http://www.j-dee.com/2008/06/03/adonet-entity-framework-quickstart-tutorial/</link>
		<comments>http://www.j-dee.com/2008/06/03/adonet-entity-framework-quickstart-tutorial/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 16:29:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[EntityFramework]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://www.j-dee.com/?p=104</guid>
		<description><![CDATA[The ADO.NET Entity framework received another update last week as part of the Visual Studio 2008 and .NET Framework 3.5 Service Pack 1 Beta, so to coincide with this I give you a quick run through to get you started. Being honest, if you have used an OR mapper in the past this will be [...]]]></description>
			<content:encoded><![CDATA[<p>The ADO.NET Entity framework received another update last week as part of the <a href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx" target="_blank">Visual Studio 2008 and .NET Framework 3.5 Service Pack 1 Beta</a>, so to coincide with this I give you a quick run through to get you started. Being honest, if you have used an OR mapper in the past this will be familiar territory. If not, this new implementation is a good place to start.</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.j-dee.com/wp-content/uploads/2008/06/screenshot11.jpg" border="0" alt="screenshot1" align="left" /> So to begin, create a new ASP.NET website, Add New item, and then choose ADO.NET Entity Data Model. Name it <strong>EntityModel.edmx</strong> and click <strong>Add</strong> to create a new model.</p>
<p>The Entity Data Model Wizard will pop up and give you a chance to configure your new model. For the purposes of this walk through, choose <strong>Generate from database</strong> and click <strong>Next</strong>.</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.j-dee.com/wp-content/uploads/2008/06/screenshot41.jpg" border="0" alt="screenshot4" align="right" /> Set up your data connection, I won&#8217;t go into this as it&#8217;s simple enough to figure out if you&#8217;ve never done it before. Click the checkbox to save entity connection settings into your web.config and name it <strong>MyEntities.</strong></p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.j-dee.com/wp-content/uploads/2008/06/screenshot61.jpg" border="0" alt="screenshot6" width="167" height="221" align="left" />The wizard will then tootle off and retrieve the names of all the tables, views and stored procedures in your database. Choose a table ( I&#8217;ve chosen a table from my DB called &#8216;Log&#8217; ) and name the Model Namespace <strong>MyModel</strong>.</p>
<p>Click <strong>Finish</strong> and the designer for your model will open. As a side note have a look at the Model Browser on the right hand side &#8211; it looks a bit &#8216;rendered&#8217; for want of a better description, as though it&#8217;s drawn via GDI+ compared to the Solution Explorer&#8230;.strange!</p>
<p>Now add a new web page and go into the code behind to start the real work. It&#8217;s just a simple bit of code to CRUD the Log entities in my database.</p>
<p><span style="color: #008000;"><br />
// instantiate a new Log entity<br />
</span>MyModel.<span style="color: #2b91af;">Log </span>log = <span style="color: #0000ff;">new </span>MyModel.<span style="color: #2b91af;">Log</span>();</p>
<p><span style="color: #008000;">// populate it&#8217;s properties<br />
</span>log.Date = <span style="color: #2b91af;">DateTime</span>.Now;<br />
log.Exception = <span style="color: #a31515;">&#8220;Test Exception&#8221;</span>;<br />
log.Level = <span style="color: #a31515;">&#8220;Test Level&#8221;</span>;<br />
log.Logger = <span style="color: #a31515;">&#8220;Test Logger&#8221;</span>;<br />
log.Message = <span style="color: #a31515;">&#8220;Test Message&#8221;</span>;<br />
log.Thread = <span style="color: #a31515;">&#8220;Test Thread&#8221;</span>;</p>
<p><span style="color: #008000;">//instantiate the entity &#8216;context&#8217; &#8211; the object used<br />
//as a &#8216;gateway&#8217; to the DB<br />
</span>MyModel.MyEntities entities = <span style="color: #0000ff;">new </span>MyModel.MyEntities();</p>
<p><span style="color: #008000;">// Save the new log entity to the DB<br />
</span>entities.AddToLog(log);<br />
entities.SaveChanges();</p>
<p><span style="color: #008000;">// Load it back via a little LINQ query<br />
// ( funny how you must use .First instead of .Single )<br />
</span>MyModel.<span style="color: #2b91af;">Log </span>loadedLog = entities.Log .Where(ent =&gt; ent.Level == <span style="color: #a31515;">&#8220;Test Level&#8221;</span>).First();</p>
<p><span style="color: #008000;">// make a change and save it back to the DB<br />
</span>loadedLog.Message = <span style="color: #a31515;">&#8220;Message has changed!&#8221;</span>;<br />
entities.SaveChanges();</p>
<p><span style="color: #008000;">// Finally delete the object from the DB<br />
</span>entities.DeleteObject(loadedLog);<br />
entities.SaveChanges();</p>
<p><strong>Notice how you have to call .SaveChanges() to persist back to the DB. That&#8217;s it! A super fast run through of CRUD with the ADO.NET Entity Framework! Enjoy!</strong> <br/> <br/><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.j-dee.com%2f2008%2f06%2f03%2fadonet-entity-framework-quickstart-tutorial%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.j-dee.com%2f2008%2f06%2f03%2fadonet-entity-framework-quickstart-tutorial%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.j-dee.com/2008/06/03/adonet-entity-framework-quickstart-tutorial/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Come and work for Qire in Liverpool</title>
		<link>http://www.j-dee.com/2008/06/03/come-and-work-for-qire-in-liverpool/</link>
		<comments>http://www.j-dee.com/2008/06/03/come-and-work-for-qire-in-liverpool/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 08:43:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.j-dee.com/?p=102</guid>
		<description><![CDATA[Fancy coming to work in Liverpool &#8211; European Capitol of Culture 2008 &#8211; to build the next generation of voice driven applications?
Qire is the acknowledged leader in intelligent voice messaging systems with many top notch public and private sector clients.
We create applications that manage security, business process and call centre automation via the power of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.qire.co.uk" target="_blank"><img class="alignleft size-medium wp-image-103" title="Qire" src="http://www.j-dee.com/wp-content/uploads/2008/06/logo21.jpg" alt="Qire Logo" width="287" height="154" /></a>Fancy coming to work in Liverpool &#8211; European Capitol of Culture 2008 &#8211; to build the next generation of voice driven applications?<br />
<a href="http://www.qire.co.uk" target="_blank">Qire</a> is the acknowledged leader in intelligent voice messaging systems with many top notch public and private sector clients.<br />
We create applications that manage security, business process and call centre automation via the power of ASP.NET and C# ( plus some other exciting technologies that you can learn on the job ). We are looking for a permanent mid/high level developer to join our small team of happy coders to help shape the future of telephony. You will be adept at asp.net c# sql, have good soft skills and want to work in a friendly and creative coding environment. If you are interested, send me note ( or even better a link to your CV) via the contact form on this site.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.j-dee.com/2008/06/03/come-and-work-for-qire-in-liverpool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Build Your Very Own VOIP Telecommunication Platform</title>
		<link>http://www.j-dee.com/2008/01/04/how-to-build-your-very-own-voip-telecommunication-platform/</link>
		<comments>http://www.j-dee.com/2008/01/04/how-to-build-your-very-own-voip-telecommunication-platform/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 22:31:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Telecommunications]]></category>
		<category><![CDATA[VOIP]]></category>

		<guid isPermaLink="false">http://www.j-dee.com/2008/01/04/how-to-build-your-very-own-voip-telecommunication-platform/</guid>
		<description><![CDATA[I thought Christmas was over, but it obviously isn&#8217;t. Some hardware arrived in the office this week &#8211; but not just any old hardware. For the price of a decent size family car, my employers ( the mighty Qire ) have bought me and the team everything we need to build our very own VOIP/ [...]]]></description>
			<content:encoded><![CDATA[<p>I thought Christmas was over, but it obviously isn&#8217;t. Some hardware arrived in the office this week &#8211; but not just any old hardware. <img border="0" align="left" width="216" src="http://www.j-dee.com/wp-content/uploads/2008/01/040120081721.jpg" alt="04012008172" height="162" style="border: 0px" />For the price of a decent size family car, my employers ( the mighty <a target="_blank" href="http://www.qire.co.uk">Qire</a> ) have bought me and the team everything we need to build our very own VOIP/ SIP/ IVR / VXML / CCXML telco!!!!</p>
<p>The kit is a development environment to enable us to build the worlds biggest and best Voice 2.0 telecommunication platform. It&#8217;s a reference architecture for us to get to grips with the finer points of SIP call initiation and interaction.</p>
<p><img border="0" align="right" width="97" src="http://www.j-dee.com/wp-content/uploads/2008/01/040120081711.jpg" alt="04012008171" height="130" style="border: 0px" />If you want to do the same, all you need is a handful of top flight super fast servers, some expensive text to speech, speech recognition licenses, a friendly SIP provider and some high spec military grade DSP boards.</p>
<p><img border="0" align="left" width="130" src="http://www.j-dee.com/wp-content/uploads/2008/01/040120081731.jpg" alt="04012008173" height="97" style="border: 0px" />It&#8217;s all powered by a custom build high performance C# management and delivery system that we have put together.</p>
<p>Once it is all working together, we will have a system that will give our clients access to the planets most advanced unified communications platform!</p>
<p>Exciting stuff I&#8217;m sure you will agree! Stay posted and I&#8217;ll keep the blog updated with our progress.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.j-dee.com/2008/01/04/how-to-build-your-very-own-voip-telecommunication-platform/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What an awesome idea!</title>
		<link>http://www.j-dee.com/2007/10/03/what-an-awesome-idea/</link>
		<comments>http://www.j-dee.com/2007/10/03/what-an-awesome-idea/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 16:02:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://www.j-dee.com/2007/10/03/what-an-awesome-idea/</guid>
		<description><![CDATA[Like most developers I&#8217;ve written a hell of a lot of code in my time: including lots of little utility classes to do things like send emails, validate bits and bobs, format currency etc. Well this enterprising chap has gathered together 5 years worth of his utility classes into 1 handy little library that he [...]]]></description>
			<content:encoded><![CDATA[<p>Like most developers I&#8217;ve written a hell of a lot of code in my time: including lots of little utility classes to do things like send emails, validate bits and bobs, format currency etc. Well <a target="_blank" href="http://james.newtonking.com/">this</a> enterprising chap has gathered together 5 years worth of his utility classes into 1 handy little library that he is sharing <a target="_blank" href="http://james.newtonking.com/archive/2007/10/02/utilities-net-1-0-released.aspx">here</a>. Thoroughly recommended!</p>
<p>Also, as a side note on cool little libraries, I&#8217;ve been messing about with the free version of <a target="_blank" href="http://www.fusioncharts.com/Free/Default.asp?gMenuItemId=1">FusionCharts</a>. They are great for little &#8216;dashboard&#8217; style reports where you don&#8217;t want to use a large reporting framework. Again, another addition to the toolkit that I&#8217;m happy to recommend.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.j-dee.com/2007/10/03/what-an-awesome-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# 3 Conversion Extension Method Library 1.0</title>
		<link>http://www.j-dee.com/2007/09/19/c-35-conversion-extension-method-library-10/</link>
		<comments>http://www.j-dee.com/2007/09/19/c-35-conversion-extension-method-library-10/#comments</comments>
		<pubDate>Wed, 19 Sep 2007 18:42:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.j-dee.com/2007/09/19/c-35-conversion-extension-method-library-10/</guid>
		<description><![CDATA[If you have had a chance to muck around with the new language features of C# 3 in the latest beta of Orcas, I&#8217;m sure you will be as much of a fan of extension methods as I am. The ability to package little &#8216;lumps&#8217; of functionality and add them onto objects that I use [...]]]></description>
			<content:encoded><![CDATA[<p>If you have had a chance to muck around with the new language features of C# 3 in the latest beta of Orcas, I&#8217;m sure you will be as much of a fan of <a target="_blank" href="http://weblogs.asp.net/scottgu/archive/2007/03/13/new-orcas-language-feature-extension-methods.aspx">extension methods</a> as I am. The ability to package little &#8216;lumps&#8217; of functionality and add them onto objects that I use every day is a lot of fun.</p>
<p>I use the .ToString() method habitually so I thought I&#8217;d build a little library to perform some other .ToWhatever methods on some of the basic datatypes. So for example, the String datatype has .ToBool, .ToInt32, . ToDecimal etc. extended into it. The int32 datatype has .ToChar, .ToFloat etc. etc. It&#8217;s a nice little utility class that I hope you will find of some use. Download it and have a little dig around to see what the library is capable of.</p>
<p>Also, I&#8217;ve added in a couple of string manipulations as extensions too.</p>
<p>To reverse a string we have string.Reverse, to proper case a string we have string.ProperCase ( so for example, &#8220;jon davies&#8221; becomes &#8220;Jon Davies&#8221; ). I&#8217;ve also added string.Left and string.Right extensions, just because VB has them and C# doesn&#8217;t!! string.Left(3) returns the first 3 characters in a string, string.Right(3) returns the last 3.</p>
<p>Anyway, it was a lot of fun writing this &#8211; I&#8217;m going to keep adding new useful extensions to the library, so don&#8217;t forget to bookmark this site and keep an eye out for updates.</p>
<p><em><strong>Edit:</strong> I&#8217;ve changed the name of the article thanks to the advice of posters on </em><a target="_blank" href="http://www.dotnetkicks.com/csharp/C_3_5_Conversion_Extension_Method_Library_1_0"><em>DotNetKicks </em></a><em>and </em><a target="_blank" href="http://softwarex-nz.blogspot.com/"><em>James </em></a><em>to be 3.0 centric not 3.5. Apparently there is a bit of confusion as to the naming of the new updates, so it&#8217;s the .NET framework 3.5 and C# 3. Thanks for the tip off!</em></p>
<p>[download#1#image]<br />
<a href="http://www.dotnetkicks.com/kick/?url=http://www.j-dee.com/2007/09/19/c-35-conversion-extension-method-library-10/"><img border="0" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.j-dee.com/2007/09/19/c-35-conversion-extension-method-library-10/" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.j-dee.com/2007/09/19/c-35-conversion-extension-method-library-10/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Productivity tools for the busy C# developer</title>
		<link>http://www.j-dee.com/2007/08/02/productivity-tools-for-the-busy-c-developer/</link>
		<comments>http://www.j-dee.com/2007/08/02/productivity-tools-for-the-busy-c-developer/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 19:40:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://www.j-dee.com/2007/08/02/productivity-tools-for-the-busy-c-developer/</guid>
		<description><![CDATA[There&#8217;s no getting away from it&#8230;.I&#8217;m a bit of an add-in junky. The visceral thrill of a new bit of productivity kit is one of life&#8217;s greatest pleasures. Here&#8217;s a short list of tools I couldn&#8217;t live without.
GhostDoc &#8211; A VSNET addin that generates XML comments based on your method and class names. Normally the [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s no getting away from it&#8230;.I&#8217;m a bit of an add-in junky. The visceral thrill of a new bit of productivity kit is one of life&#8217;s greatest pleasures. Here&#8217;s a short list of tools I couldn&#8217;t live without.</p>
<p><a target="_blank" href="http://www.roland-weigelt.de/ghostdoc/">GhostDoc</a> &#8211; A VSNET addin that generates XML comments based on your method and class names. Normally the results are pretty good and only require a minor amount of tweaking</p>
<p><a target="_blank" href="http://desktop.google.com/">Google Desktop</a> &#8211; Switch off all the visual panels and stick with the utter magic of the &#8216;double ctrl&#8217; search box.</p>
<p><a target="_blank" href="http://www.launchy.net/">Launchy</a> &#8211; A new one on me. Very like the &#8216;double ctrl&#8217; Google function but for launching apps and navigating your file structure. You can even coerce it into doing much cleverer things as outlined here on <a target="_blank" href="http://lifehacker.com/software/hack-attack/take-launchy-beyond-application-launching-284127.php">Lifehacker</a>.</p>
<p><a target="_blank" href="http://windirstat.info/">WinDirStat</a> &#8211; Other disk visualization apps just can&#8217;t compete. Bow down to the master.</p>
<p><a target="_blank" href="http://www.subsonicproject.com/">Subsonic</a> &#8211; This bit of kit entirely changed the way I prototype applications. The ability to just throw away large chunks of code and then re-generate new versions is so liberating I can&#8217;t explain. It makes entirely usable Active Record based objects and editors ( called scaffold ) to get your projects from 0 to 60 without breaking a sweat.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.j-dee.com/2007/08/02/productivity-tools-for-the-busy-c-developer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I heart System.Activator!</title>
		<link>http://www.j-dee.com/2007/06/27/i-heart-systemactivator/</link>
		<comments>http://www.j-dee.com/2007/06/27/i-heart-systemactivator/#comments</comments>
		<pubDate>Wed, 27 Jun 2007 13:02:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Framework]]></category>

		<guid isPermaLink="false">http://www.j-dee.com/2007/06/27/i-heart-systemactivator/</guid>
		<description><![CDATA[If I had to pick a single class from the wide range that the .Net framework makes available, it would have to be System.Activator. This bit of code has served me well over the years to pull off all kinds of flashy stunts that never fails to impress co-workers and clients.
Well what is it? Briefly, [...]]]></description>
			<content:encoded><![CDATA[<p>If I had to pick a single class from the wide range that the .Net framework makes available, it would have to be System.Activator. This bit of code has served me well over the years to pull off all kinds of flashy stunts that never fails to impress co-workers and clients.</p>
<p>Well what is it? Briefly, System.Activator can take a couple of strings as input ( along with a whole host of other invaluable overloads ) that specify an assembly name and a class, and re-constitute a fully working instantiated object from them. Impressive huh?! I&#8217;ve used it to create extendible plug-in frameworks and super configurable class libraries. Just drop a new DLL in your bin folder, and existing code that has no reference to it can instantiate and use the objects within it.</p>
<p>If you want a crash course on using Activator to create a plug-in architecture for your application, check out Roy Osherove&#8217;s article on the subject <a target="_blank" href="http://msdn2.microsoft.com/en-us/library/ms972962.aspx">here</a>.</p>
<p><a target="_blank" href="http://msdn2.microsoft.com/en-us/library/system.activator.aspx">Here&#8217;s</a> a link to the MSDN docs. So why not make today the day that you make acquaintance of System.Activator too?  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.j-dee.com/2007/06/27/i-heart-systemactivator/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
