<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://code.msdn.microsoft.com/rss.xsl"?><rss version="2.0"><channel><title>Pipelines, Filters, Fluent API and LINQ to SQL</title><link>http://code.msdn.microsoft.com/productschallenge/Project/ProjectRss.aspx</link><description>A small sample on building a Pipelines and Filters system on top of LINQ to SQL. A Fluent API is thrown into the mix to make it easier to work with too.</description><item><title>UPDATED RELEASE: Initial Release (Apr 11, 2008)</title><link>http://code.msdn.microsoft.com/productschallenge/Release/ProjectReleases.aspx?ReleaseId=883</link><description>The first time you run the app it will attempt to build the database in the server taken from the connectionstring in the app.config file.&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve selected a generic product tagging mechanism for filtering the data because the two examples given are quite disparate &amp;#40;pg13 and vegetarian&amp;#41;. On top of this I am running LINQ to SQL because the deferred execution will allow me to build up a specification of what I want and then &amp;#34;compile&amp;#34; it all into one Transact-SQL statement at the end. The actual filtering process happens in a &amp;#91;url&amp;#58;Pipeline of Filters&amp;#124;http&amp;#58;&amp;#47;&amp;#47;en.wikipedia.org&amp;#47;wiki&amp;#47;Pipeline_&amp;#40;software&amp;#41;&amp;#93; &amp;#40;although I think I may be leaning more towards a &amp;#91;url&amp;#58;Specification&amp;#124;http&amp;#58;&amp;#47;&amp;#47;en.wikipedia.org&amp;#47;wiki&amp;#47;Specification_pattern&amp;#93; implementation next if I can figure it out. &lt;br /&gt;&lt;br /&gt;Lastly, I have implemented Pagination as a separate concern because I believe that it is a separate concern. Pagination belongs in the UI along with Ordering. Filtering belongs in the Business Logic Layer and the Data Access Layer should just do the CRUD.&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve started to build a fluent interface on top of everything too. This is the first time I&amp;#39;ve ever done one so it was interesting &amp;#40;harder than I&amp;#39;d thought&amp;#41;.&lt;br /&gt;&lt;br /&gt;There is more detail in the &amp;#91;url&amp;#58;Blog Post&amp;#124;http&amp;#58;&amp;#47;&amp;#47;wolfbyte-net.blogspot.com&amp;#47;2008&amp;#47;04&amp;#47;pipe-and-filters-fluent-apis-and-linq.html&amp;#93;</description><author></author><pubDate>Fri, 11 Apr 2008 08:46:04 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: Initial Release (Apr 11, 2008) 20080411A</guid></item><item><title>UPDATED RELEASE: Initial Release (Apr 11, 2008)</title><link>http://code.msdn.microsoft.com/productschallenge/Release/ProjectReleases.aspx?ReleaseId=883</link><description>The first time you run the app it will attempt to build the database in the server taken from the connectionstring in the app.config file.&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve selected a generic product tagging mechanism for filtering the data because the two examples given are quite disparate &amp;#40;pg13 and vegetarian&amp;#41;. On top of this I am running LINQ to SQL because the deferred execution will allow me to build up a specification of what I want and then &amp;#34;compile&amp;#34; it all into one Transact-SQL statement at the end. The actual filtering process happens in a &amp;#91;url&amp;#58;Pipeline of Filters&amp;#124;http&amp;#58;&amp;#47;&amp;#47;en.wikipedia.org&amp;#47;wiki&amp;#47;Pipeline_&amp;#40;software&amp;#41;&amp;#93; &amp;#40;although I think I may be leaning more towards a &amp;#91;url&amp;#58;Specification&amp;#124;http&amp;#58;&amp;#47;&amp;#47;en.wikipedia.org&amp;#47;wiki&amp;#47;Specification_pattern&amp;#93; implementation next if I can figure it out. &lt;br /&gt;&lt;br /&gt;Lastly, I have implemented Pagination as a separate concern because I believe that it is a separate concern. Pagination belongs in the UI along with Ordering. Filtering belongs in the Business Logic Layer and the Data Access Layer should just do the CRUD.&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve started to build a fluent interface on top of everything too. This is the first time I&amp;#39;ve ever done one so it was interesting &amp;#40;harder than I&amp;#39;d thought&amp;#41;.</description><author></author><pubDate>Fri, 11 Apr 2008 05:57:13 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: Initial Release (Apr 11, 2008) 20080411A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/productschallenge/Wiki/View.aspx?title=Home&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Resource Page Description&lt;/b&gt;&lt;br /&gt;A small sample on building a Pipelines and Filters system on top of LINQ to SQL. A Fluent API is thrown into the mix to make it easier to work with too.
&lt;br /&gt; &lt;br /&gt;This idea for this stems from a &lt;a href="http://ayende.com/Blog/archive/2008/04/09/A-challenge-Getting-a-list-of-products.aspx" class="externalLink"&gt;challenge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; issued by Ayende from his blog. The task is to build a command-line interface for retrieving a list (the first 10) of products from some data-storage mechnsim (up to the implementer) and potentially filter the list using any number of restrictions imposed in any order by passing in parameters to the application.&lt;br /&gt;
&lt;/div&gt;</description><author>michaelminutillo</author><pubDate>Fri, 11 Apr 2008 05:46:48 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080411A</guid></item><item><title>CREATED RELEASE: Initial Release (Apr 11, 2008)</title><link>http://code.msdn.microsoft.com/productschallenge/Release/ProjectReleases.aspx?ReleaseId=883</link><description>The first time you run the app it will attempt to build the database in the server taken from the connectionstring in the app.config file.</description><author></author><pubDate>Fri, 11 Apr 2008 05:37:04 GMT</pubDate><guid isPermaLink="false">CREATED RELEASE: Initial Release (Apr 11, 2008) 20080411A</guid></item></channel></rss>