<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Laurent Kempé : .NET Framework 2.0</title><link>http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx</link><description>Tags: .NET Framework 2.0</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Jetbrains Resharper 2.5 RTM</title><link>http://weblogs.asp.net/lkempe/archive/2006/12/12/jetbrains-resharper-2-5-rtm.aspx</link><pubDate>Tue, 12 Dec 2006 21:41:37 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1220908</guid><dc:creator>lkempe</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lkempe/rsscomments.aspx?PostID=1220908</wfw:commentRss><comments>http://weblogs.asp.net/lkempe/archive/2006/12/12/jetbrains-resharper-2-5-rtm.aspx#comments</comments><description>&lt;p&gt;As you certainly know I you sometimes read my blog I am absolutely addicted to that tool and can't work without it anymore in Visual Studio 2005.&lt;/p&gt; &lt;p&gt;So I am happy to announce that Jetbrains finally released &lt;a href="http://www.jetbrains.com/resharper/" target="_blank"&gt;ReSharper 2.5.&lt;/a&gt; This version is for Visual Studio 2005 only. So what's new on this new version?&lt;/p&gt; &lt;p&gt;Main focus was on the improvement of performance; faster installation and startup, faster typing (including auto-popup on Code Completions), plus speedups for code formatting, error highlighting, Live Templates, parameter info, and more.&lt;/p&gt; &lt;p&gt;For sure they also added some new stuff like Navigate from here, Enable/Disable Context Actions, Go To File Member, an improved find results view, Analyze Null References.&lt;/p&gt; &lt;p&gt;But wait!!! You are using VB? hey &lt;a href="http://www.wygwam.com/" target="_blank"&gt;Wygwam guys&lt;/a&gt; ;) They now support VB&lt;/p&gt; &lt;p&gt;ReSharper now recognizes VB code in your project and extends the following features to it:&lt;/p&gt; &lt;li&gt;All navigation and search features  &lt;li&gt;Matching brace highlighting  &lt;li&gt;Ctrl + W (Expand selection)  &lt;li&gt;Ctrl + Q (Quick Documentation Lookup)  &lt;li&gt;Parameter info (no autopopup, works only by Ctrl + P)  &lt;li&gt;Identifier highlighting  &lt;li&gt;Also, when you apply refactorings to C# code, ReSharper warns you if VB usages need to be updated&lt;/li&gt; &lt;p&gt;I guess the refactoring will also come soon.&lt;/p&gt; &lt;p&gt;And the best for the end the upgrade is free for all users of Resharper.&lt;/p&gt; &lt;p&gt;Don't wait, &lt;a href="http://www.jetbrains.com/resharper/download/index.html" target="_blank"&gt;download it here,&lt;/a&gt; and try it.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1220908" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lkempe/archive/tags/Tools/default.aspx">Tools</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx">.NET Framework 2.0</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Interview of Christof Wittig CEO of db4o</title><link>http://weblogs.asp.net/lkempe/archive/2006/12/02/interview-of-christof-wittig-ceo-of-db4o.aspx</link><pubDate>Sat, 02 Dec 2006 09:51:14 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1107155</guid><dc:creator>lkempe</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lkempe/rsscomments.aspx?PostID=1107155</wfw:commentRss><comments>http://weblogs.asp.net/lkempe/archive/2006/12/02/interview-of-christof-wittig-ceo-of-db4o.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.codes-sources.com/patrice" target="_blank"&gt;Patrice Lamarche&lt;/a&gt; had the opportunity to &lt;a href="http://blogs.codes-sources.com/patrice/archive/2006/11/30/interview-christof-wittig-ceo-de-db4o.aspx" target="_blank"&gt;interview Christoff Wittig&lt;/a&gt;, CEO of &lt;a href="http://www.db4o.com" target="_blank"&gt;db4objects&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;db4objects sponsors the open source database db4o which is a native object database engine for .NET and Java.&lt;/p&gt; &lt;p&gt;There are several aspects that I particularly like in what I read:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;The way the company seems to work with distributed employees all around the world&lt;/li&gt; &lt;li&gt;The open source development model&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;And from a technical aspect I really like this kind of code:&lt;/p&gt; &lt;p&gt;&lt;code&gt;IList&amp;lt;Student&amp;gt; students = db.Query&amp;lt;Student&amp;gt;(delegate(Student student){&lt;br&gt;&amp;nbsp; &amp;nbsp; return student.Age &amp;lt; 20&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;&amp;amp; student.Grade == gradeA;&lt;br&gt;&amp;nbsp; });&lt;/code&gt;&lt;/p&gt; &lt;p&gt;It is named Native Queries, and it is 100% type safe, I like when the compiler already tells me that my code has a defect.&lt;/p&gt; &lt;p&gt;There are other good points about it that I will have to test, when I get time...&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1107155" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx">.NET Framework 2.0</category></item><item><title>Tech Head Brothers Authoring Tool - Part 1 Video</title><link>http://weblogs.asp.net/lkempe/archive/2006/07/18/Tech-Head-Brothers-Authoring-Tool-_2D00_-Part-1-Video.aspx</link><pubDate>Mon, 17 Jul 2006 22:16:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:458737</guid><dc:creator>lkempe</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lkempe/rsscomments.aspx?PostID=458737</wfw:commentRss><comments>http://weblogs.asp.net/lkempe/archive/2006/07/18/Tech-Head-Brothers-Authoring-Tool-_2D00_-Part-1-Video.aspx#comments</comments><description>&lt;p&gt;I have quickly posted a &lt;a href="http://www.youtube.com/watch?v=pqLqv_sSOgo"&gt;video showing the insertion of an image and source code&lt;/a&gt; using the &lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=THBAuthoring"&gt;Tech Head Brothers Authoring tool&lt;/a&gt; on &lt;a href="http://youtube.com"&gt;YouTube&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;This demo demonstrates offline preview and the ease of inserting images and source code in authored articles.&lt;/p&gt;&lt;p&gt;I used the &lt;a href="http://www.techsmith.com/camtasia.asp"&gt;fantastic Camtasia&lt;/a&gt; from &lt;a href="http://www.techsmith.com/"&gt;TechSmith&lt;/a&gt; to realize the video and was able to upload on YouTube in minutes, really cool tool and service.&lt;/p&gt;&lt;p&gt;&lt;u&gt;Remark&lt;/u&gt;: It is a shame that we can&amp;#39;t add &amp;lt;object&amp;gt; tag on this blog.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=458737" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx">.NET Framework 2.0</category></item><item><title>Yeah!!! :-) Publications are working.</title><link>http://weblogs.asp.net/lkempe/archive/2006/03/18/440548.aspx</link><pubDate>Sat, 18 Mar 2006 08:50:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:440548</guid><dc:creator>lkempe</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lkempe/rsscomments.aspx?PostID=440548</wfw:commentRss><comments>http://weblogs.asp.net/lkempe/archive/2006/03/18/440548.aspx#comments</comments><description>&lt;p&gt;Today is a big day with a &lt;strong&gt;really cool&lt;/strong&gt; milestone for 
&lt;strong&gt;&lt;a href="http://www.techheadbrothers.com/"&gt;Tech Head 
Brothers&lt;/a&gt;&lt;/strong&gt; website.&lt;/p&gt;
&lt;p&gt;First I am able to publish/update content on the site with my new publishing 
tool; a word template using vsto 2005 and secured web services. This piece of 
code let me publish content with pictures, colorized source code, zip files for 
sample applictions and this directly out of Word 2003. Really cool!!!&lt;/p&gt;
&lt;p&gt;Second I can also publish/update/delete news directly from my prefered blog 
tool: &lt;a href="http://projectdistributor.net/Releases/Release.aspx?releaseId=325"&gt;PostXING&lt;/a&gt;. 
By the way the 2.0 Beta 1.0 was realized and I have to say: "&lt;a href="http://www.chrisfrazier.net/blog/"&gt;Chris&lt;/a&gt; you made an awesome work, 
congrats".&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=440548" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lkempe/archive/tags/Tech+Head+Brothers/default.aspx">Tech Head Brothers</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx">.NET Framework 2.0</category></item><item><title>Visual Studio 2005 Team Suite installation</title><link>http://weblogs.asp.net/lkempe/archive/2005/12/10/432804.aspx</link><pubDate>Fri, 09 Dec 2005 23:59:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:432804</guid><dc:creator>lkempe</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lkempe/rsscomments.aspx?PostID=432804</wfw:commentRss><comments>http://weblogs.asp.net/lkempe/archive/2005/12/10/432804.aspx#comments</comments><description>
&lt;p&gt;It was a nightmare to have this installed and working!!! For all previous 
versions, since the alpha version, I used a Virtual PC. And now that the product 
went RTM I decided that it was time to install it on my productive machine.&lt;/p&gt;
&lt;p&gt;I had not installed any piece of alpha nor beta software on my productive 
environment before starting the installation of Visual Studio 2005 Team 
Suite.&lt;/p&gt;
&lt;p&gt;I ran the setup with default options except the location of the folder to 
install. Everything went fine till the end and then I had a strange message 
about Office 2003 missing SP2 and&amp;nbsp;PIA... It was proposed that I 
run&amp;nbsp;VSTOR.EXE manually.&lt;/p&gt;
&lt;p&gt;Running VSTOR.EXE I get an error message saying that I need to uninstall 
"Visual Studio .NET prerequisites - English", but I don't had that as an option 
in the Add/Remove.&lt;br&gt;&lt;br&gt;From the support page (&lt;a title="http://msdn.microsoft.com/vstudio/express/support/uninstall/" href="http://msdn.microsoft.com/vstudio/express/support/uninstall/" target="_blank"&gt;http://msdn.microsoft.com/vstudio/express/support/uninstall/&lt;/a&gt;) 
I downloaded the uninstall tool, even if I never installed beta version before. 
Running it, it does uninstall SQL Server 2005 Express, then I get this 
error:&lt;br&gt;&lt;br&gt;The following task did not complete successfully: &lt;br&gt;&lt;font class="name_link" color="#800080"&gt;&lt;u&gt;Uninstall Visual Studio 
components&lt;/u&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="media"&gt;I then decided to uninstall and try to re-install, I did it two 
times with some operations in between. No way still not working. I started to be 
really really pissed off.&lt;/p&gt;
&lt;p class="media"&gt;To cooooool down I decided to get some music: &lt;a href="http://www.amazon.fr/exec/obidos/ASIN/B000BNUT7A/techheadbroth-21/402-5617210-5443358"&gt;Jack 
Johnson - In Between Dreams&lt;/a&gt;, really really cool. Thanks &lt;a href="http://myaustraliantrip.blogspot.com"&gt;Mathieu&lt;/a&gt;.&lt;/p&gt;
&lt;p class="media"&gt;Then I went with regedit to 
&lt;em&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&lt;br&gt;&lt;/em&gt;and 
started to uninstall stuff with &lt;em&gt;msiexec /x {guid}&lt;/em&gt;&lt;/p&gt;
&lt;p class="media"&gt;I finally managed to be able to install VSTOR.EXE after 
installing .Net Framework 2. Then a full re-install&amp;nbsp; of Visual Studio 2005 
Team Suite without SQL Server 2005 Express that I installed by hand and also 
with several trial before being successful.&lt;/p&gt;
&lt;p class="media"&gt;I finally have a development environment again and I can go on 
with the development of Tech Head Brothers in ASP.NET 2.0 and the new version of 
the publishing tool based on Word 2003.&lt;/p&gt;
&lt;p class="media"&gt;[ Currently Playing : Better Together - Jack Johnson - In Between 
Dreams (03:28) ]&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=432804" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx">.NET Framework 2.0</category></item><item><title>Codezone search integration in Visual Studio 2005 !!! Cooool stuf :-)</title><link>http://weblogs.asp.net/lkempe/archive/2005/08/17/422902.aspx</link><pubDate>Wed, 17 Aug 2005 21:53:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:422902</guid><dc:creator>lkempe</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lkempe/rsscomments.aspx?PostID=422902</wfw:commentRss><comments>http://weblogs.asp.net/lkempe/archive/2005/08/17/422902.aspx#comments</comments><description>
&lt;p&gt;As previously announced in this post: "&lt;a href="http://weblogs.asp.net/lkempe/archive/2005/03/29/396184.aspx"&gt;Microsoft 
Announces CodeZone!&lt;/a&gt;", &amp;nbsp;&lt;a href="http://www.techheadbrothers.com"&gt;Tech 
Head Brothers&lt;/a&gt;, my French portal about Microsoft .NET technologies, will be 
part of Codezone.&amp;nbsp; Today for the first time I am able to see what this 
means to be a part of the Codezone program.&lt;/p&gt;
&lt;p&gt;As you can see in the option dialog of the Visual Studio 2005 help, you will 
be able to choose from a list of currently 28 world wide community web sites (we 
are 32nd - at the end, as far as I can remember).&lt;/p&gt;
&lt;p&gt;&lt;img src="http://membres.lycos.fr/lkempe//thbcodezone1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;And Tech Head Brothers is in the list. Great!!!&lt;/p&gt;
&lt;p&gt;When doing a search you will get results from the various community sites 
that participate in Codezone.&lt;br&gt;For example a search about gzip returns two 
articles from Tech Head Brothers: one from me and one from &lt;a href="http://myaustraliantrip.blogspot.com/"&gt;Mathieu&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://membres.lycos.fr/lkempe//thbcodezone2.jpg"&gt;&lt;/p&gt;
&lt;p&gt;This has been in place for a while but had not been working on my VPC because 
(Thanks &lt;a href="http://www.dotnetjunkies.com/weblog/dougseven/"&gt;Doug&lt;/a&gt; ;) my 
clock was not set correctly. It has to be set within 7 minutes of the 
corresponding time i.e. present time.&lt;/p&gt;
&lt;p&gt;For more information on what I am talking about read: "&lt;a href="http://markitup.com/Posts/Post.aspx?postId=611bc7a7-cd07-4dd8-a058-14ad1884538b"&gt;What 
is Codezone Community Search?&lt;/a&gt;"&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=422902" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lkempe/archive/tags/Tech+Head+Brothers/default.aspx">Tech Head Brothers</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/Whidbey/default.aspx">Whidbey</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx">.NET Framework 2.0</category></item><item><title>Jetbrains Resharper 2.0 Early Access Program (EAP) started !!!</title><link>http://weblogs.asp.net/lkempe/archive/2005/07/19/419943.aspx</link><pubDate>Tue, 19 Jul 2005 21:55:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:419943</guid><dc:creator>lkempe</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lkempe/rsscomments.aspx?PostID=419943</wfw:commentRss><comments>http://weblogs.asp.net/lkempe/archive/2005/07/19/419943.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Great news&lt;/strong&gt; from &lt;a href="http://www.jetbrains.com/"&gt;Jetbrains&lt;/a&gt; tonight with the launch of the 
ReSharper 2.0 EAP started. You can download the version for Visual Studio 2003 
and Visual Studio 2005 Beta 2 and VS 2005 June CTP are supported &lt;a href="http://www.jetbrains.net/confluence/display/ReSharper/Download"&gt;on this 
page&lt;/a&gt;. I can't work anymore without that tool . There is for sure some 
refactoring capabilities&amp;nbsp;in Visual Studio 2005 Beta 2, but it is far from 
being enough.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.jetbrains.net/confluence/display/ReSharper/Changes" name="Changes-Build201%28fromReSharper1.5%29"&gt;Build 201 (Changes from ReSharper 
1.5)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;h5 class="heading5"&gt;&lt;a name="Changes-General"&gt;General&lt;/a&gt;&lt;/h5&gt;
&lt;ul class="star"&gt;
  &lt;li&gt;Support of Visual Studio 2005 (Beta 2 and June CTP are currently 
  supported) 
  &lt;li&gt;Support of C# 2.0 constructs (for Visual Studio 2005) - not all constructs 
  are properly supported yet 
  &lt;li&gt;Support of ASP.NET - in progress, not all features work properly 
  &lt;li&gt;New preprocessor directives handling (no errors caused by use of 
  preprocessor directives anymore!) &lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h5 class="heading5"&gt;&lt;a name="Changes-OntheflyCodeHighlighting"&gt;On-the-fly Code 
