<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>2LeggedSpider</title>
	<atom:link href="https://2leggedspider.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://2leggedspider.wordpress.com</link>
	<description>Thoughts on Web development and more...</description>
	<lastBuildDate>Mon, 12 Oct 2015 20:41:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<site xmlns="com-wordpress:feed-additions:1">110876</site><cloud domain='2leggedspider.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s0.wp.com/i/buttonw-com.png</url>
		<title>2LeggedSpider</title>
		<link>https://2leggedspider.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://2leggedspider.wordpress.com/osd.xml" title="2LeggedSpider" />
	<atom:link rel='hub' href='https://2leggedspider.wordpress.com/?pushpress=hub'/>
	<item>
		<title>Using React.js &#8211; Part 1/8 &#8211; Components &#8211; YouTube</title>
		<link>https://2leggedspider.wordpress.com/2015/10/12/using-react-js-part-18-components-youtube/</link>
					<comments>https://2leggedspider.wordpress.com/2015/10/12/using-react-js-part-18-components-youtube/#comments</comments>
		
		<dc:creator><![CDATA[Sumit Thomas]]></dc:creator>
		<pubDate>Mon, 12 Oct 2015 20:39:05 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[React.js]]></category>
		<guid isPermaLink="false">http://2leggedspider.wordpress.com/?p=604</guid>

					<description><![CDATA[A very easy to follow series on learning React.js]]></description>
										<content:encoded><![CDATA[<p>A very easy to follow series on learning React.js</p>
<div class="embed-youtube"><iframe title="Using React.js v0.12 - Part 1/8 - Components" width="720" height="405" src="https://www.youtube.com/embed/N98ACjjJABw?list=PLF5ApzZV2CSWLx0XDtObeItoImzKPlCFC" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
]]></content:encoded>
					
					<wfw:commentRss>https://2leggedspider.wordpress.com/2015/10/12/using-react-js-part-18-components-youtube/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">604</post-id>
		<media:content url="https://2.gravatar.com/avatar/b9fe7dcc559f9b3319da4ed7ce560b89ac1d718037bbf724bcf29bad02f12774?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">SavageKid</media:title>
		</media:content>
	</item>
		<item>
		<title>Get Involved! – Pluralsight Training</title>
		<link>https://2leggedspider.wordpress.com/2015/10/08/get-involved-pluralsight-training/</link>
					<comments>https://2leggedspider.wordpress.com/2015/10/08/get-involved-pluralsight-training/#respond</comments>
		
		<dc:creator><![CDATA[Sumit Thomas]]></dc:creator>
		<pubDate>Thu, 08 Oct 2015 16:54:12 +0000</pubDate>
				<category><![CDATA[social]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">http://2leggedspider.wordpress.com/?p=600</guid>

					<description><![CDATA[I found this useful&#8230; In this production, Scott Hanselman and Rob Conery offer suggestions and advice on how you can get out there, and get involved. Blogging, Twitter, Github, StackOverflow, User Groups and Conferences: all of this can make you a happier, more productive developer and inspire you to take your career to the next [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I found this useful&#8230;</p>
<blockquote><p>In this production, Scott Hanselman and Rob Conery offer suggestions and advice on how you can get out there, and get involved. Blogging, Twitter, Github, StackOverflow, User Groups and Conferences: all of this can make you a happier, more productive developer and inspire you to take your career to the next level.</p>
<p>Source: <a href="http://www.pluralsight.com/courses/get-involved">Get Involved! – Pluralsight Training</a></p></blockquote>
<p>How do you manage to keep yourself involved in the community? Share your thoughts.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://2leggedspider.wordpress.com/2015/10/08/get-involved-pluralsight-training/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">600</post-id>
		<media:content url="https://2.gravatar.com/avatar/b9fe7dcc559f9b3319da4ed7ce560b89ac1d718037bbf724bcf29bad02f12774?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">SavageKid</media:title>
		</media:content>
	</item>
		<item>
		<title>ASP.NET Web API Video Series</title>
		<link>https://2leggedspider.wordpress.com/2012/03/06/asp-net-web-api-video-series/</link>
					<comments>https://2leggedspider.wordpress.com/2012/03/06/asp-net-web-api-video-series/#respond</comments>
		
		<dc:creator><![CDATA[Sumit Thomas]]></dc:creator>
		<pubDate>Tue, 06 Mar 2012 22:11:45 +0000</pubDate>
				<category><![CDATA[Daily Links]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[videos]]></category>
		<category><![CDATA[webapi]]></category>
		<guid isPermaLink="false">http://2leggedspider.wordpress.com/2012/03/06/asp-net-web-api-video-series/</guid>

					<description><![CDATA[ASP.NET Web API, Part 1: Your First Web API ASP.NET Web API, Part 2: Getting Data ASP.NET Web API, Part 3: Delete and Update ASP.NET Web API, Part 4: Paging and Querying ASP.NET Web API, Part 5: Custom Validation ASP.NET Web API, Part 6: Authorization]]></description>
										<content:encoded><![CDATA[<ul>
<li><a href="http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/video-your-first-web-api">ASP.NET Web API, Part 1: Your First Web API</a></li>
<li><a href="http://www.asp.net/web-api/overview/web-api-routing-and-actions/video-getting-data">ASP.NET Web API, Part 2: Getting Data</a></li>
<li><a href="http://www.asp.net/web-api/overview/web-api-routing-and-actions/video-delete-and-create">ASP.NET Web API, Part 3: Delete and Update</a></li>
<li><a href="http://www.asp.net/web-api/overview/web-api-routing-and-actions/video-paging-and-querying">ASP.NET Web API, Part 4: Paging and Querying</a></li>
<li><a href="http://www.asp.net/web-api/overview/web-api-routing-and-actions/video-custom-validation">ASP.NET Web API, Part 5: Custom Validation</a></li>
<li><a href="http://www.asp.net/web-api/overview/web-api-routing-and-actions/video-authorization">ASP.NET Web API, Part 6: Authorization</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://2leggedspider.wordpress.com/2012/03/06/asp-net-web-api-video-series/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">591</post-id>
		<media:content url="https://2.gravatar.com/avatar/b9fe7dcc559f9b3319da4ed7ce560b89ac1d718037bbf724bcf29bad02f12774?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">SavageKid</media:title>
		</media:content>
	</item>
		<item>
		<title>Coffee break</title>
		<link>https://2leggedspider.wordpress.com/2012/03/03/coffee-break-15/</link>
		
		<dc:creator><![CDATA[Sumit Thomas]]></dc:creator>
		<pubDate>Fri, 02 Mar 2012 22:18:43 +0000</pubDate>
				<category><![CDATA[Coffee Break]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[coffee break]]></category>
		<category><![CDATA[windows 8]]></category>
		<guid isPermaLink="false">http://2leggedspider.wordpress.com/?p=580</guid>

					<description><![CDATA[How To Guide to Installing and Booting Windows 8 Consumer Preview off a VHD (Virtual Hard Disk) : Scott Hanselman runs you through the steps involved in installing and booting Windows 8 Consumer Preview off a VHD. As always, very informative Develop Hybrid Native and Mobile Web Apps : Shane Church discusses how we can develop [&#8230;]]]></description>
										<content:encoded><![CDATA[<ul>
<li><a href="http://www.hanselman.com/blog/HowToGuideToInstallingAndBootingWindows8ConsumerPreviewOffAVHDVirtualHardDisk.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+ScottHanselman+%28Scott+Hanselman+-+ComputerZen.com%29">How To Guide to Installing and Booting Windows 8 Consumer Preview off a VHD (Virtual Hard Disk)</a> : Scott Hanselman runs you through the steps involved in installing and booting Windows 8 Consumer Preview off a VHD. As always, very informative</li>
<li><a href="http://msdn.microsoft.com/en-us/magazine/hh852592.aspx">Develop Hybrid Native and Mobile Web Apps</a> : Shane Church discusses how we can develop mobile web applications that takes advantage of native application shell to provide the best user experience</li>
<li><a href="http://msdn.microsoft.com/en-us/magazine/hh852588.aspx" target="_blank">Entity Framework Code First and DbContext FAQs</a> : Julie Lerman addresses some of the frequent asked questions on Code First and DbContext in Entity Framework 4.2</li>
<li><a href="http://www.dnrtv.com/default.aspx?showNum=63" target="_blank">Jean-Paul Boodhoo on Demystifying Design Patterns Part 1</a> : An old video but still informative, Jean-Paul Boodhoo talks about Factory and Singleton patterns in depth</li>
<li><a href="http://venturebeat.com/2012/03/01/listen-up-google-heres-what-windows-8-can-teach-you-about-tablets/" target="_blank">Listen up, Google: Here’s what Windows 8 can teach you about tablets</a> : Devindra Hardawar says &#8220;Windows 8 is certain to make a huge splash with consumers &#8212; not just because it&#8217;s the next version of Windows, but because Microsoft has finally managed to crack the code for putting Windows on tablets&#8221;. Read more&#8230;</li>
</ul>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">580</post-id>
		<media:content url="https://2.gravatar.com/avatar/b9fe7dcc559f9b3319da4ed7ce560b89ac1d718037bbf724bcf29bad02f12774?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">SavageKid</media:title>
		</media:content>
	</item>
		<item>
		<title>Coffee break</title>
		<link>https://2leggedspider.wordpress.com/2012/03/02/coffee-break/</link>
		
		<dc:creator><![CDATA[Sumit Thomas]]></dc:creator>
		<pubDate>Thu, 01 Mar 2012 20:25:12 +0000</pubDate>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Coffee Break]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">http://2leggedspider.wordpress.com/?p=552</guid>

					<description><![CDATA[Using MS WebAPI to add API Support to Your Existing ASP.NET MVC Web Applications : Sumit Maitra talks about how to use the newly launched WebAPI in an existing MVC 3 application by upgrading it to ASP.NET MVC 4 and extending it to provide http services using the WebAPI Compare Visual Studio 11 Beta editions : Here is [&#8230;]]]></description>
										<content:encoded><![CDATA[<ul>
<li><a title="Using MS WebAPI to add API Support to Your Existing ASP.NET MVC Web Applications" href="http://www.dotnetcurry.com/ShowArticle.aspx?ID=788" target="_blank">Using MS WebAPI to add API Support to Your Existing ASP.NET MVC Web Applications</a> : Sumit Maitra talks about how to use the newly launched WebAPI in an existing MVC 3 application by upgrading it to ASP.NET MVC 4 and extending it to provide http services using the WebAPI</li>
<li><a href="http://www.microsoft.com/visualstudio/11/en-us/products/compare" target="_blank">Compare Visual Studio 11 Beta editions</a> : Here is a quick comparison of the new Visual Studio 11 beta editions</li>
<li><a href="http://blogs.msdn.com/b/somasegar/archive/2012/02/29/visual-studio-11-beta-and-net-4-5-beta-available-now.aspx" target="_blank">Visual Studio 11 Beta and .NET 4.5 Beta &#8211; Available now!</a> : Somasegar announces the availability of Visual Studio 11 Beta and .NET 4.5 Beta versions for download.  Do check the links highlighting some of the innovations that have gone in to building Visual Studio 11 Developer Preview release</li>
<li><a href="http://dotnetslackers.com/articles/aspnet/Introduction-to-jQuery-Mobile.aspx" target="_blank">Introduction to jQuery mobile</a> : Brian Mains discusses the jQuery Mobile framework for developing user interfaces for mobile devices</li>
<li><a href="http://www.hanselman.com/blog/OneASPNETMakingJSONWebAPIsWithASPNETMVC4BetaAndASPNETWebAPI.aspx" target="_blank">One ASP.NET &#8211; Making JSON Web APIs with ASP.NET MVC 4 Beta and ASP.NET Web API</a> : Scott Hanselman talks about the improvements in MVC 4, about Web API and how it fits in to One ASP.NET</li>
</ul>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">552</post-id>
		<media:content url="https://2.gravatar.com/avatar/b9fe7dcc559f9b3319da4ed7ce560b89ac1d718037bbf724bcf29bad02f12774?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">SavageKid</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting specific with the Specification Pattern</title>
		<link>https://2leggedspider.wordpress.com/2011/03/23/getting-specific-with-the-specification-pattern/</link>
					<comments>https://2leggedspider.wordpress.com/2011/03/23/getting-specific-with-the-specification-pattern/#comments</comments>
		
		<dc:creator><![CDATA[Sumit Thomas]]></dc:creator>
		<pubDate>Wed, 23 Mar 2011 11:25:21 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[patterns]]></category>
		<guid isPermaLink="false">http://2leggedspider.wordpress.com/?p=503</guid>

					<description><![CDATA[The idea of Specification pattern according to Martin Fowler is to separate the statement of how to match a candidate, from the candidate object that it is matched against. As well as its usefulness in selection, it is also valuable for validation and for building to order. In simple terms it means this pattern helps [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The <a href="http://martinfowler.com/apsupp/spec.pdf">idea</a> of Specification pattern according to Martin Fowler is to separate the statement of how to match a candidate, from the candidate object that it is matched against. As well as its usefulness in selection, it is also valuable for validation and for building to order.</p>
<p>In simple terms it means this pattern helps us to check if an object satisfies certain criteria. Well, we do that all the time in our code don&#8217;t we? For instance, we check if the data in an object that we send to a web service or database is properly validated against a business rule. We check for certain conditions on an object&#8217;s property to fetch subset of objects from a collection using say LINQ etc etc. Since we already do these things, why do we need a separate pattern to do the same?</p>
<p>Well the biggest advantage of Specification pattern is that we can create compartments of criteria definitions and check them against an object wherever the need arises. We then have the flexibility to change the criteria definitions in one single place as per the business requirement instead of changing it all the places where such criteria would had been used, if we didn&#8217;t use specification pattern. OK enough theory, lets see how we can implement the Specification pattern to understand it better.</p>
<p>We&#8217;ll start by creating the Core framework for the Specification. Lets create an Interface ISpecification with the following definition</p>
<pre class="brush: csharp; title: ; notranslate">
public interface ISpecification&lt;T&gt;
{
     bool IsSatisfiedBy(T t);
}
</pre>
<p>Now as I mentioned earlier, we can check if an object satisfies a certain condition or a set of conditions. In order to make it easy for us we&#8217;ll create classes which will help us perform the logical And, Or and Not operations on an object with the available suggestions.</p>
<pre class="brush: csharp; title: ; notranslate">
    public class AndSpecification&lt;T&gt; : ISpecification&lt;T&gt;
    {
        private readonly ISpecification&lt;T&gt; spec1;
        private readonly ISpecification&lt;T&gt; spec2;
        public AndSpecification(ISpecification&lt;T&gt; s1, ISpecification&lt;T&gt; s2)
        {
            spec1 = s1;
            spec2 = s2;
        }

        public bool IsSatisfiedBy(T t)
        {
            return spec1.IsSatisfiedBy(t) &amp;&amp; spec2.IsSatisfiedBy(t);
        }

    }

    public class OrSpecification&lt;T&gt; : ISpecification&lt;T&gt;
    {
        private readonly ISpecification&lt;T&gt; spec1;
        private readonly ISpecification&lt;T&gt; spec2;
        public OrSpecification(ISpecification&lt;T&gt; s1, ISpecification&lt;T&gt; s2)
        {
            spec1 = s1;
            spec2 = s2;
        }

        public bool IsSatisfiedBy(T t)
        {
            return spec1.IsSatisfiedBy(t) || spec2.IsSatisfiedBy(t);
        }
    }

    public class NotSpecification&lt;T&gt; : ISpecification&lt;T&gt;
    {
        private readonly ISpecification&lt;T&gt; spec;
        public NotSpecification(ISpecification&lt;T&gt; spec)
        {
            this.spec = spec;
        }

        public bool IsSatisfiedBy(T t)
        {
            return !spec.IsSatisfiedBy(t);
        }
    }
</pre>
<p>Next we will create extension methods that will help us to chain together required specifications.</p>
<pre class="brush: csharp; title: ; notranslate">
    public static class SpecExtensions
    {
        public static ISpecification&lt;T&gt; And&lt;T&gt;(this ISpecification&lt;T&gt; s1, ISpecification&lt;T&gt; s2)
        {
            return new AndSpecification&lt;T&gt;(s1, s2);
        }
        public static ISpecification&lt;T&gt; Or&lt;T&gt;(this ISpecification&lt;T&gt; s1, ISpecification&lt;T&gt; s2)
        {
            return new OrSpecification&lt;T&gt;(s1, s2);
        }
        public static ISpecification&lt;T&gt; Not&lt;T&gt;(this ISpecification&lt;T&gt; s)
        {
            return new NotSpecification&lt;T&gt;(s);
        }
    }
</pre>
<p>That pretty much forms the core implementation of Specification pattern. Now lets get in to the fun part where we will put the specification pattern in use.</p>
<p>Lets assume that you are creating a module for fictional employee management application to determine the qualification of employees in order to promote them to managers. Lets start by creating a Employee class as follows</p>
<pre class="brush: csharp; title: ; notranslate">
    public class Employee
    {
        public int EmployeeId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int TotalExperience { get; set; }
        public ExcelCompetency ExcelCompetency { get; set; }
        public bool PotentialManager
        {
            get
            {
                if (ExcelCompetency == Domain.ExcelCompetency.High || ExcelCompetency == Domain.ExcelCompetency.Medium)
                    return true;

                return false;
            }
        }
    }
</pre>
<p>Here ExcelCompetency is an enum with values High, Medium and Low. Assume that the specification provided to you is that only Employees with High or Medium competency in Excel can become Managers. The property PotentialManager checks this condition and returns a boolean based on the value assigned for ExcelCompetency.</p>
<p>Though the property PotentialManager would help us in fetching a subset of employees qualified to be a manager from a list of employees, the actual condition we used inside this property might be used elsewhere in our application. In such cases, if the company decides later that employees with only High ExcelCompetency can become managers then we would have to change the condition wherever it is implemented. That is not ideal. This is where Specification pattern could be used.</p>
<p>Lets start by creating our own implementation of Specification framework.</p>
<pre class="brush: csharp; title: ; notranslate">
    public class PotentialManagerSpecification : ISpecification&lt;Employee&gt;
    {
        public bool IsSatisfiedBy(Employee employee)
        {
            if (employee.ExcelCompetency == ExcelCompetency.High || employee.ExcelCompetency == ExcelCompetency.Medium)
                return true;
            return false;
        }
    }
</pre>
<p>Now our PotentialManager property could be changed to&#8230;</p>
<pre class="brush: csharp; title: ; notranslate">
        public bool PotentialManager
        {
            get
            {
                var  potentialManagerSpec = new PotentialManagerSpecification();
                if (potentialManagerSpec.IsSatisfiedBy(this))
                    return true;
                return false;
            }
        }
</pre>
<p>Now the condition for satisfying a requirement will lie independent of the entity object and can be changed anytime without touching the entity.</p>
<p>Now lets assume that the management has laid down a condition that managers should not only have High Excel competency but also should have more than 10 years of experience. To satisfy this condition lets create another specification ManagerRequiredExperienceSpecification</p>
<pre class="brush: csharp; title: ; notranslate">
    public class ManagerRequiredExperienceSpecification : ISpecification&lt;Employee&gt;
    {
        public bool IsSatisfiedBy(Employee employee)
        {
            if (employee.TotalExperience &gt; 10)
                return true;
            return false;
        }
    }
</pre>
<p>We&#8217;ll create a test method to test these specifications</p>
<pre class="brush: csharp; title: ; notranslate">
[TestMethod]
public void ManagerSelection_Test()
{
Employee abc = new Employee(){ FirstName=&quot;ABC&quot;, ExcelCompetency = ExcelCompetency.Medium, TotalExperience = 12};
Employee def = new Employee(){ FirstName = &quot;DEF&quot;, ExcelCompetency = ExcelCompetency.High, TotalExperience = 11};
Employee qrs = new Employee(){ FirstName = &quot;QRS&quot;, ExcelCompetency = ExcelCompetency.High, TotalExperience = 8};
Employee xyz = new Employee(){FirstName = &quot;XYZ&quot;, ExcelCompetency = ExcelCompetency.Low, TotalExperience = 10};

IList employees = new List()
{
  abc, def, qrs, xyz
};

PotentialManagerSpecification managerSpec = new PotentialManagerSpecification();
ManagerRequiredExperienceSpecification experienceSpec = new ManagerRequiredExperienceSpecification();

foreach(Employee e in employees){
    System.Diagnostics.Debug.WriteLine(
      &quot;{0} is {1} to be a Manager&quot;,
       e.FirstName,
       managerSpec.And(experienceSpec).IsSatisfiedBy(e) ? &quot;qualified&quot; : &quot;not qualified&quot;
       );
}
}
</pre>
<p>If you run the above test, your Debug trace will show the following output</p>
<p><em>ABC is qualified to be a Manager<br />
DEF is qualified to be a Manager<br />
QRS is not qualified to be a Manager<br />
XYZ is not qualified to be a Manager</em></p>
<p>You can see in the line <strong>managerSpec.And(experienceSpec).IsSatisfiedBy(e)</strong> how we have used the extension method &#8216;And&#8217;.</p>
<p>Based on the requirement we can use the extension methods as follows.</p>
<ul>
<li>managerSpec.And(experienceSpec).IsSatisfiedBy(e) -&gt; Employee satisfies both PotentialManagerSpecification and ManagerRequiredExperienceSpecification</li>
<li>managerSpec.Or(experienceSpec).IsSatisfiedBy(e) -&gt; Employee satisfies either PotentialManagerSpecification or ManagerRequiredExperienceSpecification</li>
<li>managerSpec.And(experienceSpec.Not()).IsSatisfiedBy(e) -&gt; Employee satisfies PotentialManagerSpecification but not ManagerRequiredExperienceSpecification</li>
</ul>
<p>As you can see the possibilities are limitless. If you want to create a new specification which handles both PotentialManagerSpecification and ManagerRequiredExperienceSpecification then we can also do so as follows</p>
<pre class="brush: csharp; title: ; notranslate">
    public class ManagerSelectionSpecification : ISpecification&lt;Employee&gt;
    {
        public bool IsSatisfiedBy(Employee employee)
        {
            PotentialManagerSpecification managerSpec = new PotentialManagerSpecification();
            ManagerRequiredExperienceSpecification experienceSpec = new ManagerRequiredExperienceSpecification();

            if (managerSpec.And(experienceSpec).IsSatisfiedBy(employee))
                return true;

            return false;
        }
    }
</pre>
<p>We can also use specifications to perform validation before saving information in database for instance</p>
<pre class="brush: csharp; title: ; notranslate">
var managerSelectionSpec = new ManagerSelectionSpecification();
if(managerSelectionSpec.IsSatisfiedBy(employee)
{
      PromoteToManager();
}
</pre>
<p>Or in LINQ as follows</p>
<pre class="brush: csharp; title: ; notranslate">
 var managers = from e in employees
                           where managerSelectionSpec.IsSatisfiedBy(e)
                           select e;
</pre>
<p>Pretty neat isn&#8217;t it? I hope you found it useful as I did.</p>
<p>Some useful links&#8230;</p>
<p><a href="http://martinfowler.com/apsupp/spec.pdf">Specifications by by Eric Evans and Martin Fowler</a></p>
<p><a href="http://kitchaiyong.wordpress.com/2009/10/10/repository-specification-unit-of-work-persistence-ignorance-poco-with-microsoft-entityframework-4-0-part-2/">Repository, Specification, Unit of Work, Persistence Ignorance POCO with Microsoft ADO.NET Entity Framework 4.0 Beta 2</a></p>
<p><a href="http://www.dimecasts.net/Content/WatchEpisode/139">Learning the Specification Pattern</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://2leggedspider.wordpress.com/2011/03/23/getting-specific-with-the-specification-pattern/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">503</post-id>
		<media:content url="https://2.gravatar.com/avatar/b9fe7dcc559f9b3319da4ed7ce560b89ac1d718037bbf724bcf29bad02f12774?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">SavageKid</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Studio color schemes &#8211; Its time for a makeover</title>
		<link>https://2leggedspider.wordpress.com/2011/03/23/visual-studio-color-schemes-its-time-for-a-makeover/</link>
					<comments>https://2leggedspider.wordpress.com/2011/03/23/visual-studio-color-schemes-its-time-for-a-makeover/#comments</comments>
		
		<dc:creator><![CDATA[Sumit Thomas]]></dc:creator>
		<pubDate>Wed, 23 Mar 2011 07:30:32 +0000</pubDate>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<guid isPermaLink="false">http://2leggedspider.wordpress.com/?p=512</guid>

					<description><![CDATA[http://studiostyl.es/ is a great website where you can browse for hundreds of color schemes to change the background and text colors of your Visual Studio IDE. It works for both Visual Studio 2008 and 2010. You can also create and submit your own scheme or download and rate schemes submitted by others. Once you have [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://studiostyl.es/">http://studiostyl.es/</a> is a great website where you can browse for hundreds of color schemes to change the background and text colors of your Visual Studio IDE. It works for both Visual Studio 2008 and 2010. You can also create and submit your own scheme or download and rate schemes submitted by others.</p>
<p><img data-attachment-id="514" data-permalink="https://2leggedspider.wordpress.com/2011/03/23/visual-studio-color-schemes-its-time-for-a-makeover/shemes/" data-orig-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/shemes.png" data-orig-size="1280,800" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Visual Studio Color Schemes &amp;#8211; http://studiostyl.es/" data-image-description="" data-image-caption="" data-medium-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/shemes.png?w=300" data-large-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/shemes.png?w=720" class="aligncenter size-full wp-image-514" title="Visual Studio Color Schemes - http://studiostyl.es/" src="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/shemes.png?w=720&#038;h=450" alt="" width="720" height="450" srcset="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/shemes.png?w=720&amp;h=450 720w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/shemes.png?w=150&amp;h=94 150w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/shemes.png?w=300&amp;h=188 300w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/shemes.png?w=768&amp;h=480 768w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/shemes.png?w=1024&amp;h=640 1024w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/shemes.png 1280w" sizes="(max-width: 720px) 100vw, 720px" /></p>
<p>Once you have picked your&nbsp;favorite scheme, download it to your Visual Studio settings folder&nbsp;C:\Users\[user_name]\Documents\visual studio 2010\settings</p>
<p>To apply the scheme go to Tools -&gt; Import and Export Settings menu and follow these steps</p>
<p><img data-attachment-id="515" data-permalink="https://2leggedspider.wordpress.com/2011/03/23/visual-studio-color-schemes-its-time-for-a-makeover/importsettingdialog/" data-orig-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog.png" data-orig-size="618,552" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="importsettingdialog" data-image-description="" data-image-caption="" data-medium-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog.png?w=300" data-large-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog.png?w=618" class="aligncenter size-full wp-image-515" title="importsettingdialog" src="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog.png?w=720" alt=""   srcset="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog.png 618w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog.png?w=150&amp;h=134 150w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog.png?w=300&amp;h=268 300w" sizes="(max-width: 618px) 100vw, 618px" /></p>
<p><img data-attachment-id="517" data-permalink="https://2leggedspider.wordpress.com/2011/03/23/visual-studio-color-schemes-its-time-for-a-makeover/importsettingdialog_next/" data-orig-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_next.png" data-orig-size="618,552" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="importsettingdialog_next" data-image-description="" data-image-caption="" data-medium-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_next.png?w=300" data-large-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_next.png?w=618" class="aligncenter size-full wp-image-517" title="importsettingdialog_next" src="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_next.png?w=720" alt=""   srcset="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_next.png 618w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_next.png?w=150&amp;h=134 150w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_next.png?w=300&amp;h=268 300w" sizes="(max-width: 618px) 100vw, 618px" /></p>
<p><img loading="lazy" data-attachment-id="516" data-permalink="https://2leggedspider.wordpress.com/2011/03/23/visual-studio-color-schemes-its-time-for-a-makeover/importsettingdialog_choose/" data-orig-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_choose.png" data-orig-size="618,552" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="importsettingdialog_choose" data-image-description="" data-image-caption="" data-medium-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_choose.png?w=300" data-large-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_choose.png?w=618" class="aligncenter size-full wp-image-516" title="importsettingdialog_choose" src="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_choose.png?w=720" alt=""   srcset="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_choose.png 618w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_choose.png?w=150&amp;h=134 150w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_choose.png?w=300&amp;h=268 300w" sizes="(max-width: 618px) 100vw, 618px" /></p>
<p>Once you complete the steps, you will see a brand new color scheme applied to your Visual Studio text editor. </p>
<p><img loading="lazy" data-attachment-id="522" data-permalink="https://2leggedspider.wordpress.com/2011/03/23/visual-studio-color-schemes-its-time-for-a-makeover/applied_scheme/" data-orig-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/applied_scheme.png" data-orig-size="1286,759" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="applied_scheme" data-image-description="" data-image-caption="" data-medium-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/applied_scheme.png?w=300" data-large-file="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/applied_scheme.png?w=720" class="aligncenter size-full wp-image-522" title="applied_scheme" src="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/applied_scheme.png?w=720&#038;h=424" alt="" width="720" height="424" srcset="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/applied_scheme.png?w=720&amp;h=425 720w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/applied_scheme.png?w=150&amp;h=89 150w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/applied_scheme.png?w=300&amp;h=177 300w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/applied_scheme.png?w=768&amp;h=453 768w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/applied_scheme.png?w=1024&amp;h=604 1024w, https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/applied_scheme.png 1286w" sizes="(max-width: 720px) 100vw, 720px" /></p>
<p>Now don&#8217;t be surprised if you find a fellow developer&#8217;s Visual Studio with a Barbie girl scheme <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://2leggedspider.wordpress.com/2011/03/23/visual-studio-color-schemes-its-time-for-a-makeover/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">512</post-id>
		<media:content url="https://2.gravatar.com/avatar/b9fe7dcc559f9b3319da4ed7ce560b89ac1d718037bbf724bcf29bad02f12774?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">SavageKid</media:title>
		</media:content>

		<media:content url="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/shemes.png" medium="image">
			<media:title type="html">Visual Studio Color Schemes - http://studiostyl.es/</media:title>
		</media:content>

		<media:content url="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog.png" medium="image">
			<media:title type="html">importsettingdialog</media:title>
		</media:content>

		<media:content url="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_next.png" medium="image">
			<media:title type="html">importsettingdialog_next</media:title>
		</media:content>

		<media:content url="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/importsettingdialog_choose.png" medium="image">
			<media:title type="html">importsettingdialog_choose</media:title>
		</media:content>

		<media:content url="https://2leggedspider.wordpress.com/wp-content/uploads/2011/03/applied_scheme.png" medium="image">
			<media:title type="html">applied_scheme</media:title>
		</media:content>
	</item>
		<item>
		<title>StyleCop 4.5 Beta is out!</title>
		<link>https://2leggedspider.wordpress.com/2011/03/21/stylecop-4-5-beta-is-out/</link>
					<comments>https://2leggedspider.wordpress.com/2011/03/21/stylecop-4-5-beta-is-out/#respond</comments>
		
		<dc:creator><![CDATA[Sumit Thomas]]></dc:creator>
		<pubDate>Mon, 21 Mar 2011 06:40:06 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<guid isPermaLink="false">http://2leggedspider.wordpress.com/?p=537</guid>

					<description><![CDATA[You can download it @ http://stylecop.codeplex.com/releases/view/62209 If you are not aware of StyleCop, it is an open source static code analysis tool from Microsoft which helps developers analyse their C# code for conformance to StyleCop recommended coding styles and it works at the source code level. For more information on this community driven project visit [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>You can download it @ <a href="http://stylecop.codeplex.com/releases/view/62209">http://stylecop.codeplex.com/releases/view/62209</a></p>
<p>If you are not aware of StyleCop, it is an open source static code analysis tool from Microsoft which helps developers analyse their C# code for conformance to StyleCop recommended coding styles and it works at the source code level.</p>
<p>For more information on this community driven project visit <a href="http://stylecop.codeplex.com/">http://stylecop.codeplex.com/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://2leggedspider.wordpress.com/2011/03/21/stylecop-4-5-beta-is-out/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">537</post-id>
		<media:content url="https://2.gravatar.com/avatar/b9fe7dcc559f9b3319da4ed7ce560b89ac1d718037bbf724bcf29bad02f12774?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">SavageKid</media:title>
		</media:content>
	</item>
		<item>
		<title>links for 2010-01-11</title>
		<link>https://2leggedspider.wordpress.com/2010/01/11/links-for-2010-01-11/</link>
					<comments>https://2leggedspider.wordpress.com/2010/01/11/links-for-2010-01-11/#comments</comments>
		
		<dc:creator><![CDATA[Sumit Thomas]]></dc:creator>
		<pubDate>Mon, 11 Jan 2010 12:03:12 +0000</pubDate>
				<category><![CDATA[Daily Links]]></category>
		<guid isPermaLink="false">http://2leggedspider.wordpress.com/2010/01/11/links-for-2010-01-11/</guid>

					<description><![CDATA[Coda Bubble jQuery Plugin (tags: jquery, plugin,) Some Useful JavaScript &#38; jQuery Snippets &#124; Codrops (tags: jquery,) Smart Columns w/ CSS &#38; jQuery (tags: jquery, css) jQuery File Tree Demo (tags: jquery,) jQuery Masonry (tags: jquery, plugin,) ASP.NET MVC Validation using IDataErrorInfo with DefaultModelBinder (tags: aspnetmvc, validation,) Coding Instinct: Breadcrumb menu using JQuery and ASP.NET [&#8230;]]]></description>
										<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://www.myjquery.co.uk/docs/x/plugins/coda_bubble/coda_bubble.php">Coda Bubble jQuery Plugin</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/jquery%2C">jquery,</a> <a href="http://delicious.com/savagekid/plugin%2C">plugin,</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://tympanus.net/codrops/2010/01/05/some-useful-javascript-jquery-snippets/">Some Useful JavaScript &amp; jQuery Snippets | Codrops</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/jquery%2C">jquery,</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.sohtanaka.com/web-design/smart-columns-w-css-jquery/">Smart Columns w/ CSS &amp; jQuery</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/jquery%2C">jquery,</a> <a href="http://delicious.com/savagekid/css">css</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://labs.abeautifulsite.net/projects/js/jquery/fileTree/demo/">jQuery File Tree Demo</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/jquery%2C">jquery,</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://desandro.com/resources/jquery-masonry">jQuery Masonry</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/jquery%2C">jquery,</a> <a href="http://delicious.com/savagekid/plugin%2C">plugin,</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://davidhayden.com/blog/dave/archive/2009/05/11/ASPNETMVCValidationIDataErrorInfoDefaultModelBinder.aspx">ASP.NET MVC Validation using IDataErrorInfo with DefaultModelBinder</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/aspnetmvc%2C">aspnetmvc,</a> <a href="http://delicious.com/savagekid/validation%2C">validation,</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.codinginstinct.com/2008/10/breadcrum-menu-using-jquery-and-aspnet.html">Coding Instinct: Breadcrumb menu using JQuery and ASP.NET MVC</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/jquery%2C">jquery,</a> <a href="http://delicious.com/savagekid/aspnetmvc">aspnetmvc</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://bradwilson.typepad.com/blog/2009/04/dataannotations-and-aspnet-mvc.html">Brad Wilson: DataAnnotations and ASP.NET MVC</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/aspnetmvc">aspnetmvc</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://odetocode.com/Blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx">6 Tips for ASP.NET MVC Model Binding</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/aspnetmvc">aspnetmvc</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://sparkviewengine.com/usage/intellisense">Intellisense | Spark View Engine</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/Spark%2C">Spark,</a> <a href="http://delicious.com/savagekid/Intellisense">Intellisense</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://west-wind.com/Weblog/posts/899303.aspx">Integrating OpenID in an ASP.NET MVC Application using DotNetOpenAuth &#8211; Rick Strahl&#39;s Web Log</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/aspnetmvc%2C">aspnetmvc,</a> <a href="http://delicious.com/savagekid/openid">openid</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx">ASP.NET MVC 2: Strongly Typed Html Helpers &#8211; ScottGu&#39;s Blog</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/savagekid/aspnetmvc">aspnetmvc</a>)</div>
</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://2leggedspider.wordpress.com/2010/01/11/links-for-2010-01-11/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">501</post-id>
		<media:content url="https://2.gravatar.com/avatar/b9fe7dcc559f9b3319da4ed7ce560b89ac1d718037bbf724bcf29bad02f12774?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">SavageKid</media:title>
		</media:content>
	</item>
		<item>
		<title>Create a custom Outlook holiday file</title>
		<link>https://2leggedspider.wordpress.com/2010/01/08/create-a-custom-outlook-holiday-file/</link>
					<comments>https://2leggedspider.wordpress.com/2010/01/08/create-a-custom-outlook-holiday-file/#comments</comments>
		
		<dc:creator><![CDATA[Sumit Thomas]]></dc:creator>
		<pubDate>Fri, 08 Jan 2010 07:40:36 +0000</pubDate>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">http://2leggedspider.wordpress.com/?p=478</guid>

					<description><![CDATA[Like many of my friends, the first thing I check at the start of the year is the list of public holidays for that year. Outlook&#8217;s holiday feature comes really handy as it makes it convenient for me to update my Calendar with a predefined list of holidays. To add a predefined holiday list to [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Like many of my friends, the first thing I check at the start of the year is the list of public holidays for that year. Outlook&#8217;s holiday feature comes really handy as it makes it convenient for me to update my Calendar with a predefined list of holidays.</p>
<p>To add a predefined holiday list to your Outlook calendar go to Tools -&gt; Options -&gt; Calendar Options -&gt; Add Holidays and select your country and click OK.</p>
<p><a href="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_cal_options.png"><img loading="lazy" data-attachment-id="479" data-permalink="https://2leggedspider.wordpress.com/2010/01/08/create-a-custom-outlook-holiday-file/outlook_cal_options/" data-orig-file="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_cal_options.png" data-orig-size="580,451" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="outlook_cal_options" data-image-description="" data-image-caption="" data-medium-file="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_cal_options.png?w=300" data-large-file="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_cal_options.png?w=580" class="aligncenter size-full wp-image-479" title="outlook_cal_options" src="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_cal_options.png?w=720" alt=""   srcset="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_cal_options.png 580w, https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_cal_options.png?w=150&amp;h=117 150w, https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_cal_options.png?w=300&amp;h=233 300w" sizes="(max-width: 580px) 100vw, 580px" /></a></p>
<p><a href="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_add_hol.png"><img loading="lazy" data-attachment-id="480" data-permalink="https://2leggedspider.wordpress.com/2010/01/08/create-a-custom-outlook-holiday-file/outlook_add_hol/" data-orig-file="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_add_hol.png" data-orig-size="257,245" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="outlook_add_hol" data-image-description="" data-image-caption="" data-medium-file="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_add_hol.png?w=257" data-large-file="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_add_hol.png?w=257" class="aligncenter size-full wp-image-480" title="outlook_add_hol" src="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_add_hol.png?w=720" alt=""   srcset="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_add_hol.png 257w, https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_add_hol.png?w=150&amp;h=143 150w" sizes="(max-width: 257px) 100vw, 257px" /></a></p>
<p>The predefined holiday list is stored in the file  Outlook.hol which is called as the Outllook holiday file.</p>
<p>You don&#8217;t have to stick to the predefined list as you can edit this file and add your custom holidays using a notepad.</p>
<p>A holiday file has the following format&#8230;</p>
<p style="padding-left:30px;"><strong>[Section Name] [Number of Holidays]<br />
Holiday Description, yyyy/mm/dd<br />
Holiday Description, yyyy/mm/dd<br />
Holiday Description, yyyy/mm/dd<br />
</strong>and so on..</p>
<p>You can have as many sections as you want.</p>
<p>So what if you want to create your Company specific holiday list? Suppose there is a fictional company ABC, which has branches in Chennai, Bangalore and US. You can create a custom holiday file for this company which can be distributed to all its employees. To do so&#8230;</p>
<ol>
<li>Open notepad and paste the following&#8230;
<pre><span style="color:#800000;">[ABC Bangalore Office 2010] 15
Makara Sankranthi    ,2010/1/14
Republic Day        ,2010/1/26
Maha Shivarathri    ,2010/2/12
Ugadi            ,2010/3/16
Good Friday        ,2010/4/2
May Day            ,2010/5/1
Independence Day    ,2010/8/15
Janmashtami        ,2010/9/1
Id-ul-fitr (Ramzan)     ,2010/9/10
Gandhi Jayanti        ,2010/10/2
Vijaya Dashami        ,2101/10/17
State Formation Day    ,2010/11/1
Deepavali        ,2010/11/5
Bakrid            ,2010/11/17
Christmas        ,2010/12/25

[ABC Chennai Office 2010] 13
Pongal            ,2010/1/14
Republic Day        ,2010/1/26
Maha Shivarathri    ,2010/2/12
Good Friday        ,2010/4/2
May Day            ,2010/5/1
Independence Day    ,2010/8/15
Janmashtami        ,2010/9/1
Id-ul-fitr (Ramzan)     ,2010/9/10
Gandhi Jayanti         ,2010/10/2
State Formation Day    ,2010/11/1
Deepavali        ,2010/11/5
Bakrid            ,2010/11/17
Christmas        ,2010/12/25

[ABC US Office 2010] 11
Memorial Day        ,2010/5/31
Independence Day    ,2010/7/5
Labor Day        ,2010/9/6
Thanksgiving Holiday    ,2010/11/25
Thanksgiving Holiday    ,2010/11/26
US Corporate Holiday    ,2010/12/20
US Corporate Holiday    ,2010/12/21
US Corporate Holiday    ,2010/12/22
US Corporate Holiday    ,2010/12/23
US Corporate Holiday    ,2010/12/24
New Year's Eve        ,2010/12/31</span></pre>
</li>
<li>Save this file as <em>ABC 2010 Holidays.hol</em></li>
</ol>
<p>To use this file just double click and select the sections you want to add to your Calendar.</p>
<p><a href="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/abc-holiday.png"><img loading="lazy" data-attachment-id="486" data-permalink="https://2leggedspider.wordpress.com/2010/01/08/create-a-custom-outlook-holiday-file/abc-holiday/" data-orig-file="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/abc-holiday.png" data-orig-size="257,245" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="abc holiday" data-image-description="" data-image-caption="" data-medium-file="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/abc-holiday.png?w=257" data-large-file="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/abc-holiday.png?w=257" class="aligncenter size-full wp-image-486" title="abc holiday" src="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/abc-holiday.png?w=720" alt=""   srcset="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/abc-holiday.png 257w, https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/abc-holiday.png?w=150&amp;h=143 150w" sizes="(max-width: 257px) 100vw, 257px" /></a></p>
<p>This file can be distributed to all the ABC employees through email or a shared location.</p>
<p>Hope you found it useful![tweetmeme style=&#8221;compact&#8221;]</p>
]]></content:encoded>
					
					<wfw:commentRss>https://2leggedspider.wordpress.com/2010/01/08/create-a-custom-outlook-holiday-file/feed/</wfw:commentRss>
			<slash:comments>23</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">478</post-id>
		<media:content url="https://2.gravatar.com/avatar/b9fe7dcc559f9b3319da4ed7ce560b89ac1d718037bbf724bcf29bad02f12774?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">SavageKid</media:title>
		</media:content>

		<media:content url="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_cal_options.png" medium="image">
			<media:title type="html">outlook_cal_options</media:title>
		</media:content>

		<media:content url="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/outlook_add_hol.png" medium="image">
			<media:title type="html">outlook_add_hol</media:title>
		</media:content>

		<media:content url="https://2leggedspider.wordpress.com/wp-content/uploads/2010/01/abc-holiday.png" medium="image">
			<media:title type="html">abc holiday</media:title>
		</media:content>
	</item>
	</channel>
</rss>
