<?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>Shawson&#039;s Code Blog &#187; .net</title>
	<atom:link href="http://codeblog.shawson.co.uk/category/net/feed/" rel="self" type="application/rss+xml" />
	<link>http://codeblog.shawson.co.uk</link>
	<description>development notes for my failing memory</description>
	<lastBuildDate>Wed, 01 Feb 2012 11:00:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Import &amp; Export break points in Visual Studio 2010</title>
		<link>http://codeblog.shawson.co.uk/import-export-break-points-in-visual-studio-2010/</link>
		<comments>http://codeblog.shawson.co.uk/import-export-break-points-in-visual-studio-2010/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 12:13:59 +0000</pubDate>
		<dc:creator>shawson</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://codeblog.shawson.co.uk/?p=1318</guid>
		<description><![CDATA[&#8220;This will change your life&#8221; &#8230; reassured my colleague Mr Carmicheal. Basically it&#8217;s possible in VS2010 (Pro, Premium or Ultimate) to Import &#038; Export sets of break points for projects, handy if you have pieces of code you often have to step through for some reason or another. The original article can be found here: [...]


Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/where-did-my-immidiate-window-go/' rel='bookmark' title='Where did my Immidiate window go!?'>Where did my Immidiate window go!?</a></li>
<li><a href='http://codeblog.shawson.co.uk/quickly-find-open-a-file-in-visual-studio/' rel='bookmark' title='Quickly Find/ Open a file in Visual Studio'>Quickly Find/ Open a file in Visual Studio</a></li>
<li><a href='http://codeblog.shawson.co.uk/referencing-custom-properties-on-a-master-page-from-the-child-page/' rel='bookmark' title='Referencing custom properties on a Master page from the Child page'>Referencing custom properties on a Master page from the Child page</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;This will change your life&#8221;</p></blockquote>
<p>&#8230; reassured my colleague Mr Carmicheal.</p>
<p>Basically it&#8217;s possible in VS2010 (Pro, Premium or Ultimate) to Import &#038; Export sets of break points for projects, handy if you have pieces of code you often have to step through for some reason or another.</p>
<p>The original article can be found here: <a href="http://msdn.microsoft.com/en-us/library/dd293657.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/dd293657.aspx</a></p>
<p>In case that page goes AWOL as MSDN pages often do, this is what it said;</p>
<blockquote><p>To export all breakpoints that match the current search criteria</p>
<ol>
<li>In the Breakpoints window toolbar, click the Export all breakpoints matching current search criteria icon.<br/>
<p>    	The Save As dialog box appears.</li>
<li>In the Save As dialog box, type a name in the File name box.<br/>
<p>    	This is the name of the XML file that will contain the exported breakpoints.</li>
<li>Note the folder path shown at the top of the dialog box. To save the XML file to a different location, change the folder path shown in that box, or click Browse Folders to browse for a new location.</li>
<li>Click Save.</li>
</ol>
<p>To export selected breakpoints</p>
<ol>
<li>In the Breakpoints window, select the breakpoints you want to export.<br/>
<p>    To select multiple breakpoints, hold down the CTRL key and click additional breakpoints.</li>
<li>Right-click in the breakpoints list, and choose Export selected.<br/>
<p>    The Save As dialog box appears.</li>
<li>In the Save As dialog box, type a name in the File name box.<br/>
<p>    This is the name of the XML file that will contain the exported breakpoints.</li>
<li> The folder path is shown at the top of the dialog box. To save the XML file to a different location, change the folder path shown in that box, or click Browse Folders to browse for a new location.</li>
<li>Click Save.</li>
</ol>
<p>To import breakpoints</p>
<ol>
<li>In the Breakpoints window toolbar, click the Import breakpoints from a file icon.
<p>    The Open dialog box appears.</li>
<li> In the Open dialog box, browse to the directory where your file is located, and then type the file name or select the file from the file list.</li>
<li>Click OK.</li>
</ol>
</blockquote>


<p>Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/where-did-my-immidiate-window-go/' rel='bookmark' title='Where did my Immidiate window go!?'>Where did my Immidiate window go!?</a></li>
<li><a href='http://codeblog.shawson.co.uk/quickly-find-open-a-file-in-visual-studio/' rel='bookmark' title='Quickly Find/ Open a file in Visual Studio'>Quickly Find/ Open a file in Visual Studio</a></li>
<li><a href='http://codeblog.shawson.co.uk/referencing-custom-properties-on-a-master-page-from-the-child-page/' rel='bookmark' title='Referencing custom properties on a Master page from the Child page'>Referencing custom properties on a Master page from the Child page</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://codeblog.shawson.co.uk/import-export-break-points-in-visual-studio-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conditional logic in ListView ItemTemplate with DataBinder.Eval</title>
		<link>http://codeblog.shawson.co.uk/conditional-logic-in-listview-itemtemplate-with-databinder-eval/</link>
		<comments>http://codeblog.shawson.co.uk/conditional-logic-in-listview-itemtemplate-with-databinder-eval/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 10:16:55 +0000</pubDate>
		<dc:creator>shawson</dc:creator>
				<category><![CDATA[C#.net]]></category>

		<guid isPermaLink="false">http://codeblog.shawson.co.uk/?p=1304</guid>
		<description><![CDATA[Embarrasingly simple, but something I always seem to forget, and then never blog! I needed to show a tick in a repeater when a row value was -1: Simple! In MVC, with the razor syntax and strongly typed views I&#8217;ve grown to love, this is a pinch o&#8217; the proverbial piss- In WebForms rreviously I [...]


Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/how-to-display-hierarchical-data-by-using-nested-repeater-controls-and-visual-c-net/' rel='bookmark' title='How To Display Hierarchical Data Using Nested Repeater Controls and Visual C# .NET'>How To Display Hierarchical Data Using Nested Repeater Controls and Visual C# .NET</a></li>
<li><a href='http://codeblog.shawson.co.uk/aspnet-nested-listview-controls-with-all-edit-functionality-working/' rel='bookmark' title='Asp.net nested ListView control&#8217;s, with edit functionality- example'>Asp.net nested ListView control&#8217;s, with edit functionality- example</a></li>
<li><a href='http://codeblog.shawson.co.uk/c-dynamic-keyword-and-how-you-can-use-it-to-help-tdd/' rel='bookmark' title='C# Dynamic keyword, and how you can use it to help TDD!'>C# Dynamic keyword, and how you can use it to help TDD!</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Embarrasingly simple, but something I always seem to forget, and then never blog!  I needed to show a tick in a repeater when a row value was -1: Simple!  In MVC, with the razor syntax and strongly typed views I&#8217;ve grown to love, this is a pinch o&#8217; the proverbial piss- In WebForms rreviously I often resort to setting up an ItemDataBound event handler which hides or shows an image, but to be honest I could not be bothered- this seems such overkill for something as simple as this.  Anyway, after some faffing I reminded myself the easiest method is to use an &#8216;in-line if&#8217; in the ItemTemplate, like so;</p>
<pre class="brush: html">
&lt;ItemTemplate&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;%# Eval(&quot;CarReg&quot;) %&gt;&lt;/td&gt;
            ...
            &lt;td&gt;
                &lt;%# (DataBinder.Eval(Container.DataItem, &quot;NewRepeat&quot;) != null &amp;&amp; DataBinder.Eval(Container.DataItem, &quot;NewRepeat&quot;).Equals(-1) ? &quot;&lt;img src=\&quot;../images/tick.png\&quot; alt=\&quot;tick\&quot; /&gt;&quot; : &quot;&lt;img src=\&quot;../images/cross.png\&quot; alt=\&quot;cross\&quot; /&quot;)%&gt;
            &lt;/td&gt;
</pre>


<p>Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/how-to-display-hierarchical-data-by-using-nested-repeater-controls-and-visual-c-net/' rel='bookmark' title='How To Display Hierarchical Data Using Nested Repeater Controls and Visual C# .NET'>How To Display Hierarchical Data Using Nested Repeater Controls and Visual C# .NET</a></li>
<li><a href='http://codeblog.shawson.co.uk/aspnet-nested-listview-controls-with-all-edit-functionality-working/' rel='bookmark' title='Asp.net nested ListView control&#8217;s, with edit functionality- example'>Asp.net nested ListView control&#8217;s, with edit functionality- example</a></li>
<li><a href='http://codeblog.shawson.co.uk/c-dynamic-keyword-and-how-you-can-use-it-to-help-tdd/' rel='bookmark' title='C# Dynamic keyword, and how you can use it to help TDD!'>C# Dynamic keyword, and how you can use it to help TDD!</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://codeblog.shawson.co.uk/conditional-logic-in-listview-itemtemplate-with-databinder-eval/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grabbing data from the registry on a remote machine using dot net and WMI</title>
		<link>http://codeblog.shawson.co.uk/grabbing-data-from-the-registry-on-a-remote-machine-using-dot-net-and-wmi/</link>
		<comments>http://codeblog.shawson.co.uk/grabbing-data-from-the-registry-on-a-remote-machine-using-dot-net-and-wmi/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 13:24:57 +0000</pubDate>
		<dc:creator>shawson</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[C#.net]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://codeblog.shawson.co.uk/?p=1281</guid>
		<description><![CDATA[I recently had to write an app which, given a computer name, would grab their telephone extension from a registry key (For the purpose of the code example below, I just grab the CommonFilesDir key from the windows node. There&#8217;s a couple of ways you can achieve this- either using RegistryKey.OpenRemoteBaseKey which gave me a [...]


Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/using-urlencode-urldecode-and-other-http-functions-from-a-non-web-file/' rel='bookmark' title='Using URLEncode, URLDecode and other Http functions from a non Web file'>Using URLEncode, URLDecode and other Http functions from a non Web file</a></li>
<li><a href='http://codeblog.shawson.co.uk/wcf-404-3-errors/' rel='bookmark' title='WCF 404.3 Errors'>WCF 404.3 Errors</a></li>
<li><a href='http://codeblog.shawson.co.uk/making-your-wcf-service-compatible-with-legacy-net-1-1-applications/' rel='bookmark' title='Making your WCF Service compatible with legacy .net 1.1 applications'>Making your WCF Service compatible with legacy .net 1.1 applications</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I recently had to write an app which, given a computer name, would grab their telephone extension from a registry key (For the purpose of the code example below, I just grab the CommonFilesDir key from the windows node.  There&#8217;s a couple of ways you can achieve this- either using <a href="http://msdn.microsoft.com/en-us/library/8zha3xws.aspx">RegistryKey.OpenRemoteBaseKey</a> which gave me a whole bunch of permissions issues, plus you need the remote registry and remote administration services active on the server/client OR you can use the Windows Management Instrumentation (WMI) service.  I took this route, as it&#8217;s a service which is active by default on all of our machines on the domain, and it was easier to get the permissions right.  </p>
<p>Before I paste the code, a GOTCHA to beware of, straight from the MSDN <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa392722(v=vs.85).aspx">here</a>;</p>
<blockquote><p>The registry provider is hosted in LocalService—not the LocalSystem. Therefore, obtaining information remotely from the subtree HKEY_CURRENT_USER is not possible</p></blockquote>
<pre class="brush: csharp">
ConnectionOptions options = new ConnectionOptions();
options.Impersonation = ImpersonationLevel.Impersonate;
options.EnablePrivileges = true;
options.Username = &quot;&lt;domain_admin_username&gt;&quot;;
options.Password = &quot;&lt;domain_admin_password&gt;&quot;;

// http://msdn.microsoft.com/en-us/library/system.management.managementscope.aspx
ManagementScope ms = new ManagementScope(&quot;\\\\&lt;computer name&gt;\\root\\default&quot;, options);          

ms.Connect();

// http://msdn.microsoft.com/en-us/library/windows/desktop/aa390788(v=vs.85).aspx
ManagementClass mc = new ManagementClass(&quot;stdRegProv&quot;);
mc.Scope = ms;

ManagementBaseObject inParams = mc.GetMethodParameters(&quot;GetStringValue&quot;);
// there are other methods for grabbing other reg types- see
// http://msdn.microsoft.com/en-us/library/windows/desktop/aa393664(v=VS.85).aspx

inParams[&quot;hDefKey&quot;] = RegHive.HKEY_LOCAL_MACHINE;
inParams[&quot;sSubKeyName&quot;] = &quot;SOFTWARE\\Microsoft\\Windows\\CurrentVersion&quot;;
inParams[&quot;sValueName&quot;] = &quot;CommonFilesDir&quot;;

ManagementBaseObject outParams =
        mc.InvokeMethod(&quot;GetStringValue&quot;, inParams, null);

if (outParams[&quot;ReturnValue&quot;].ToString() == &quot;0&quot;)
{
    Console.WriteLine(outParams[&quot;sValue&quot;]);
}
else
{
    Console.WriteLine(&quot;Error &quot; + outParams[&quot;ReturnValue&quot;] + &quot; please refer to http://msdn.microsoft.com/en-us/library/ms681382%28v=3Dvs.85%29.aspx&quot;);
}

Console.ReadLine();
</pre>
<p>This code requires this enum..</p>
<pre class="brush: csharp">
public enum RegHive : uint
{
  HKEY_CLASSES_ROOT = 0x80000000,
  HKEY_CURRENT_USER = 0x80000001,
  HKEY_LOCAL_MACHINE = 0x80000002,
  HKEY_USERS = 0x80000003,
  HKEY_CURRENT_CONFIG = 0x80000005
}
</pre>
<p>If you receive a COM error back &#8220;The RPC server is unavailable&#8221;, make sure the target machine&#8217;s firewall isn&#8217;t blocking the call- this will open the port;<br />
<code>netsh firewall set service RemoteAdmin</code></p>


<p>Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/using-urlencode-urldecode-and-other-http-functions-from-a-non-web-file/' rel='bookmark' title='Using URLEncode, URLDecode and other Http functions from a non Web file'>Using URLEncode, URLDecode and other Http functions from a non Web file</a></li>
<li><a href='http://codeblog.shawson.co.uk/wcf-404-3-errors/' rel='bookmark' title='WCF 404.3 Errors'>WCF 404.3 Errors</a></li>
<li><a href='http://codeblog.shawson.co.uk/making-your-wcf-service-compatible-with-legacy-net-1-1-applications/' rel='bookmark' title='Making your WCF Service compatible with legacy .net 1.1 applications'>Making your WCF Service compatible with legacy .net 1.1 applications</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://codeblog.shawson.co.uk/grabbing-data-from-the-registry-on-a-remote-machine-using-dot-net-and-wmi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IIS Express hanging when launched from visual studio</title>
		<link>http://codeblog.shawson.co.uk/iis-express-hanging-when-launched-from-visual-studio/</link>
		<comments>http://codeblog.shawson.co.uk/iis-express-hanging-when-launched-from-visual-studio/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 08:50:41 +0000</pubDate>
		<dc:creator>shawson</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[URL Rewriting]]></category>

		<guid isPermaLink="false">http://codeblog.shawson.co.uk/?p=1265</guid>
		<description><![CDATA[I recently built up a new machine at work and grabbed all my latest projects out of SVN only to find that one of them no longer seemed to start. Since checkout I hadn&#8217;t changed any code, got a clean build, but when the browser window opened it just hung, with no error. I eventually [...]


Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/iis7-urlrewrite-outbound-links-with-compression-enabled/' rel='bookmark' title='IIS7 UrlRewrite Outbound links with Compression Enabled'>IIS7 UrlRewrite Outbound links with Compression Enabled</a></li>
<li><a href='http://codeblog.shawson.co.uk/helicon-isapi-rewrite-error-section-isapi_rewrite-not-found/' rel='bookmark' title='Helicon ISAPI Rewrite rules ignored &#8211; You must save the rewrite file with ANSI encoding- NOT UTF8!!'>Helicon ISAPI Rewrite rules ignored &#8211; You must save the rewrite file with ANSI encoding- NOT UTF8!!</a></li>
<li><a href='http://codeblog.shawson.co.uk/machine-key-generator/' rel='bookmark' title='Machine Key Generator'>Machine Key Generator</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I recently built up a new machine at work and grabbed all my latest projects out of SVN only to find that one of them no longer seemed to start.</p>
<p>Since checkout I hadn&#8217;t changed any code, got a clean build, but when the browser window opened it just hung, with no error.  </p>
<p>I eventually found this was because I was using the UrlRewrite module on the site (with the rules in the web.config file) but had forgotten to install this component on my IIS on the new machine.  An error message would have been nice!</p>


<p>Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/iis7-urlrewrite-outbound-links-with-compression-enabled/' rel='bookmark' title='IIS7 UrlRewrite Outbound links with Compression Enabled'>IIS7 UrlRewrite Outbound links with Compression Enabled</a></li>
<li><a href='http://codeblog.shawson.co.uk/helicon-isapi-rewrite-error-section-isapi_rewrite-not-found/' rel='bookmark' title='Helicon ISAPI Rewrite rules ignored &#8211; You must save the rewrite file with ANSI encoding- NOT UTF8!!'>Helicon ISAPI Rewrite rules ignored &#8211; You must save the rewrite file with ANSI encoding- NOT UTF8!!</a></li>
<li><a href='http://codeblog.shawson.co.uk/machine-key-generator/' rel='bookmark' title='Machine Key Generator'>Machine Key Generator</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://codeblog.shawson.co.uk/iis-express-hanging-when-launched-from-visual-studio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ninject + WCF Docs</title>
		<link>http://codeblog.shawson.co.uk/ninject-wcf-docs/</link>
		<comments>http://codeblog.shawson.co.uk/ninject-wcf-docs/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 13:22:08 +0000</pubDate>
		<dc:creator>shawson</dc:creator>
				<category><![CDATA[C#.net]]></category>
		<category><![CDATA[OO Design]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://codeblog.shawson.co.uk/?p=1262</guid>
		<description><![CDATA[I&#8217;ve recently started using Ninject, having previously only used Unity as my IoC container, but it seems the internet is scarce of any documentation. I&#8217;ve employed the WCF extension, and found this handy guide on how to get up and going with it. www.aaronstannard.com/post/2011/08/16/dependency-injection-ninject-wcf-service.aspx ps- This is my 200th blog post! Woohoo! Related posts:C# Dynamic [...]


Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/c-dynamic-keyword-and-how-you-can-use-it-to-help-tdd/' rel='bookmark' title='C# Dynamic keyword, and how you can use it to help TDD!'>C# Dynamic keyword, and how you can use it to help TDD!</a></li>
<li><a href='http://codeblog.shawson.co.uk/getting-started-with-wcf-and-rest-web-services/' rel='bookmark' title='Getting started with WCF and REST web services'>Getting started with WCF and REST web services</a></li>
<li><a href='http://codeblog.shawson.co.uk/making-your-wcf-service-compatible-with-legacy-net-1-1-applications/' rel='bookmark' title='Making your WCF Service compatible with legacy .net 1.1 applications'>Making your WCF Service compatible with legacy .net 1.1 applications</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently started using Ninject, having previously only used Unity as my IoC container, but it seems the internet is scarce of any documentation.  I&#8217;ve employed the WCF extension, and found this handy guide on how to get up and going with it.  <a href="http://www.aaronstannard.com/post/2011/08/16/dependency-injection-ninject-wcf-service.aspx" target="_blank">www.aaronstannard.com/post/2011/08/16/dependency-injection-ninject-wcf-service.aspx</a></p>
<p>ps- This is my 200th blog post! Woohoo!</p>


<p>Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/c-dynamic-keyword-and-how-you-can-use-it-to-help-tdd/' rel='bookmark' title='C# Dynamic keyword, and how you can use it to help TDD!'>C# Dynamic keyword, and how you can use it to help TDD!</a></li>
<li><a href='http://codeblog.shawson.co.uk/getting-started-with-wcf-and-rest-web-services/' rel='bookmark' title='Getting started with WCF and REST web services'>Getting started with WCF and REST web services</a></li>
<li><a href='http://codeblog.shawson.co.uk/making-your-wcf-service-compatible-with-legacy-net-1-1-applications/' rel='bookmark' title='Making your WCF Service compatible with legacy .net 1.1 applications'>Making your WCF Service compatible with legacy .net 1.1 applications</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://codeblog.shawson.co.uk/ninject-wcf-docs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conditional DataAnnotations in c#</title>
		<link>http://codeblog.shawson.co.uk/conditional-dataannotations-in-c/</link>
		<comments>http://codeblog.shawson.co.uk/conditional-dataannotations-in-c/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 10:49:55 +0000</pubDate>
		<dc:creator>shawson</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[C#.net]]></category>

		<guid isPermaLink="false">http://codeblog.shawson.co.uk/?p=1250</guid>
		<description><![CDATA[This is something a bit weird, which maybe even, dare I say, a bug in the .net DataAnnotationsExtensions pack (Installable via NuGet). I decorated one of my class properties with an Email data annotation, because If the class had an email set, I wanted to ensure it was valid. I didn&#8217;t, however, decorate it with [...]


Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/mvc-strongly-typed-view-returns-a-null-model-on-post-back/' rel='bookmark' title='MVC strongly typed view returns a null model on post back'>MVC strongly typed view returns a null model on post back</a></li>
<li><a href='http://codeblog.shawson.co.uk/creating-an-order-order-details-style-form-using-asp-net-mvc2-entity-framework/' rel='bookmark' title='Creating an Order/ Order Details style view using ASP.net MVC2 &amp; Entity Framework 4'>Creating an Order/ Order Details style view using ASP.net MVC2 &#038; Entity Framework 4</a></li>
<li><a href='http://codeblog.shawson.co.uk/premailer-%e2%80%94-preflight-for-html-e-mail/' rel='bookmark' title='Premailer — preflight for HTML e-mail'>Premailer — preflight for HTML e-mail</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>This is something a bit weird, which maybe even, dare I say, a bug in the .net <a href="http://dataannotationsextensions.org/" target="_blank">DataAnnotationsExtensions pack</a> (Installable via NuGet).  I decorated one of my class properties with an Email data annotation, because If the class had an email set, I wanted to ensure it was valid.  I didn&#8217;t, however, decorate it with a Required attribute.  However it seems the Email attribute will return false if no value is passed, ensuring that it is infact required?  (Please leave a comment if there is some really obvious built in way around this!)  </p>
<p>To get around this I created a simple &#8220;IfPresent&#8221; data annotation which you can chain another validation onto;  This basically returns a true if the value is null, otherwise it will pass it on to the real ValidationAttribute to work it&#8221;s magic.  It can be implemented like this;</p>
<pre class="brush: csharp">
[DataMember]
[IfPresent(typeof(EmailAttribute), ErrorMessage = &quot;Must be a valid email address&quot;)]
public string EmailAddress { get; set; }
</pre>
<p>The code is;</p>
<pre class="brush: csharp">
namespace Chinook.Model.ValidationAttributes
{
    public class IfPresent : ValidationAttribute
    {
        private ValidationAttribute attr;

        public IfPresent(Type attr)
        {
            this.attr = (ValidationAttribute)Activator.CreateInstance(attr);
        }

        public override bool IsValid(object value)
        {
            if (value == null)
                return true;

            return attr.IsValid(value);
        }
    }
}
</pre>


<p>Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/mvc-strongly-typed-view-returns-a-null-model-on-post-back/' rel='bookmark' title='MVC strongly typed view returns a null model on post back'>MVC strongly typed view returns a null model on post back</a></li>
<li><a href='http://codeblog.shawson.co.uk/creating-an-order-order-details-style-form-using-asp-net-mvc2-entity-framework/' rel='bookmark' title='Creating an Order/ Order Details style view using ASP.net MVC2 &amp; Entity Framework 4'>Creating an Order/ Order Details style view using ASP.net MVC2 &#038; Entity Framework 4</a></li>
<li><a href='http://codeblog.shawson.co.uk/premailer-%e2%80%94-preflight-for-html-e-mail/' rel='bookmark' title='Premailer — preflight for HTML e-mail'>Premailer — preflight for HTML e-mail</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://codeblog.shawson.co.uk/conditional-dataannotations-in-c/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>WCF Services with both JSON and SOAP endpoints</title>
		<link>http://codeblog.shawson.co.uk/wcf-services-with-json-and-soap-endpoints/</link>
		<comments>http://codeblog.shawson.co.uk/wcf-services-with-json-and-soap-endpoints/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 13:14:26 +0000</pubDate>
		<dc:creator>shawson</dc:creator>
				<category><![CDATA[WCF]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://codeblog.shawson.co.uk/?p=1195</guid>
		<description><![CDATA[A quick example of how to set this up in the web.config. Services, in this example, can be accessed using JSON via localhost/Services/MyService.svc/HelloWorld or.. using SOAP on localhost/Services/MyService.svc/soap/HelloWorld &#60;system.serviceModel&#62; &#60;serviceHostingEnvironment multipleSiteBindingsEnabled=&#34;true&#34; aspNetCompatibilityEnabled=&#34;true&#34; /&#62; &#60;services&#62; &#60;service behaviorConfiguration=&#34;WebServiceBehavior&#34; name=&#34;Demo.Web.Services.MyService&#34;&#62; &#60;endpoint address=&#34;&#34; binding=&#34;webHttpBinding&#34; contract=&#34;Demo.Web.Services.IMyService&#34; behaviorConfiguration=&#34;jsonBehavior&#34; /&#62; &#60;endpoint address=&#34;soap&#34; binding=&#34;basicHttpBinding&#34; contract=&#34;Demo.Web.Services.IMyService&#34;/&#62; &#60;/service&#62; &#60;/services&#62; &#60;behaviors&#62; &#60;endpointBehaviors&#62; &#60;behavior name=&#34;jsonBehavior&#34;&#62; &#60;webHttp defaultOutgoingResponseFormat=&#34;Json&#34; [...]


Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/getting-started-with-wcf-and-rest-web-services/' rel='bookmark' title='Getting started with WCF and REST web services'>Getting started with WCF and REST web services</a></li>
<li><a href='http://codeblog.shawson.co.uk/making-your-wcf-service-compatible-with-legacy-net-1-1-applications/' rel='bookmark' title='Making your WCF Service compatible with legacy .net 1.1 applications'>Making your WCF Service compatible with legacy .net 1.1 applications</a></li>
<li><a href='http://codeblog.shawson.co.uk/web-services-debugging-with-fiddler-2/' rel='bookmark' title='Web Services Debugging with Fiddler 2'>Web Services Debugging with Fiddler 2</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>A quick example of how to set this up in the web.config.</p>
<p>Services, in this example, can be accessed </p>
<ul>
<li>using JSON via localhost/Services/MyService.svc/HelloWorld or..</li>
<li>using SOAP on localhost/Services/MyService.svc/soap/HelloWorld </li>
</ul>
<pre class="brush: xml">
  &lt;system.serviceModel&gt;
    &lt;serviceHostingEnvironment multipleSiteBindingsEnabled=&quot;true&quot; aspNetCompatibilityEnabled=&quot;true&quot; /&gt;

    &lt;services&gt;
      &lt;service behaviorConfiguration=&quot;WebServiceBehavior&quot; name=&quot;Demo.Web.Services.MyService&quot;&gt;
        &lt;endpoint address=&quot;&quot; binding=&quot;webHttpBinding&quot; contract=&quot;Demo.Web.Services.IMyService&quot; behaviorConfiguration=&quot;jsonBehavior&quot; /&gt;
        &lt;endpoint address=&quot;soap&quot; binding=&quot;basicHttpBinding&quot; contract=&quot;Demo.Web.Services.IMyService&quot;/&gt;
      &lt;/service&gt;
    &lt;/services&gt;

    &lt;behaviors&gt;
      &lt;endpointBehaviors&gt;
        &lt;behavior name=&quot;jsonBehavior&quot;&gt;
          &lt;webHttp defaultOutgoingResponseFormat=&quot;Json&quot; /&gt;
        &lt;/behavior&gt;
      &lt;/endpointBehaviors&gt;

      &lt;serviceBehaviors&gt;
        &lt;behavior name=&quot;WebServiceBehavior&quot;&gt;
          &lt;serviceMetadata httpGetEnabled=&quot;true&quot; /&gt;
          &lt;serviceDebug includeExceptionDetailInFaults=&quot;true&quot; /&gt;
        &lt;/behavior&gt;
      &lt;/serviceBehaviors&gt;
    &lt;/behaviors&gt;

    &lt;bindings&gt;
      &lt;webHttpBinding&gt;
        &lt;binding crossDomainScriptAccessEnabled=&quot;false&quot; name=&quot;httpBinding&quot; /&gt;
      &lt;/webHttpBinding&gt;
    &lt;/bindings&gt;

  &lt;/system.serviceModel&gt;
</pre>


<p>Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/getting-started-with-wcf-and-rest-web-services/' rel='bookmark' title='Getting started with WCF and REST web services'>Getting started with WCF and REST web services</a></li>
<li><a href='http://codeblog.shawson.co.uk/making-your-wcf-service-compatible-with-legacy-net-1-1-applications/' rel='bookmark' title='Making your WCF Service compatible with legacy .net 1.1 applications'>Making your WCF Service compatible with legacy .net 1.1 applications</a></li>
<li><a href='http://codeblog.shawson.co.uk/web-services-debugging-with-fiddler-2/' rel='bookmark' title='Web Services Debugging with Fiddler 2'>Web Services Debugging with Fiddler 2</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://codeblog.shawson.co.uk/wcf-services-with-json-and-soap-endpoints/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVC Razor Syntax &#8211; Web forms &#8220;Master Page&#8221; content area equivalent</title>
		<link>http://codeblog.shawson.co.uk/mvc-razor-syntax-web-forms-master-pages-content-area-equivilent/</link>
		<comments>http://codeblog.shawson.co.uk/mvc-razor-syntax-web-forms-master-pages-content-area-equivilent/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 19:19:56 +0000</pubDate>
		<dc:creator>shawson</dc:creator>
				<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://codeblog.shawson.co.uk/?p=1180</guid>
		<description><![CDATA[In razor instead Web Forms ContentArea&#8217;s in Master Pages you have @sections within your _Layout.cshtml file. In the _layout file you have a declaration such as; @RenderSection("JavaScript", required: false) Then in your content pages; @section JavaScript { &#60;script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")" /&#62;; &#60;script type="text/javascript" src="@Url.Content("/Scripts/AnotherScript.js")" /&#62;; } Source : http://stackoverflow.com/questions/4311783/asp-net-mvc-3-razor-include-js-file-in-head-tag Related posts:Creating an Order/ Order Details [...]


Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/creating-an-order-order-details-style-form-using-asp-net-mvc2-entity-framework/' rel='bookmark' title='Creating an Order/ Order Details style view using ASP.net MVC2 &amp; Entity Framework 4'>Creating an Order/ Order Details style view using ASP.net MVC2 &#038; Entity Framework 4</a></li>
<li><a href='http://codeblog.shawson.co.uk/mvc-strongly-typed-view-returns-a-null-model-on-post-back/' rel='bookmark' title='MVC strongly typed view returns a null model on post back'>MVC strongly typed view returns a null model on post back</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>In razor instead Web Forms ContentArea&#8217;s in Master Pages you have @sections within your _Layout.cshtml file. In the _layout file you have a declaration such as;</p>
<pre>@RenderSection("JavaScript", required: false)</pre>
<p>Then in your content pages;</p>
<pre>@section JavaScript
{
   &lt;script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")" /&gt;;
   &lt;script type="text/javascript" src="@Url.Content("/Scripts/AnotherScript.js")" /&gt;;
}</pre>
<p>Source : <a href="http://stackoverflow.com/questions/4311783/asp-net-mvc-3-razor-include-js-file-in-head-tag">http://stackoverflow.com/questions/4311783/asp-net-mvc-3-razor-include-js-file-in-head-tag</a></p>


<p>Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/creating-an-order-order-details-style-form-using-asp-net-mvc2-entity-framework/' rel='bookmark' title='Creating an Order/ Order Details style view using ASP.net MVC2 &amp; Entity Framework 4'>Creating an Order/ Order Details style view using ASP.net MVC2 &#038; Entity Framework 4</a></li>
<li><a href='http://codeblog.shawson.co.uk/mvc-strongly-typed-view-returns-a-null-model-on-post-back/' rel='bookmark' title='MVC strongly typed view returns a null model on post back'>MVC strongly typed view returns a null model on post back</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://codeblog.shawson.co.uk/mvc-razor-syntax-web-forms-master-pages-content-area-equivilent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL 5.1 with DotNet claims Procedure or function &#8216;&#8216; cannot be found in database &#8216;&#8216;</title>
		<link>http://codeblog.shawson.co.uk/mysql-5-1-with-dotnet-claims-procedure-or-function-cannot-be-found-in-database/</link>
		<comments>http://codeblog.shawson.co.uk/mysql-5-1-with-dotnet-claims-procedure-or-function-cannot-be-found-in-database/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 13:45:09 +0000</pubDate>
		<dc:creator>shawson</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[mySQL]]></category>

		<guid isPermaLink="false">http://codeblog.shawson.co.uk/?p=1174</guid>
		<description><![CDATA[We have some dot net code which uses MySQL- our live setup it thus; MySQL 5.1.45 MySQL Dot net connector dll version 6.2.2.0 We recently rebuilt our dev server, and installed MySQL 5.1- it turns out the minor revision number was slightly higher, but nothing to set off any alarm bells, or so we thought; [...]


Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/mysql-5-phpmyadmin-installation-root-account-not-accepted/' rel='bookmark' title='MySQL 5 / phpMyAdmin Installation &#8211; root account not accepted'>MySQL 5 / phpMyAdmin Installation &#8211; root account not accepted</a></li>
<li><a href='http://codeblog.shawson.co.uk/mysql-command-line-setting-up-a-new-database-and-user/' rel='bookmark' title='MySQL Command Line &#8211; Setting up a new database and user'>MySQL Command Line &#8211; Setting up a new database and user</a></li>
<li><a href='http://codeblog.shawson.co.uk/mysql-backup-restore/' rel='bookmark' title='MySQL Backup &amp; Restore'>MySQL Backup &#038; Restore</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>We have some dot net code which uses MySQL- our live setup it thus;</p>
<p>MySQL 5.1.45<br />
MySQL Dot net connector dll version 6.2.2.0</p>
<p>We recently rebuilt our dev server, and installed MySQL 5.1- it turns out the minor revision number was slightly higher, but nothing to set off any alarm bells, or so we thought;</p>
<p>MySQL 5.1.57</p>
<p>With this combination or MySQL connector 6.2.2.0 and MySQL 5.1.57, we couldn&#8217;t execute any stored procedures- we would just get;</p>
<p>Procedure or function &#8216;
<procedure-name>&#8216; cannot be found in database &#8216;<database-name>&#8216;</p>
<p>Googling turned up lots of suggestions like &#8220;make sure your connection string is lower case&#8221; etc etc- nothing fixed our issue.</p>
<p>We found the solution was to update our MySQL dot net connector to the latest, which at time of writing was 6.3.7.0.</p>
<p>You can <a href="http://dev.mysql.com/downloads/mysql/">get MySQL here</a>, and the <a href="http://dev.mysql.com/downloads/connector/net/1.0.html#downloads">MySQL dot net connector here</a>.</p>


<p>Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/mysql-5-phpmyadmin-installation-root-account-not-accepted/' rel='bookmark' title='MySQL 5 / phpMyAdmin Installation &#8211; root account not accepted'>MySQL 5 / phpMyAdmin Installation &#8211; root account not accepted</a></li>
<li><a href='http://codeblog.shawson.co.uk/mysql-command-line-setting-up-a-new-database-and-user/' rel='bookmark' title='MySQL Command Line &#8211; Setting up a new database and user'>MySQL Command Line &#8211; Setting up a new database and user</a></li>
<li><a href='http://codeblog.shawson.co.uk/mysql-backup-restore/' rel='bookmark' title='MySQL Backup &amp; Restore'>MySQL Backup &#038; Restore</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://codeblog.shawson.co.uk/mysql-5-1-with-dotnet-claims-procedure-or-function-cannot-be-found-in-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Refactoring a web project so you can share user controls across others</title>
		<link>http://codeblog.shawson.co.uk/sharing-user-controls-between-web-projects/</link>
		<comments>http://codeblog.shawson.co.uk/sharing-user-controls-between-web-projects/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 07:57:06 +0000</pubDate>
		<dc:creator>shawson</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[C#.net]]></category>

		<guid isPermaLink="false">http://codeblog.shawson.co.uk/?p=1135</guid>
		<description><![CDATA[I recently built a brand new site, which launched last week and have now been tasked with adding an additional B2B component to it. The B2B site will have all the same styling as the B2C site, and will share a lot of functionality that I&#8217;ve already written into User Controls for the main web [...]


Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/asp-net-build-step-to-minify-and-obfuscate-your-sites-javascript-and-css/' rel='bookmark' title='Adding minification and obfuscation of your Javascript and CSS to your ASP.net build process using Yahoo YUI Compressor'>Adding minification and obfuscation of your Javascript and CSS to your ASP.net build process using Yahoo YUI Compressor</a></li>
<li><a href='http://codeblog.shawson.co.uk/how-to-display-hierarchical-data-by-using-nested-repeater-controls-and-visual-c-net/' rel='bookmark' title='How To Display Hierarchical Data Using Nested Repeater Controls and Visual C# .NET'>How To Display Hierarchical Data Using Nested Repeater Controls and Visual C# .NET</a></li>
<li><a href='http://codeblog.shawson.co.uk/quickly-find-open-a-file-in-visual-studio/' rel='bookmark' title='Quickly Find/ Open a file in Visual Studio'>Quickly Find/ Open a file in Visual Studio</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I recently built a brand new site, which launched last week and have now been tasked with adding an additional B2B component to it.  The B2B site will have all the same styling as the B2C site, and will share a lot of functionality that I&#8217;ve already written into User Controls for the main web site.  So I was faced with a problem- How can I share these controls across both projects?  I don&#8217;t want to simply copy and paste, because then I have two controls to maintain, so I took to Google where I found <a href="http://weblogs.asp.net/scottgu/archive/2005/08/28/423888.aspx">this old article by Scott Guthrie</a>.</p>
<p>I figured I would document the re-factoring exercise I went through.</p>
<p>So I started with my main web project which looked like this;</p>
<p><a href="http://codeblog.shawson.co.uk/wp-content/uploads/2011/08/before.png"><img src="http://codeblog.shawson.co.uk/wp-content/uploads/2011/08/before.png" alt="" title="before" width="351" height="433" class="aligncenter size-full wp-image-1137" /></a></p>
<p>I shall break down the refactor into some simple steps;</p>
<ol>
<li>
I created a new class library project which could be shared between the two web projects, in this instance I called mine Chinook.Web.Helpers</li>
<li>
Create a &#8220;Controls&#8221; folder and drag all the controls from the original web project, into the new shared projects control folder (Make sure both the ASPX and the code behind parts came across!).  Build the new shared project- you will probably find some build errors and will need to add references to some web specific .net dll&#8217;s- I needed
<ul>
<li>System.Configuration</li>
<li>System.Web</li>
<li>System.Web.Extensions</li>
<li>System.Web.Extensions.Design</li>
<li>System.Web.Services</li>
</ul>
<p>As well as these I also had to add references to my .Model and .Interfaces projects, but this will be different depending on how you&#8217;ve setup your project.  At this stage I had a projects which built and looked like this;</p>
<p><a href="http://codeblog.shawson.co.uk/wp-content/uploads/2011/08/helper.png"><img src="http://codeblog.shawson.co.uk/wp-content/uploads/2011/08/helper.png" alt="" title="helper" width="346" height="476" class="aligncenter size-full wp-image-1141" /></a>
</li>
<li>
  I updated the namespace for each controls code behind and the first line of each ascx to reflect the namespace of the new project;</p>
<pre class="brush: csharp">
//namespace Chinook.Web.Controls
namespace Chinook.Web.Helpers.Controls
{
    public partial class QuickContact : System.Web.UI.UserControl
</pre>
<p>..and the new inherits parameters in the ascx;</p>
<pre class="brush: html">
&lt;%@ Control Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeBehind=&quot;QuickContact.ascx.cs&quot;
    Inherits=&quot;Chinook.Web.Helpers.Controls.QuickContact&quot; %&gt;
</pre>
</li>
<li>Next I added a reference in my web project to the new shared project, then deleted the controls from my controls folder, leaving an empty controls folder.  All the references to the controls in your pages remain the same; for example
<pre class="brush: html">
&lt;%@ Master Language=&quot;C#&quot; AutoEventWireup=&quot;True&quot; CodeBehind=&quot;Site.master.cs&quot; Inherits=&quot;Chinook.Web.SiteMaster&quot; %&gt;
&lt;%@ Register Src=&quot;Controls/RSSLister.ascx&quot; TagName=&quot;RSSLister&quot; TagPrefix=&quot;uc1&quot; %&gt;
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head runat=&quot;server&quot;&gt;
...
&lt;ul id=&quot;rss&quot; class=&quot;orange-bullets&quot;&gt;
  &lt;uc1:RSSLister ID=&quot;BlogRSSFeed&quot; runat=&quot;server&quot; /&gt;
&lt;/ul&gt;
</pre>
</li>
<li>
So the project is now happy- we just need to add the pre-build step which will copy the ascx files (but not the code behind) over to each projects control folder on pre-build.  So in the original web project, right click the project and go to properties -> Build Events and set the pre-build event so that it copies;</p>
<pre>
copy $(SolutionDir)\Chinook.Web.Helpers\Controls\*.ascx $(ProjectDir)\Controls\
</pre>
</li>
<li>Build and run your web project!</li>
</ol>
<p>I also moved over a few other bits.  I had an ashx file which handles file uploads- so I moved the code behind to the shared projects and just updated the ashx file to inherit from the same class, but in it&#8217;s new namespace.  I also had a resx file which contained user friendly error messages which I moved to be central.  My final helper looked like this;<br />
<a href="http://codeblog.shawson.co.uk/wp-content/uploads/2011/08/finished-helper.png"><img src="http://codeblog.shawson.co.uk/wp-content/uploads/2011/08/finished-helper.png" alt="" title="finished-helper" width="346" height="605" class="aligncenter size-full wp-image-1146" /></a></p>
<p>Make sure that you don&#8217;t edit the ascx files that now exist within your web project, as there will be overwritten by the versions in the shared project everytime you re-build.  </p>
<p>If you use the publish option (you probably do!), make sure you &#8220;show all files&#8221; on your web project after a build include the ascx files into your web project, so it gets copied up.</p>


<p>Related posts:<ul><li><a href='http://codeblog.shawson.co.uk/asp-net-build-step-to-minify-and-obfuscate-your-sites-javascript-and-css/' rel='bookmark' title='Adding minification and obfuscation of your Javascript and CSS to your ASP.net build process using Yahoo YUI Compressor'>Adding minification and obfuscation of your Javascript and CSS to your ASP.net build process using Yahoo YUI Compressor</a></li>
<li><a href='http://codeblog.shawson.co.uk/how-to-display-hierarchical-data-by-using-nested-repeater-controls-and-visual-c-net/' rel='bookmark' title='How To Display Hierarchical Data Using Nested Repeater Controls and Visual C# .NET'>How To Display Hierarchical Data Using Nested Repeater Controls and Visual C# .NET</a></li>
<li><a href='http://codeblog.shawson.co.uk/quickly-find-open-a-file-in-visual-studio/' rel='bookmark' title='Quickly Find/ Open a file in Visual Studio'>Quickly Find/ Open a file in Visual Studio</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://codeblog.shawson.co.uk/sharing-user-controls-between-web-projects/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