Highlighting&lt;/a&gt;&lt;/h5&gt;
&lt;ul class="star"&gt;
  &lt;li&gt;New warning highlightings: redundant 'as' type cast; redundant empty 
  constructor; sealed member in sealed class; new virtual member in ....; 'new' 
  modifier is missing; redundant 'new' modifier; redundant boolean comparison; 
  redundant qualifiers; local or parameter hides member; empty control statement 
  body 
  &lt;li&gt;More syntax errors highlighted 
  &lt;li&gt;Lots of new quickfixes 
  &lt;li&gt;Quickly enable/disable highlighting for particular file (&lt;b class="strong"&gt;Ctrl+8&lt;/b&gt;) &lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h5 class="heading5"&gt;&lt;a name="Changes-LiveTemplates"&gt;Live Templates&lt;/a&gt;&lt;/h5&gt;
&lt;ul class="star"&gt;
  &lt;li&gt;Support for templates sharing, import/export, etc 
  &lt;li&gt;"Create template from selection" feature &lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h5 class="heading5"&gt;&lt;a name="Changes-CodeFormatter"&gt;Code Formatter&lt;/a&gt;&lt;/h5&gt;
&lt;ul class="star"&gt;
  &lt;li&gt;Line wrapping 
  &lt;li&gt;Code style settings: support for sharing, import/export &lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h5 class="heading5"&gt;&lt;a name="Changes-Other"&gt;Other&lt;/a&gt;&lt;/h5&gt;
&lt;ul class="star"&gt;
  &lt;li&gt;Unit tests support (NUnit, csUnit, TeamTest tests are supported) 
  &lt;li&gt;"Go to Symbol" feature - &lt;b class="strong"&gt;Ctrl+Shift+Alt+N&lt;/b&gt; (the same as 
  &lt;b class="strong"&gt;Ctrl+N&lt;/b&gt; and &lt;b class="strong"&gt;Ctrl+Shift+N&lt;/b&gt; but navigates 
  to all types and members) 
  &lt;li&gt;Quick-documentation feature (&lt;b class="strong"&gt;Ctrl+Q&lt;/b&gt;) shows popup with 
  documentation for symbol under caret (also works within doc-comment to show 
  presentable form of it) 
  &lt;li&gt;File structure view with reqions, drag&amp;amp;drop etc 
  &lt;li&gt;Mouse-click on implements/overrides/hides gutter icons to navigate 
  &lt;li&gt;Rename refactoring suggests to rename overloaded methods 
  &lt;li&gt;Rename refactoring suggests to rename the corresponding property when 
  renaming field and vise versa 
  &lt;li&gt;Code completion after dot shows indexers 
  &lt;li&gt;Code completion in namespace declarations&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span class="pagetitle"&gt;You can check the whole plan for ReSharper 2.0 &lt;a href="http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+2.0+Plan"&gt;on 
this page&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;!-- page content ends --&gt;&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description
    rdf:about="http://www.jetbrains.net/confluence/display/ReSharper/Changes"
    dc:identifier="http://www.jetbrains.net/confluence/display/ReSharper/Changes"
    dc:title="Changes"
    trackback:ping="http://www.jetbrains.net/confluence/rpc/trackback/130"/&gt;
&lt;/rdf:RDF&gt;
--&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=419943" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lkempe/archive/tags/Tools/default.aspx">Tools</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx">.NET Framework 2.0</category></item><item><title>Visual Studio 2005, Team Foundation (aka Whidbey) Beta 2 will be here on the 25 of April</title><link>http://weblogs.asp.net/lkempe/archive/2005/04/09/397801.aspx</link><pubDate>Sat, 09 Apr 2005 12:36:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:397801</guid><dc:creator>lkempe</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lkempe/rsscomments.aspx?PostID=397801</wfw:commentRss><comments>http://weblogs.asp.net/lkempe/archive/2005/04/09/397801.aspx#comments</comments><description>
&lt;p&gt;What can you expect from the Beta Experience?&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Visual Studio 2005 Team System Beta 2 
  &lt;li&gt;Team Foundation Server Beta 2 
  &lt;li&gt;WeFly247 training DVD 
  &lt;li&gt;SQL Server 2005 Standard Edition Community Technology Preview 
  &lt;li&gt;The Beta Experience newsletter (6-weekly, terminated with the launch of 
  the final version of Visual Studio 2005)&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I hope that this time Team Foundation can be installed on one VPC.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;Updated&lt;/u&gt;: The information is comming from this page: &lt;a href="http://www.microsoft.com/emea/msdn/betaexperience/"&gt;The Beta 
Experience&lt;/a&gt;&amp;nbsp;(Thanks &lt;a href="http://weblogs.asp.net/acampbell"&gt;Alex&lt;/a&gt;).&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=397801" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lkempe/archive/tags/Whidbey/default.aspx">Whidbey</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx">.NET Framework 2.0</category></item><item><title>Introducing Custom Entity Classes</title><link>http://weblogs.asp.net/lkempe/archive/2005/03/15/394737.aspx</link><pubDate>Tue, 15 Mar 2005 20:44:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:394737</guid><dc:creator>lkempe</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lkempe/rsscomments.aspx?PostID=394737</wfw:commentRss><comments>http://weblogs.asp.net/lkempe/archive/2005/03/15/394737.aspx#comments</comments><description>
&lt;p&gt;If you read my two last posts:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href="http://weblogs.asp.net/lkempe/archive/2005/03/09/391247.aspx"&gt;DataAccessLayer.FindAll(PublishedBy(Author))&lt;/a&gt; 

  &lt;li&gt;&lt;a href="http://weblogs.asp.net/lkempe/archive/2005/03/12/394323.aspx"&gt;Refactoring 
  the set of Predicate with an Interpreter&lt;/a&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Then I encourage you to read the article by &lt;a href="http://www.openmymind.net/index.aspx"&gt;Karl Seguin&lt;/a&gt; From Microsoft 
Corporation: "&lt;a href="http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/CustEntCls.asp"&gt;On 
the Way to Mastering ASP.NET: Introducing Custom Entity Classes&lt;/a&gt;" published 
on MSDN. It is a clear explanation of what I started on that two posts full of 
source code.&lt;/p&gt;
&lt;p class="media"&gt;[ Currently Playing : hotel intro - Moby - hotel (01:55) 
]&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=394737" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lkempe/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx">.NET Framework 2.0</category></item><item><title>Refactoring the set of Predicate with an Interpreter</title><link>http://weblogs.asp.net/lkempe/archive/2005/03/12/394323.aspx</link><pubDate>Sat, 12 Mar 2005 00:09:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:394323</guid><dc:creator>lkempe</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lkempe/rsscomments.aspx?PostID=394323</wfw:commentRss><comments>http://weblogs.asp.net/lkempe/archive/2005/03/12/394323.aspx#comments</comments><description>
&lt;p&gt;This evening I continued my journey with the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/csharp_generics.asp"&gt;C#&amp;nbsp;Generics&lt;/a&gt;. 
I refactored what I described in my post "&lt;a href="http://weblogs.asp.net/lkempe/archive/2005/03/09/391247.aspx"&gt;DataAccessLayer.FindAll(PublishedBy(Author))&lt;/a&gt; 
" to be able to use the &lt;a href="http://www.dofactory.com/Patterns/PatternInterpreter.aspx"&gt;Design 
Pattern&amp;nbsp;Interpreter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The result in the ASPX code behind file is the following:&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; AndSpec spec = &lt;font color="blue"&gt;new&lt;/font&gt; AndSpec(
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt;                         &lt;font color="blue"&gt;new&lt;/font&gt; AndSpec(
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt;                             &lt;font color="blue"&gt;new&lt;/font&gt; PublishedSpec(),
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt;                             &lt;font color="blue"&gt;new&lt;/font&gt; BeforeDateSpec(DateTime.Parse(&lt;font color="maroon"&gt;"01/01/2005"&lt;/font&gt;))
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt;                         ),
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt;                         &lt;font color="blue"&gt;new&lt;/font&gt; OrSpec(
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt;                             &lt;font color="blue"&gt;new&lt;/font&gt; AuthorSpec(&lt;font color="maroon"&gt;"Mathieu Kempé"&lt;/font&gt;),
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  8&lt;/span&gt;                             &lt;font color="blue"&gt;new&lt;/font&gt; AuthorSpec(&lt;font color="maroon"&gt;"Laurent Kempé"&lt;/font&gt;)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  9&lt;/span&gt;                         )
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 10&lt;/span&gt;                     );
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 11&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 12&lt;/span&gt; DataAccessor&amp;lt;Article&amp;gt; articles = &lt;font color="blue"&gt;new&lt;/font&gt; DataAccessor&amp;lt;Article&amp;gt;(&lt;font color="maroon"&gt;"GetArticles"&lt;/font&gt;);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 13&lt;/span&gt; GridView3.DataSource = articles.FindAll(Matching(spec));
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 14&lt;/span&gt; GridView3.DataBind();&lt;/pre&gt;&lt;pre&gt;With the unique Matching Predicate, replacing all the other Predicate:&lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;protected&lt;/font&gt; Predicate&amp;lt;Article&amp;gt; Matching(Spec spec)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt; 	&lt;font color="blue"&gt;return&lt;/font&gt; &lt;font color="blue"&gt;delegate&lt;/font&gt;(Article a)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt; 		&lt;font color="blue"&gt;return&lt;/font&gt; spec.isSatisfiedBy(a);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt; 	};
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt; }&lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;To achieve this I first added two more properties to my Entity, Article. I 
did not added new constructors because those two properties are not 
mandatory:&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;private&lt;/font&gt; DateTime datePublished;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt; &lt;font color="blue"&gt;public&lt;/font&gt; DateTime DatePublished
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt; 	&lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; datePublished; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt; 	&lt;font color="blue"&gt;set&lt;/font&gt; { datePublished = value; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  8&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  9&lt;/span&gt; &lt;font color="blue"&gt;private&lt;/font&gt; DateTime dateModified;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 10&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 11&lt;/span&gt; &lt;font color="blue"&gt;public&lt;/font&gt; DateTime DateModified
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 12&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 13&lt;/span&gt; 	&lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; dateModified; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 14&lt;/span&gt; 	&lt;font color="blue"&gt;set&lt;/font&gt; { dateModified = value; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 15&lt;/span&gt; }&lt;/pre&gt;&lt;pre&gt;Then I modified my Data Access Layer to have it a bit more generic, starting with the interface :&lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;interface&lt;/font&gt; IDataAccess&amp;lt;T&amp;gt;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt; 	List&amp;lt;T&amp;gt; GetAll();
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt; 	List&amp;lt;T&amp;gt; FindAll(Predicate&amp;lt;T&amp;gt; match);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt; &lt;/pre&gt;&lt;/pre&gt;&lt;pre&gt;I removed the method "T Get(Guid uuid)" and "T Get(string uuid)" because that can be easily expressed with a Predicate.&lt;/pre&gt;&lt;pre&gt;I made a Generic implementation of my Data Access through a DataAccessor class:&lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;namespace&lt;/font&gt; TechHeadBrothers.Portal.DAL
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; DataAccessor&amp;lt;T&amp;gt; : IDataAccess&amp;lt;T&amp;gt; where T : &lt;font color="blue"&gt;new&lt;/font&gt;()
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt; 		List&amp;lt;T&amp;gt; list = &lt;font color="blue"&gt;null&lt;/font&gt;;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; DataAccessor(&lt;font color="blue"&gt;string&lt;/font&gt; sp)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  8&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  9&lt;/span&gt; 			readFromDatabase(sp);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 10&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 11&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 12&lt;/span&gt; 		&lt;font color="blue"&gt;#region&lt;/font&gt; Protected Methods
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 13&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 14&lt;/span&gt; 		&lt;font color="blue"&gt;protected&lt;/font&gt; &lt;font color="blue"&gt;void&lt;/font&gt; readFromDatabase(&lt;font color="blue"&gt;string&lt;/font&gt; sp)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 15&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 16&lt;/span&gt; 			&lt;font color="green"&gt;// Create Instance of Connection and Command Object
&lt;/font&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 17&lt;/span&gt; 			SqlConnection myConnection =
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 18&lt;/span&gt; 				&lt;font color="blue"&gt;new&lt;/font&gt; SqlConnection(ConfigurationManager.ConnectionStrings[&lt;font color="maroon"&gt;"TechHeadBrothers"&lt;/font&gt;].ConnectionString);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 19&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 20&lt;/span&gt; 			SqlDataAdapter myCommand = &lt;font color="blue"&gt;new&lt;/font&gt; SqlDataAdapter(sp, myConnection);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 21&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 22&lt;/span&gt; 			&lt;font color="green"&gt;// Mark the Command as a SPROC
&lt;/font&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 23&lt;/span&gt; 			myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 24&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 25&lt;/span&gt; 			&lt;font color="green"&gt;// Create and Fill the DataSet
&lt;/font&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 26&lt;/span&gt; 			DataSet ds = &lt;font color="blue"&gt;new&lt;/font&gt; DataSet();
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 27&lt;/span&gt; 			myCommand.Fill(ds);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 28&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 29&lt;/span&gt; 			myConnection.Close();
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 30&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 31&lt;/span&gt; 			&lt;font color="blue"&gt;this&lt;/font&gt;.list = DataAdapterFactory.createAdapter&amp;lt;T&amp;gt;().Adapt(ds.Tables[&lt;font color="maroon"&gt;0&lt;/font&gt;]);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 32&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 33&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 34&lt;/span&gt; 		&lt;font color="blue"&gt;#endregion&lt;/font&gt;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 35&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 36&lt;/span&gt; 		&lt;font color="blue"&gt;#region&lt;/font&gt; IDataAccess&amp;lt;T&amp;gt; Members
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 37&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 38&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; List&amp;lt;T&amp;gt; GetAll()
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 39&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 40&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; list;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 41&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 42&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 43&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; List&amp;lt;T&amp;gt; FindAll(Predicate&amp;lt;T&amp;gt; match)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 44&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 45&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; list.FindAll(match);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 46&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 47&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 48&lt;/span&gt; 		&lt;font color="blue"&gt;#endregion&lt;/font&gt;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 49&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 50&lt;/span&gt; }
&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;I had to implement an Adapter to convert the data from the Database representation to the Entity :&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;abstract&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; DataAdapter&amp;lt;T&amp;gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; List&amp;lt;T&amp;gt; Adapt(DataTable table)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt; 		List&amp;lt;T&amp;gt; list = &lt;font color="blue"&gt;new&lt;/font&gt; List&amp;lt;T&amp;gt;(table.Rows.Count);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt; 		&lt;font color="blue"&gt;foreach&lt;/font&gt; (DataRow row &lt;font color="blue"&gt;in&lt;/font&gt; table.Rows)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  8&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  9&lt;/span&gt; 			list.Add(&lt;font color="blue"&gt;this&lt;/font&gt;.Adapt(row));
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 10&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 11&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 12&lt;/span&gt; 		&lt;font color="blue"&gt;return&lt;/font&gt; list;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 13&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 14&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 15&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;abstract&lt;/font&gt; T Adapt(DataRow row);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 16&lt;/span&gt; }&lt;/pre&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;And a Factory :&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;class&lt;/font&gt; DataAdapterFactory
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt;     &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; DataAdapter&amp;lt;T&amp;gt; createAdapter&amp;lt;T&amp;gt;() where T : &lt;font color="blue"&gt;new&lt;/font&gt;()
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt;     {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt;         &lt;font color="blue"&gt;string&lt;/font&gt; name = &lt;font color="blue"&gt;new&lt;/font&gt; T().GetType().Name.ToLower();
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt;         &lt;font color="blue"&gt;if&lt;/font&gt; ( name == &lt;font color="maroon"&gt;"article"&lt;/font&gt;)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  8&lt;/span&gt;             &lt;font color="blue"&gt;return&lt;/font&gt; &lt;font color="blue"&gt;new&lt;/font&gt; ArticleAdapter() &lt;font color="blue"&gt;as&lt;/font&gt; DataAdapter&amp;lt;T&amp;gt;;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  9&lt;/span&gt;         &lt;font color="blue"&gt;else&lt;/font&gt; &lt;font color="blue"&gt;if&lt;/font&gt; ( name == &lt;font color="maroon"&gt;"author"&lt;/font&gt;)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 10&lt;/span&gt;             &lt;font color="blue"&gt;return&lt;/font&gt; &lt;font color="blue"&gt;new&lt;/font&gt; AuthorAdapter() &lt;font color="blue"&gt;as&lt;/font&gt; DataAdapter&amp;lt;T&amp;gt;;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 11&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 12&lt;/span&gt;         &lt;font color="blue"&gt;return&lt;/font&gt; &lt;font color="blue"&gt;null&lt;/font&gt;;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 13&lt;/span&gt;     }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 14&lt;/span&gt; }&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;Here is the concrete implementation for the Article Entity Adapter:&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;class&lt;/font&gt; ArticleAdapter : DataAdapter&amp;lt;Article&amp;gt;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt;     &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;override&lt;/font&gt; Article Adapt(DataRow row)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt;     {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt;         Article article = &lt;font color="blue"&gt;new&lt;/font&gt; Article((&lt;font color="blue"&gt;string&lt;/font&gt;)row[&lt;font color="maroon"&gt;"Title"&lt;/font&gt;],
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt;                                       (&lt;font color="blue"&gt;string&lt;/font&gt;)row[&lt;font color="maroon"&gt;"Description"&lt;/font&gt;],
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt;                                       (&lt;font color="blue"&gt;string&lt;/font&gt;)row[&lt;font color="maroon"&gt;"Author"&lt;/font&gt;],
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  8&lt;/span&gt;                                         (&lt;font color="blue"&gt;bool&lt;/font&gt;)row[&lt;font color="maroon"&gt;"isPublished"&lt;/font&gt;],
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  9&lt;/span&gt;                                         (Guid)row[&lt;font color="maroon"&gt;"uuid"&lt;/font&gt;]);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 10&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 11&lt;/span&gt;         &lt;font color="blue"&gt;if&lt;/font&gt; (row[&lt;font color="maroon"&gt;"DatePublished"&lt;/font&gt;] != DBNull.Value)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 12&lt;/span&gt;         {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 13&lt;/span&gt;             article.DatePublished = (DateTime)row[&lt;font color="maroon"&gt;"DatePublished"&lt;/font&gt;];
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 14&lt;/span&gt;         }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 15&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 16&lt;/span&gt;         &lt;font color="blue"&gt;if&lt;/font&gt; (row[&lt;font color="maroon"&gt;"DateModified"&lt;/font&gt;] != DBNull.Value)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 17&lt;/span&gt;         {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 18&lt;/span&gt;             article.DateModified = (DateTime)row[&lt;font color="maroon"&gt;"DateModified"&lt;/font&gt;];
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 19&lt;/span&gt;         }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 20&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 21&lt;/span&gt;         &lt;font color="blue"&gt;return&lt;/font&gt; article;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 22&lt;/span&gt;     }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 23&lt;/span&gt; }&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;I made also a Business Layer generic class, but has it is just for the moment a wrapper around the DataAccessor, I will not show it.&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;And finally the &lt;a href="http://www.dofactory.com/Patterns/PatternInterpreter.aspx"&gt;Interpreter Design Pattern&lt;/a&gt;:&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;abstract&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; Spec
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;abstract&lt;/font&gt; &lt;font color="blue"&gt;bool&lt;/font&gt; isSatisfiedBy(Article article);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt; }&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;pre&gt;With the different concrete Specifications:&lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; PublishedSpec : Spec
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; PublishedSpec()
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;override&lt;/font&gt; &lt;font color="blue"&gt;bool&lt;/font&gt; isSatisfiedBy(Article article)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  8&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  9&lt;/span&gt;  		&lt;font color="blue"&gt;return&lt;/font&gt; (article.isPublished == &lt;font color="maroon"&gt;true&lt;/font&gt;);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 10&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 11&lt;/span&gt; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 12&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 13&lt;/span&gt; &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; BeforeDateSpec : Spec
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 14&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 15&lt;/span&gt; 	&lt;font color="blue"&gt;private&lt;/font&gt; DateTime date;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 16&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 17&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; DateTime Date
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 18&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 19&lt;/span&gt; 		&lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; date; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 20&lt;/span&gt; 		&lt;font color="blue"&gt;set&lt;/font&gt; { date = value; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 21&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 22&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 23&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; BeforeDateSpec(DateTime date)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 24&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 25&lt;/span&gt; 		&lt;font color="blue"&gt;this&lt;/font&gt;.Date = date;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 26&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 27&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 28&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;override&lt;/font&gt; &lt;font color="blue"&gt;bool&lt;/font&gt; isSatisfiedBy(Article article)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 29&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 30&lt;/span&gt; 		&lt;font color="blue"&gt;return&lt;/font&gt; (article.DatePublished &amp;lt; &lt;font color="blue"&gt;this&lt;/font&gt;.Date);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 31&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 32&lt;/span&gt; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 33&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 34&lt;/span&gt; &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; AuthorSpec : Spec
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 35&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 36&lt;/span&gt; 	&lt;font color="blue"&gt;private&lt;/font&gt; &lt;font color="blue"&gt;string&lt;/font&gt; author;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 37&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 38&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;string&lt;/font&gt; Author
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 39&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 40&lt;/span&gt; 	  &lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; author;}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 41&lt;/span&gt; 	  &lt;font color="blue"&gt;set&lt;/font&gt; { author = value; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 42&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 43&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 44&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; AuthorSpec (&lt;font color="blue"&gt;string&lt;/font&gt; author)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 45&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 46&lt;/span&gt; 		&lt;font color="blue"&gt;this&lt;/font&gt;.Author = author;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 47&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 48&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 49&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;override&lt;/font&gt; &lt;font color="blue"&gt;bool&lt;/font&gt; isSatisfiedBy(Article article)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 50&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 51&lt;/span&gt;  		&lt;font color="blue"&gt;return&lt;/font&gt; (article.Author == &lt;font color="blue"&gt;this&lt;/font&gt;.Author);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 52&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 53&lt;/span&gt; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 54&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 55&lt;/span&gt; &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; NotSpec : Spec
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 56&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 57&lt;/span&gt; 	&lt;font color="blue"&gt;private&lt;/font&gt; Spec specToNegate;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 58&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 59&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; NotSpec(Spec specToNegate)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 60&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 61&lt;/span&gt; 		&lt;font color="blue"&gt;this&lt;/font&gt;.specToNegate = specToNegate;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 62&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 63&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 64&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;override&lt;/font&gt; &lt;font color="blue"&gt;bool&lt;/font&gt; isSatisfiedBy(Article article)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 65&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 66&lt;/span&gt; 		&lt;font color="blue"&gt;return&lt;/font&gt; !specToNegate.isSatisfiedBy(article);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 67&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 68&lt;/span&gt; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 69&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 70&lt;/span&gt; &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; AndSpec : Spec
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 71&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 72&lt;/span&gt; 	&lt;font color="blue"&gt;private&lt;/font&gt; Spec augend;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 73&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; Spec Augend
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 74&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 75&lt;/span&gt; 	  &lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; augend;}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 76&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 77&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 78&lt;/span&gt; 	&lt;font color="blue"&gt;private&lt;/font&gt; Spec addend;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 79&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; Spec Addend
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 80&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 81&lt;/span&gt; 	  &lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; addend;}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 82&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 83&lt;/span&gt; 	
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 84&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; AndSpec (Spec augend, Spec addend)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 85&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 86&lt;/span&gt; 		&lt;font color="blue"&gt;this&lt;/font&gt;.augend = augend;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 87&lt;/span&gt; 		&lt;font color="blue"&gt;this&lt;/font&gt;.addend = addend;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 88&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 89&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 90&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;override&lt;/font&gt; &lt;font color="blue"&gt;bool&lt;/font&gt;  isSatisfiedBy(Article article)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 91&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 92&lt;/span&gt;  		&lt;font color="blue"&gt;return&lt;/font&gt; Augend.isSatisfiedBy(article) &amp;amp;&amp;amp; Addend.isSatisfiedBy(article);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 93&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 94&lt;/span&gt; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 95&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 96&lt;/span&gt; &lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; OrSpec : Spec
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 97&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 98&lt;/span&gt; 	&lt;font color="blue"&gt;private&lt;/font&gt; Spec augend;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 99&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; Spec Augend
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;100&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;101&lt;/span&gt; 		&lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; augend; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;102&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;103&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;104&lt;/span&gt; 	&lt;font color="blue"&gt;private&lt;/font&gt; Spec addend;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;105&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; Spec Addend
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;106&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;107&lt;/span&gt; 		&lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; addend; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;108&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;109&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;110&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; OrSpec(Spec augend, Spec addend)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;111&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;112&lt;/span&gt; 		&lt;font color="blue"&gt;this&lt;/font&gt;.augend = augend;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;113&lt;/span&gt; 		&lt;font color="blue"&gt;this&lt;/font&gt;.addend = addend;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;114&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;115&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;116&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;override&lt;/font&gt; &lt;font color="blue"&gt;bool&lt;/font&gt; isSatisfiedBy(Article article)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;117&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;118&lt;/span&gt; 		&lt;font color="blue"&gt;return&lt;/font&gt; Augend.isSatisfiedBy(article) || Addend.isSatisfiedBy(article);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;119&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;120&lt;/span&gt; }&lt;/pre&gt;&lt;/pre&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=394323" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lkempe/archive/tags/Tech+Head+Brothers/default.aspx">Tech Head Brothers</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/Whidbey/default.aspx">Whidbey</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx">.NET Framework 2.0</category></item><item><title>DataAccessLayer.FindAll(PublishedBy(Author))</title><link>http://weblogs.asp.net/lkempe/archive/2005/03/09/391247.aspx</link><pubDate>Wed, 09 Mar 2005 22:43:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:391247</guid><dc:creator>lkempe</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/lkempe/rsscomments.aspx?PostID=391247</wfw:commentRss><comments>http://weblogs.asp.net/lkempe/archive/2005/03/09/391247.aspx#comments</comments><description>
&lt;p&gt;One of the first development rule is to &lt;strong&gt;write human readable 
code&lt;/strong&gt;. Why ? To avoid to have to write comments ;-) Because it 
&lt;strong&gt;&lt;em&gt;will be read as a spoken language&lt;/em&gt;&lt;/strong&gt; and &lt;em&gt;&lt;strong&gt;it 
separate important code from distracting one&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;What do you think about that line of code:&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: blue"&gt;return&lt;/span&gt; DAL.FindAll(PublishedBy(Author));&lt;/pre&gt;
&lt;p&gt;Someone that has no clue about development might even read that code. Ok 
except the DAL word ;-)&lt;/p&gt;
&lt;p&gt;With C# 2.0 you are able to write readable code like this using Generics, and 
the power of &lt;a href="http://martinfowler.com/bliki/Closures.html"&gt;closures&lt;/a&gt;. 
In C# 2.0 closure are supported through the form of anonymous delegates.&lt;/p&gt;
&lt;p&gt;Check out the different methods returning collection accordign to predefined 
rules: &lt;strong&gt;getAllUnpublished&lt;/strong&gt;(), &lt;strong&gt;getAllPublished&lt;/strong&gt;(), 
&lt;strong&gt;getAllPublishedBy&lt;/strong&gt;()... There are all using Predicate, so to say 
anonymous delegate, that gives you human readable code.&lt;/p&gt;
&lt;p&gt;Client code:&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;protected&lt;/font&gt; &lt;font color="blue"&gt;void&lt;/font&gt; Page_Load(&lt;font color="blue"&gt;object&lt;/font&gt; sender, EventArgs e)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt; 	GridView2.DataSource = TechHeadBrothers.Portal.BLL.ArticleBLL.getAllPublishedBy(&lt;font color="maroon"&gt;"Laurent Kempé"&lt;/font&gt;);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt; 	GridView2.DataBind();
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt; 	GridView3.DataSource = TechHeadBrothers.Portal.BLL.ArticleBLL.getAllWaitPublishingBy(&lt;font color="maroon"&gt;"Laurent Kempé"&lt;/font&gt;);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt; 	GridView3.DataBind();
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  8&lt;/span&gt; }&lt;/pre&gt;
&lt;p&gt;The Business Layer:&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;#region&lt;/font&gt; Using
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt; &lt;font color="blue"&gt;using&lt;/font&gt; System;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt; &lt;font color="blue"&gt;using&lt;/font&gt; System.Collections.Generic;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt; &lt;font color="blue"&gt;using&lt;/font&gt; System.Text;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt; &lt;font color="blue"&gt;using&lt;/font&gt; TechHeadBrothers.Portal.Entities;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt; &lt;font color="blue"&gt;using&lt;/font&gt; TechHeadBrothers.Portal.DAL; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  8&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  9&lt;/span&gt; &lt;font color="blue"&gt;#endregion&lt;/font&gt;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 10&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 11&lt;/span&gt; &lt;font color="blue"&gt;namespace&lt;/font&gt; TechHeadBrothers.Portal.BLL
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 12&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 13&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; ArticleBLL
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 14&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 15&lt;/span&gt; 		&lt;font color="blue"&gt;static&lt;/font&gt; ArticleDAL DAL = &lt;font color="blue"&gt;new&lt;/font&gt; ArticleDAL();
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 16&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 17&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; List&amp;lt;Article&amp;gt; getAll()
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 18&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 19&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; DAL.GetAll();
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 20&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 21&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 22&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; List&amp;lt;Article&amp;gt; getAllUnpublished()
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 23&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 24&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; DAL.FindAll(NotPublished());
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 25&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 26&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 27&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; List&amp;lt;Article&amp;gt; getAllPublished()
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 28&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 29&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; DAL.FindAll(Published());
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 30&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 31&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 32&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; List&amp;lt;Article&amp;gt; getAllPublishedBy(&lt;font color="blue"&gt;string&lt;/font&gt; Author)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 33&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 34&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; DAL.FindAll(PublishedBy(Author));
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 35&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 36&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 37&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; List&amp;lt;Article&amp;gt; getAllWaitPublishingBy(&lt;font color="blue"&gt;string&lt;/font&gt; Author)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 38&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 39&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; DAL.FindAll(WaitPublishingBy(Author));
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 40&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 41&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 42&lt;/span&gt; 		&lt;font color="blue"&gt;protected&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; Predicate&amp;lt;Article&amp;gt; WaitPublishingBy(&lt;font color="blue"&gt;string&lt;/font&gt; author)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 43&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 44&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; &lt;font color="blue"&gt;delegate&lt;/font&gt;(Article a)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 45&lt;/span&gt; 			{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 46&lt;/span&gt; 				&lt;font color="blue"&gt;return&lt;/font&gt; !a.isPublished &amp;amp;&amp;amp; (a.Author.ToLower() == author.ToLower());
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 47&lt;/span&gt; 			};
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 48&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 49&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 50&lt;/span&gt; 		&lt;font color="blue"&gt;protected&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; Predicate&amp;lt;Article&amp;gt; PublishedBy(&lt;font color="blue"&gt;string&lt;/font&gt; author)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 51&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 52&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; &lt;font color="blue"&gt;delegate&lt;/font&gt;(Article a)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 53&lt;/span&gt; 			{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 54&lt;/span&gt; 				&lt;font color="blue"&gt;return&lt;/font&gt; a.isPublished &amp;amp;&amp;amp; (a.Author.ToLower() == author.ToLower());
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 55&lt;/span&gt; 			};
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 56&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 57&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 58&lt;/span&gt; 		&lt;font color="blue"&gt;protected&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; Predicate&amp;lt;Article&amp;gt; Published()
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 59&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 60&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; &lt;font color="blue"&gt;delegate&lt;/font&gt;(Article a)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 61&lt;/span&gt; 			{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 62&lt;/span&gt; 				&lt;font color="blue"&gt;return&lt;/font&gt; a.isPublished;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 63&lt;/span&gt; 			};
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 64&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 65&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 66&lt;/span&gt; 		&lt;font color="blue"&gt;protected&lt;/font&gt; &lt;font color="blue"&gt;static&lt;/font&gt; Predicate&amp;lt;Article&amp;gt; NotPublished()
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 67&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 68&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; &lt;font color="blue"&gt;delegate&lt;/font&gt;(Article a)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 69&lt;/span&gt; 			{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 70&lt;/span&gt; 				&lt;font color="blue"&gt;return&lt;/font&gt; (!a.isPublished);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 71&lt;/span&gt; 			};
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 72&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 73&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 74&lt;/span&gt; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 75&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;The Entity class is represented as:&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;#region&lt;/font&gt; Using
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt; &lt;font color="blue"&gt;using&lt;/font&gt; System;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt; &lt;font color="blue"&gt;using&lt;/font&gt; System.Collections.Generic;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt; &lt;font color="blue"&gt;using&lt;/font&gt; System.Text; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt; &lt;font color="blue"&gt;#endregion&lt;/font&gt;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  8&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  9&lt;/span&gt; &lt;font color="blue"&gt;namespace&lt;/font&gt; TechHeadBrothers.Portal.Entities
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 10&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 11&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; Article
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 12&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 13&lt;/span&gt; 		&lt;font color="blue"&gt;private&lt;/font&gt; Guid uuid;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 14&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 15&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; Guid Uuid
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 16&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 17&lt;/span&gt; 			&lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; uuid; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 18&lt;/span&gt; 			&lt;font color="blue"&gt;set&lt;/font&gt; { uuid = value; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 19&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 20&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 21&lt;/span&gt; 		&lt;font color="blue"&gt;private&lt;/font&gt; &lt;font color="blue"&gt;string&lt;/font&gt; title;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 22&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 23&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;string&lt;/font&gt; Title
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 24&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 25&lt;/span&gt; 			&lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; title; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 26&lt;/span&gt; 			&lt;font color="blue"&gt;set&lt;/font&gt; { title = value; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 27&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 28&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 29&lt;/span&gt; 		&lt;font color="blue"&gt;private&lt;/font&gt; &lt;font color="blue"&gt;string&lt;/font&gt; description;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 30&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 31&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;string&lt;/font&gt; Description
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 32&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 33&lt;/span&gt; 			&lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; description; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 34&lt;/span&gt; 			&lt;font color="blue"&gt;set&lt;/font&gt; { description = value; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 35&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 36&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 37&lt;/span&gt; 		&lt;font color="blue"&gt;private&lt;/font&gt; &lt;font color="blue"&gt;bool&lt;/font&gt; ispublished;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 38&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 39&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;bool&lt;/font&gt; isPublished
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 40&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 41&lt;/span&gt; 			&lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; ispublished; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 42&lt;/span&gt; 			&lt;font color="blue"&gt;set&lt;/font&gt; { ispublished = value; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 43&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 44&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 45&lt;/span&gt; 		&lt;font color="blue"&gt;private&lt;/font&gt; &lt;font color="blue"&gt;string&lt;/font&gt; author;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 46&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 47&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;string&lt;/font&gt; Author
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 48&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 49&lt;/span&gt; 			&lt;font color="blue"&gt;get&lt;/font&gt; { &lt;font color="blue"&gt;return&lt;/font&gt; author; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 50&lt;/span&gt; 			&lt;font color="blue"&gt;set&lt;/font&gt; { author = value; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 51&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 52&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 53&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; Article(Guid uuid, &lt;font color="blue"&gt;string&lt;/font&gt; title, &lt;font color="blue"&gt;string&lt;/font&gt; description, &lt;font color="blue"&gt;string&lt;/font&gt; author)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 54&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 55&lt;/span&gt; 			&lt;font color="blue"&gt;this&lt;/font&gt;.Uuid = uuid;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 56&lt;/span&gt; 			&lt;font color="blue"&gt;this&lt;/font&gt;.Title = title;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 57&lt;/span&gt; 			&lt;font color="blue"&gt;this&lt;/font&gt;.Description = description;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 58&lt;/span&gt; 			&lt;font color="blue"&gt;this&lt;/font&gt;.isPublished = &lt;font color="maroon"&gt;false&lt;/font&gt;;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 59&lt;/span&gt; 			&lt;font color="blue"&gt;this&lt;/font&gt;.Author = author;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 60&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 61&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 62&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; Article(&lt;font color="blue"&gt;string&lt;/font&gt; uuid, &lt;font color="blue"&gt;string&lt;/font&gt; title, &lt;font color="blue"&gt;string&lt;/font&gt; description, &lt;font color="blue"&gt;string&lt;/font&gt; author)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 63&lt;/span&gt; 			: &lt;font color="blue"&gt;this&lt;/font&gt;(&lt;font color="blue"&gt;new&lt;/font&gt; Guid (uuid), title, description, author)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 64&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 65&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 66&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 67&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 68&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; Article(&lt;font color="blue"&gt;string&lt;/font&gt; title, &lt;font color="blue"&gt;string&lt;/font&gt; description, &lt;font color="blue"&gt;string&lt;/font&gt; author)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 69&lt;/span&gt; 			: &lt;font color="blue"&gt;this&lt;/font&gt;(Guid.NewGuid(), title, description, author)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 70&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 71&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 72&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 73&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 74&lt;/span&gt; } &lt;/pre&gt;
&lt;p&gt;And the Data Access Layer Article class:&lt;/p&gt;&lt;pre&gt;&lt;pre&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  1&lt;/span&gt; &lt;font color="blue"&gt;#region&lt;/font&gt; Using
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  2&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  3&lt;/span&gt; &lt;font color="blue"&gt;using&lt;/font&gt; System;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  4&lt;/span&gt; &lt;font color="blue"&gt;using&lt;/font&gt; System.Collections.Generic;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  5&lt;/span&gt; &lt;font color="blue"&gt;using&lt;/font&gt; System.Text;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  6&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  7&lt;/span&gt; &lt;font color="blue"&gt;#endregion&lt;/font&gt;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  8&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt;  9&lt;/span&gt; &lt;font color="blue"&gt;namespace&lt;/font&gt; TechHeadBrothers.Portal.DAL
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 10&lt;/span&gt; {
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 11&lt;/span&gt; 	&lt;font color="blue"&gt;interface&lt;/font&gt; IDataAccess&amp;lt;T&amp;gt;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 12&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 13&lt;/span&gt; 		T Get(Guid uuid);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 14&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 15&lt;/span&gt; 		T Get(&lt;font color="blue"&gt;string&lt;/font&gt; uuid);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 16&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 17&lt;/span&gt; 		List&amp;lt;T&amp;gt; GetAll();
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 18&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 19&lt;/span&gt; 		List&amp;lt;T&amp;gt; FindAll(Predicate&amp;lt;T&amp;gt; match);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 20&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 21&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 22&lt;/span&gt; 	&lt;font color="blue"&gt;public&lt;/font&gt; &lt;font color="blue"&gt;class&lt;/font&gt; ArticleDAL : IDataAccess&amp;lt;TechHeadBrothers.Portal.Entities.Article&amp;gt;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 23&lt;/span&gt; 	{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 24&lt;/span&gt; 		List&amp;lt;TechHeadBrothers.Portal.Entities.Article&amp;gt; articles;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 25&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 26&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; ArticleDAL(List&amp;lt;TechHeadBrothers.Portal.Entities.Article&amp;gt; articles)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 27&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 28&lt;/span&gt; 			&lt;font color="blue"&gt;this&lt;/font&gt;.articles = articles;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 29&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 30&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 31&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; ArticleDAL()
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 32&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 33&lt;/span&gt; 			&lt;font color="blue"&gt;this&lt;/font&gt;.articles = &lt;font color="blue"&gt;new&lt;/font&gt; List&amp;lt;TechHeadBrothers.Portal.Entities.Article&amp;gt;();
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 34&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 35&lt;/span&gt; 			&lt;font color="green"&gt;//TODO: Remove this is just for test
&lt;/font&gt;&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 36&lt;/span&gt; 			&lt;font color="blue"&gt;this&lt;/font&gt;.articles.Add(
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 37&lt;/span&gt; 				&lt;font color="blue"&gt;new&lt;/font&gt; TechHeadBrothers.Portal.Entities.Article(&lt;font color="maroon"&gt;"Les generics dans C#"&lt;/font&gt;,
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 38&lt;/span&gt; 				&lt;font color="maroon"&gt;"Démonstration de l'utilisation des générics dans C# 2.0"&lt;/font&gt;,
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 39&lt;/span&gt; 				&lt;font color="maroon"&gt;"Laurent Kempé"&lt;/font&gt;));
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 40&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 41&lt;/span&gt; 			TechHeadBrothers.Portal.Entities.Article article =
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 42&lt;/span&gt; 				&lt;font color="blue"&gt;new&lt;/font&gt; TechHeadBrothers.Portal.Entities.Article(&lt;font color="maroon"&gt;"8BF7FEBE-9FEB-4db6-86B7-70A6C44B1CAA"&lt;/font&gt;,
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 43&lt;/span&gt; 				&lt;font color="maroon"&gt;"Les iterators dans C#"&lt;/font&gt;,
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 44&lt;/span&gt; 				&lt;font color="maroon"&gt;"Démonstration de l'utilisation des iterators dans C# 2.0"&lt;/font&gt;,
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 45&lt;/span&gt; 				&lt;font color="maroon"&gt;"Laurent Kempé"&lt;/font&gt;);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 46&lt;/span&gt; 			article.isPublished = &lt;font color="maroon"&gt;true&lt;/font&gt;;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 47&lt;/span&gt; 			&lt;font color="blue"&gt;this&lt;/font&gt;.articles.Add(article);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 48&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 49&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 50&lt;/span&gt; 		&lt;font color="blue"&gt;#region&lt;/font&gt; IDataAccess&amp;lt;Article&amp;gt; Members
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 51&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 52&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; TechHeadBrothers.Portal.Entities.Article Get(Guid uuid)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 53&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 54&lt;/span&gt; 			&lt;font color="blue"&gt;for&lt;/font&gt; (&lt;font color="blue"&gt;int&lt;/font&gt; i = &lt;font color="maroon"&gt;0&lt;/font&gt;; i &amp;lt; articles.Count; i++)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 55&lt;/span&gt; 			{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 56&lt;/span&gt; 				&lt;font color="blue"&gt;if&lt;/font&gt; (articles[i].Uuid == uuid)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 57&lt;/span&gt; 				{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 58&lt;/span&gt; 					&lt;font color="blue"&gt;return&lt;/font&gt; articles[i];
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 59&lt;/span&gt; 				}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 60&lt;/span&gt; 			}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 61&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 62&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; &lt;font color="blue"&gt;null&lt;/font&gt;;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 63&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 64&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 65&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; TechHeadBrothers.Portal.Entities.Article Get(&lt;font color="blue"&gt;string&lt;/font&gt; uuid)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 66&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 67&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; &lt;font color="blue"&gt;this&lt;/font&gt;.Get(&lt;font color="blue"&gt;new&lt;/font&gt; Guid(uuid));
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 68&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 69&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 70&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; List&amp;lt;TechHeadBrothers.Portal.Entities.Article&amp;gt; GetAll()
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 71&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 72&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; articles;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 73&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 74&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 75&lt;/span&gt; 		&lt;font color="blue"&gt;public&lt;/font&gt; List&amp;lt;TechHeadBrothers.Portal.Entities.Article&amp;gt; FindAll(Predicate&amp;lt;TechHeadBrothers.Portal.Entities.Article&amp;gt; match)
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 76&lt;/span&gt; 		{
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 77&lt;/span&gt; 			&lt;font color="blue"&gt;return&lt;/font&gt; articles.FindAll(match);
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 78&lt;/span&gt; 		}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 79&lt;/span&gt; 
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 80&lt;/span&gt; 		&lt;font color="blue"&gt;#endregion&lt;/font&gt;
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 81&lt;/span&gt; 	}
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 82&lt;/span&gt; }
&lt;span style="COLOR: teal; BACKGROUND-COLOR: lightgrey"&gt; 83&lt;/span&gt; &lt;/pre&gt;&lt;/pre&gt;
&lt;p&gt;[ Currently Playing : Sound Enforcer / Impact - Carl Cox&amp;nbsp;(04:10) 
]&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=391247" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/lkempe/archive/tags/Whidbey/default.aspx">Whidbey</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://weblogs.asp.net/lkempe/archive/tags/.NET+Framework+2.0/default.aspx">.NET Framework 2.0</category></item></channel></rss>