<?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>Bryan Sampica : .NET 3.5</title><link>http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.5/default.aspx</link><description>Tags: .NET 3.5</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Jamcast Official Beta</title><link>http://weblogs.asp.net/bryansampica/archive/2009/01/30/jamcast-official-beta.aspx</link><pubDate>Fri, 30 Jan 2009 15:12:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6869269</guid><dc:creator>Freakyuno</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/rsscomments.aspx?PostID=6869269</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/commentapi.aspx?PostID=6869269</wfw:comment><comments>http://weblogs.asp.net/bryansampica/archive/2009/01/30/jamcast-official-beta.aspx#comments</comments><description>&lt;P&gt;A good friend of mine recently revealed to me that he's released a beta to the public of a neat piece of software.&amp;nbsp; Jamcast allows the user to stream their digital audio across their network to devices with built in support like Playstation 3, XBox 360.&amp;nbsp; I can't do the description justice, so swing over to his site and read about it.&amp;nbsp; Sounds like wicked code.&amp;nbsp; Even better is, it's entirely built with a .NET foundation!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.sdstechnologies.com/" target=_blank mce_href="http://www.sdstechnologies.com/"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border=0 alt=Untitled-1 src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/JamcastOfficialBeta_7CC6/Untitled-1_5.jpg" width=223 height=240 mce_src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/JamcastOfficialBeta_7CC6/Untitled-1_5.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A title=http://www.sdstechnologies.com/ href="http://www.sdstechnologies.com/" mce_href="http://www.sdstechnologies.com/"&gt;http://www.sdstechnologies.com/&lt;/A&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6869269" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+2.0/default.aspx">.NET 2.0</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/Fun/default.aspx">Fun</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category></item><item><title>HDC Omaha 2008 - Code and Slides</title><link>http://weblogs.asp.net/bryansampica/archive/2008/10/17/hdc-omaha-2008-code-and-slides.aspx</link><pubDate>Fri, 17 Oct 2008 15:12:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6684695</guid><dc:creator>Freakyuno</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/rsscomments.aspx?PostID=6684695</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/commentapi.aspx?PostID=6684695</wfw:comment><comments>http://weblogs.asp.net/bryansampica/archive/2008/10/17/hdc-omaha-2008-code-and-slides.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;This is the application I demonstrated during my WPF Line of Business presentation, as well as my slide deck.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Demonstrated:&lt;/P&gt;
&lt;P mce_keep="true"&gt;WPF Commanding&lt;/P&gt;
&lt;P mce_keep="true"&gt;Provider based Data Source Handling&lt;/P&gt;
&lt;P mce_keep="true"&gt;Validation&lt;/P&gt;
&lt;P mce_keep="true"&gt;Collections and Binding (ObservableCollection&amp;lt;T&amp;gt;)&lt;/P&gt;
&lt;P mce_keep="true"&gt;LINQ to XML&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6684695" width="1" height="1"&gt;</description><enclosure url="http://weblogs.asp.net/bryansampica/attachment/6684695.ashx" length="327419" type="application/x-zip-compressed" /><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/WPF/default.aspx">WPF</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/XAML/default.aspx">XAML</category></item><item><title>{ T }rite - Source Code Release</title><link>http://weblogs.asp.net/bryansampica/archive/2008/05/20/t-rite-source-code-release.aspx</link><pubDate>Tue, 20 May 2008 14:20:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6204316</guid><dc:creator>Freakyuno</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/rsscomments.aspx?PostID=6204316</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/commentapi.aspx?PostID=6204316</wfw:comment><comments>http://weblogs.asp.net/bryansampica/archive/2008/05/20/t-rite-source-code-release.aspx#comments</comments><description>&lt;P&gt;I've had a few ask for the source control to this project, and amidst my objections, I tried to come up with a good reason not to release it and couldn't find one.&amp;nbsp; :)&lt;/P&gt;
&lt;P&gt;The goal of this project was really to push through the app and get a working model up.&amp;nbsp; There are some things that still aren't implemented, or known bugs.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The refresh button does nothing!&lt;/LI&gt;
&lt;LI&gt;Update gives no notification&lt;/LI&gt;
&lt;LI&gt;160 char limit vs 140 (the API says 160!)&lt;/LI&gt;
&lt;LI&gt;No startup notification&lt;/LI&gt;
&lt;LI&gt;Weak threading model (background worker)&lt;/LI&gt;
&lt;LI&gt;No friend interaction&lt;/LI&gt;
&lt;LI&gt;No timeline interaction&lt;/LI&gt;
&lt;LI&gt;I could go on forever on this...those are the big ones&lt;/LI&gt;
&lt;LI&gt;Oh yea, no settings window at all. :)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;So without further ramblings by the estranged coder....here's the source.&amp;nbsp; You'll need to modify the settings to reflect your own, if you aren't sure how to do that, read the &lt;A href="http://groups.google.com/group/twitter-development-talk/web/api-documentation" target=_blank mce_href="http://groups.google.com/group/twitter-development-talk/web/api-documentation"&gt;Twitter documentation on the API.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;This is a source code release - this is not a finished, nor a working product and is not intended for end users.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This release includes a precompiled version of FluidKit - more information on FluidKit is available &lt;A href="http://www.codeplex.com/fluidkit" target=_blank mce_href="http://www.codeplex.com/fluidkit"&gt;HERE&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;If you modify this source, and release something of your own, I only ask that you keep the name the same and add your own spin - such as { T }rite | by Johnson or { T }rite | by Freakyuno....etc&lt;/P&gt;
&lt;P&gt;You will need Visual Studio 2008 AND / OR Microsoft Expression Blend March 2.5 Preview installed to work with this project, and knowledge of WPF (XAML) and C#.&lt;/P&gt;
&lt;DIV class=wlWriterSmartContent id=scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:5bc3a7fc-b092-4107-a5e3-e055bf2741ca style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;
&lt;P&gt;Source Code &lt;A href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/TriteSourceCodeRelease_8373/Trite.zip" target=_blank mce_href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/TriteSourceCodeRelease_8373/Trite.zip"&gt;HERE&lt;/A&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Good luck, feel free to get in touch with questions.&lt;/P&gt;
&lt;P&gt;Bryan Sampica (freakyuno)&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6204316" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/WPF/default.aspx">WPF</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/XAML/default.aspx">XAML</category></item><item><title>{ T } rite - twitter toys</title><link>http://weblogs.asp.net/bryansampica/archive/2008/05/13/t-rite-twitter-toys.aspx</link><pubDate>Wed, 14 May 2008 03:19:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6188080</guid><dc:creator>Freakyuno</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/rsscomments.aspx?PostID=6188080</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/commentapi.aspx?PostID=6188080</wfw:comment><comments>http://weblogs.asp.net/bryansampica/archive/2008/05/13/t-rite-twitter-toys.aspx#comments</comments><description>&lt;P&gt;Just a quick post tonight.&amp;nbsp; I'm working on a little app (mainly for practice), that some have requested a screenshot of, so here it is:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/Tritetwittertoys_139CA/Trite_2.jpg" target=_blank mce_href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/Tritetwittertoys_139CA/Trite_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=203 alt=Trite src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/Tritetwittertoys_139CA/Trite_thumb.jpg" width=260 border=0 mce_src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/Tritetwittertoys_139CA/Trite_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;It uses a coverflow system for the people you're following, and a very up2date look for the tweets of the people on your timeline.&amp;nbsp; It's a work in progress.&amp;nbsp; Take a look.&lt;/P&gt;
&lt;P&gt;Happy coding - &lt;/P&gt;
&lt;P&gt;Bryan ( Freakyuno )&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6188080" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category></item><item><title>Solving LINQ's N-Tier Issues</title><link>http://weblogs.asp.net/bryansampica/archive/2008/05/07/solving-linq-s-n-tier-issues.aspx</link><pubDate>Wed, 07 May 2008 16:44:49 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6165998</guid><dc:creator>Freakyuno</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/rsscomments.aspx?PostID=6165998</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/commentapi.aspx?PostID=6165998</wfw:comment><comments>http://weblogs.asp.net/bryansampica/archive/2008/05/07/solving-linq-s-n-tier-issues.aspx#comments</comments><description>&lt;p&gt;Ok, so maybe solving is somewhat of a misnomer, but we certainly can combat them with strength and conviction.&amp;#160; A little background on the subject first;&amp;#160; LINQ has proven&amp;#160; to be somewhat of a booger when attempting to work with it in a streamlined development environment when incorporating any sort of N-Tier pattern. &lt;/p&gt;  &lt;p&gt;Why you ask should it be a problem...the common answer I've heard many many times is, why should it be any different?&amp;#160; You have at the essence of it some pretty simple logical and physical layer guidelines right?&amp;#160; It's well known in the industry at this point to create N-Layer app's to solve things like SOC (separation of concerns) and physical or network boundaries.&lt;/p&gt;  &lt;p&gt;But what about LINQ....how does it change anything we've done before?&amp;#160; Here's the tricky part:&amp;#160; LINQ objects, created outside a context are considered unattached - which works great...but the moment you have to refer to an object in relation to it's context you run into major issues.&amp;#160; That object is then tied to that context and believe it or not; there's no easy or reliable way to detach it.&lt;/p&gt;  &lt;p&gt;Not such a big deal right...statefull objects are a good thing!&amp;#160; Not really...&lt;/p&gt;  &lt;p&gt;Imagine the very common scenario below:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You use LINQ to query for a customer reference &lt;/li&gt;    &lt;li&gt;You add an order to the reference of that customer &lt;/li&gt;    &lt;li&gt;You try to put the customer back with the order now attached... &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;BOOM....head-shot&lt;/strong&gt; - unless you've got the original context that you queried for the customer under...there is no way to get that customer back into the database.&amp;#160; Keep in mind that a DataContext is not serializeable, so if your response is to pass the datacontext around, you'd be right as soon as you enter an SOA pattern.&lt;/p&gt;  &lt;p&gt;Now, before you go off the deep end, I realize that this problem is CAUSED by the Utilization of LINQ itself.&amp;#160; Because we are passing objects around - we run into the very real situation that the object is carrying a reference to it's context.&amp;#160; &lt;a href="http://www.west-wind.com/weblog/default.aspx" target="_blank"&gt;Rick Strahl&lt;/a&gt; has done quite a few posts as of late on this same topic.&amp;#160; &lt;/p&gt;  &lt;p&gt;The typical solution, and usually one of the first answers on forums, blogs, and otherwise is...pass messages, not objects.&amp;#160; Ok, I can concede to that.&amp;#160; In true N-Layer applications we can very well send messages.&amp;#160; This achieves the whole &amp;quot;loosely coupled&amp;quot; layers, and enables easily things like a provider model, a stateless BLL, an application aware server...etc.&amp;#160; My response usually is:&amp;#160; I don't need all that...what I need to be able to do is pass the objects back and forth.&amp;#160; LINQ was nice enough to generate them for me, so why should I recreate each and every one of my objects (about 300 of them), in a serialized or class object format - just to overcome LINQ being a pain in the ass.&lt;/p&gt;  &lt;p&gt;If you read Rick's blog, you'll see a very complete example of creating a set of business objects wrapping the LINQ functionality, where he abstracts out things like the context creation, the submit changes, and attachment of objects.&amp;#160; That's pretty cool stuff...but yet even a little to big for my project.&lt;/p&gt;  &lt;p&gt;Without you as the reader knowing specifically the scope of my project - it's hard to get behind this article...so let me help you out a little:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Our physical boundary is the SQL state machine, which we can overcome with SQL Protocols &lt;/li&gt;    &lt;li&gt;We are working in a thick client, 1 to 3 user environment without a lot of need for initial scalability &lt;/li&gt;    &lt;li&gt;Our application state will be managed individually by the client.&amp;#160; They don't need to be sentient to other running app's. &lt;/li&gt;    &lt;li&gt;We will maintain database concurrence through a first write wins methodology. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Ok, so now that you have the basic layout - you can see that we aren't truly trying to build an N-Layer application.&amp;#160; Our use for N-Layer would have been to separate concerns between business logic, and data access.&amp;#160; These would be logical layers with little or no need to exist outside the maintainability in our programming model.&lt;/p&gt;  &lt;p&gt;Ok, so on to what I'll call the X-Layer pattern. ;)&amp;#160; It's always nice to invent something new huh.&amp;#160; Maybe it will catch fire.&amp;#160; Keep in mind, that the representation of this is only as a &amp;quot;prototype&amp;quot; pattern.&amp;#160; I don't have security, object state, or validation included.&amp;#160; Those things snap easily into the datacontext though through the extension of the LINQ partial classes.&amp;#160; &lt;/p&gt;  &lt;p&gt;I could describe the project all day long, but it's just as easy to look at it.&amp;#160; So I'll include it for your review:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:b92db34a-ae93-4537-b39f-bbf49499f6d1" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;p&gt; &lt;a href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/SolvingLINQsNTierIssues_A3F7/Sandbox.zip" target="_blank"&gt;Download Source&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6165998" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category></item><item><title>AuctionSite Starter-kit Update</title><link>http://weblogs.asp.net/bryansampica/archive/2007/12/02/auctionsite-starter-kit-update.aspx</link><pubDate>Sun, 02 Dec 2007 22:49:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5395151</guid><dc:creator>Freakyuno</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/rsscomments.aspx?PostID=5395151</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/commentapi.aspx?PostID=5395151</wfw:comment><comments>http://weblogs.asp.net/bryansampica/archive/2007/12/02/auctionsite-starter-kit-update.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've done an update to the starterkit today, and figured it might be a good idea to get some screenshots in front of people, as well as a demo site up - so I've done both. :)&lt;/P&gt;
&lt;P&gt;The demo site is available at &lt;/P&gt;
&lt;P&gt;&lt;A href="http://ask.proessent.com/default.aspx" mce_href="http://www.proessent.com/auctionsite/default.aspx"&gt;http://ask.proessent.com/default.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Feel free to register a username and look around.&amp;nbsp; If you don't want to register a username you may use&lt;/P&gt;
&lt;P&gt;Username: Testing&lt;/P&gt;
&lt;P&gt;Password: testing!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/AuctionDetails_2.jpg" target=_blank mce_href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/AuctionDetails_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=185 alt=AuctionDetails src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/AuctionDetails_thumb.jpg" width=244 border=0 mce_src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/AuctionDetails_thumb.jpg"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/AuctionListings_2.jpg" target=_blank mce_href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/AuctionListings_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=185 alt=AuctionListings src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/AuctionListings_thumb.jpg" width=244 border=0 mce_src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/AuctionListings_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/BidHistory_2.jpg" target=_blank mce_href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/BidHistory_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=185 alt=BidHistory src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/BidHistory_thumb.jpg" width=244 border=0 mce_src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/BidHistory_thumb.jpg"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/Login_2.jpg" target=_blank mce_href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/Login_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=185 alt=Login src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/Login_thumb.jpg" width=244 border=0 mce_src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/Login_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/NewItem_2.jpg" target=_blank mce_href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/NewItem_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=185 alt=NewItem src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/NewItem_thumb.jpg" width=244 border=0 mce_src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/AuctionSiteStarterkitUpdate_D8D7/NewItem_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;note: the website may be going up and down as I make changes and perform updates.&amp;nbsp; Please be patient. :)&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5395151" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category></item><item><title>AuctionSite Starterkit Alpha Release</title><link>http://weblogs.asp.net/bryansampica/archive/2007/12/01/auctionsite-starterkit-alpha-release.aspx</link><pubDate>Sun, 02 Dec 2007 02:46:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5392919</guid><dc:creator>Freakyuno</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/rsscomments.aspx?PostID=5392919</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/commentapi.aspx?PostID=5392919</wfw:comment><comments>http://weblogs.asp.net/bryansampica/archive/2007/12/01/auctionsite-starterkit-alpha-release.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Just a quick plug to the community.&amp;nbsp; I've gotten to the Alpha release of my AuctionSite Starterkit and have published a release on Codeplex&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://www.codeplex.com/auctionsk"&gt;http://www.codeplex.com/auctionsk&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;It's designed and produced in .net 3.5 utilizing some cool features like LINQ, the new Listview, the .NET membership, full CSS design and some other goodies like some Ajax sections.&amp;nbsp; It's freely available for download, take it - use it - abuse it.&amp;nbsp; Its designed to give users a good start in the LINQ world, with a real world application on a smaller scale.&amp;nbsp; It's database is extensible, and pages have been intentionally kept simple and straight forward, so they can be modified, tailored.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I'll be continuing to update it it through a stable release, then refactoring some of the "goofier" sections.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Have Fun!&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5392919" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category></item><item><title>Converting Sql.LINQ.Binary to Byte()</title><link>http://weblogs.asp.net/bryansampica/archive/2007/11/29/converting-sql-linq-binary-to-byte.aspx</link><pubDate>Thu, 29 Nov 2007 14:35:18 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5374122</guid><dc:creator>Freakyuno</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/rsscomments.aspx?PostID=5374122</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/commentapi.aspx?PostID=5374122</wfw:comment><comments>http://weblogs.asp.net/bryansampica/archive/2007/11/29/converting-sql-linq-binary-to-byte.aspx#comments</comments><description>&lt;p&gt;Just a real short entry today.&amp;nbsp; I had some trouble with this one - took me a little bit to figure out so I figured I would post a quick note about it.&amp;nbsp; Mostly to remind myself how I did it next time I need to.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I'm working in a starterkit that I'm designing.&amp;nbsp; It's not ready for general public publicity yet - but I can tell you that I have a database storing images, and typically in .net 2.0 I'd create an imagehandler.ashx for this and just use the querystring to parse out and grab the binary using a Datareader.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;It'd typically look like this: (hijacked from &lt;a title="http://www.123aspx.com/redir.aspx?res=36098" href="http://www.123aspx.com/redir.aspx?res=36098"&gt;http://www.123aspx.com/redir.aspx?res=36098&lt;/a&gt;)&lt;/p&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; ImageHandler : IHttpHandler {
    
    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ProcessRequest (HttpContext context) {
        &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; imageid = context.Request.QueryString[&lt;span style="color: #006080"&gt;"ImID"&lt;/span&gt;];
        SqlConnection connection = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SqlConnection
        (ConfigurationManager.ConnectionStrings
        [&lt;span style="color: #006080"&gt;"connectionString"&lt;/span&gt;].ConnectionString);
        connection.Open();
        SqlCommand command = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; 
        SqlCommand(&lt;span style="color: #006080"&gt;"select Image from Image where ImageID="&lt;/span&gt;+imageid, connection);
        SqlDataReader dr = command.ExecuteReader();
        dr.Read();
        context.Response.BinaryWrite((Byte[])dr[0]);
        connection.Close();
        context.Response.End();              
        
    }
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I however am in a LINQ .net 3.5 project, and I didn't want to use SQL commands and data readers, I wanted to do it the new fan dangled way.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;It turns out that it's not straightforward to grab an SQL.Linq.Binary field and convert it to a byte array.&amp;nbsp; It's not hard mind you, but there really isn't any clue on how to make it work.&amp;nbsp; So I fiddled around with it and here's what I came up with.&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; ProcessRequest(&lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; context &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; HttpContext) &lt;span style="color: #0000ff"&gt;Implements&lt;/span&gt; IHttpHandler.ProcessRequest
        &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;.IsNullOrEmpty(HttpContext.Current.Request.QueryString(&lt;span style="color: #006080"&gt;"imageID"&lt;/span&gt;)) &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
            &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; imageID = HttpContext.Current.Request.QueryString(&lt;span style="color: #006080"&gt;"imageID"&lt;/span&gt;)
            &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; db &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; AuctionsDataContext
            &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; result = From img &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; db.Images _
                         Where img.imageID = imageID _
                         &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; img.image


            HttpContext.Current.Response.BinaryWrite(&lt;span style="color: #0000ff"&gt;CType&lt;/span&gt;(result.First.ToArray, &lt;span style="color: #0000ff"&gt;Byte&lt;/span&gt;()))
            context.Response.&lt;span style="color: #0000ff"&gt;End&lt;/span&gt;()
        &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The key line being the BinaryWrite portion towards the bottom.&amp;nbsp; result.first.toArray didnt make a lot of sense to me, but it seems to work, and pretty quickly. :)&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Good luck!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5374122" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/bryansampica/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category></item><item><title>DLINQ + Solving the Many to Many problem</title><link>http://weblogs.asp.net/bryansampica/archive/2007/11/26/dlinq-solving-the-many-to-many-problem.aspx</link><pubDate>Mon, 26 Nov 2007 15:42:17 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5342131</guid><dc:creator>Freakyuno</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/rsscomments.aspx?PostID=5342131</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/bryansampica/commentapi.aspx?PostID=5342131</wfw:comment><comments>http://weblogs.asp.net/bryansampica/archive/2007/11/26/dlinq-solving-the-many-to-many-problem.aspx#comments</comments><description>&lt;p&gt;A while back, Scott Guthrie posted in the comments, that LINQ didn't support, or had trouble with Many to Many relationships.&amp;nbsp; I'm not sure if the code-base has changed, or I haven't considered a full scope, but I've managed to get it to work, and it's slick!&amp;nbsp; I'll jump straight to the magic here.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I've created a Web Project, and added an SQL Database.&amp;nbsp; I'm keeping this example simple, so for this example, we have Products, and Categories.&amp;nbsp; Products can be a member of multiple categories, so lets get started!&lt;/p&gt; &lt;p&gt;I'm using the standard many to many method of using a interim table between the two tables, using a 1 to many on each side.&amp;nbsp; Here's my LINQ diagram to illustrate:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/LINQManytoMany_7E47/Untitled-1.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="215" alt="Untitled-1" src="http://weblogs.asp.net/blogs/bryansampica/WindowsLiveWriter/LINQManytoMany_7E47/Untitled-1_thumb.jpg" width="240" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;It's important to note, that for this to work, your interim table MUST have an identity field defined.&amp;nbsp; In this case I just called it RowID&lt;/p&gt; &lt;p&gt;I've loaded up my tables with some example data to test with, you can create your own, or follow my example.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="400" border="1" unselectable="on"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;1&lt;/td&gt; &lt;td valign="top" width="200"&gt;Hotdog's&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;2&lt;/td&gt; &lt;td valign="top" width="200"&gt;Soda&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;3&lt;/td&gt; &lt;td valign="top" width="200"&gt;Tea&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;4&lt;/td&gt; &lt;td valign="top" width="200"&gt;Beer&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;5&lt;/td&gt; &lt;td valign="top" width="200"&gt;Hamburgers&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;6&lt;/td&gt; &lt;td valign="top" width="200"&gt;Chips&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;7&lt;/td&gt; &lt;td valign="top" width="200"&gt;Dip&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;8&lt;/td&gt; &lt;td valign="top" width="200"&gt;Meat Cake&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="400" border="1" unselectable="on"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;1&lt;/td&gt; &lt;td valign="top" width="200"&gt;Food&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;2&lt;/td&gt; &lt;td valign="top" width="200"&gt;Beverage&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="400" border="1" unselectable="on"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;1&lt;/td&gt; &lt;td valign="top" width="200"&gt;1&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;2&lt;/td&gt; &lt;td valign="top" width="200"&gt;2&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;2&lt;/td&gt; &lt;td valign="top" width="200"&gt;3&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;2&lt;/td&gt; &lt;td valign="top" width="200"&gt;4&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;1&lt;/td&gt; &lt;td valign="top" width="200"&gt;4&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;1&lt;/td&gt; &lt;td valign="top" width="200"&gt;5&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;1&lt;/td&gt; &lt;td valign="top" width="200"&gt;6&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;1&lt;/td&gt; &lt;td valign="top" width="200"&gt;7&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;2&lt;/td&gt; &lt;td valign="top" width="200"&gt;8&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;1&lt;/td&gt; &lt;td valign="top" width="200"&gt;8&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Ok, from this set of data, we can see that most things only have one category, but both Beer and Meat Cake are both a beverage, and a food!&amp;nbsp; Right on!&amp;nbsp; Ok, so now to test the functionality, lets jump into a class&lt;/p&gt; &lt;p&gt;First we need to try a simple select that's meaningful.&amp;nbsp; In this case, lets select all the products that are beverages, and all the products that are food. :)&lt;/p&gt; &lt;p&gt;Food:&lt;/p&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt; TestMany
    &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Shared&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; Testing()
        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; db &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; ManyToManyDataContext
        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; query = From p &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; db.ProductCategories _
                    Where p.Category.CategoryName = &lt;span style="color: #006080"&gt;"Food"&lt;/span&gt; _
                    &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; p.Product.ProductName



    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;
&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; Class&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The important thing to note here, is we START at the linking table between the two&lt;/p&gt;
&lt;p&gt;Beverage:&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt; TestMany
    &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Shared&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; Testing()
        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; db &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; ManyToManyDataContext
        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; query = From p &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; db.ProductCategories _
                    Where p.Category.CategoryName = &lt;span style="color: #006080"&gt;"Beverage"&lt;/span&gt; _
                    &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; p.Product.ProductName



    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;
&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; Class&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now - you're saying, but what if I want the products that are JUST in the food AND beverage category.&amp;nbsp; Here's where it gets a little tricky, but yes my good friend, it can be done!&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; db &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; ManyToManyDataContext
        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; prod1 = (From c &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; db.ProductCategories _
                     Where (c.Category.CategoryName = &lt;span style="color: #006080"&gt;"Beverage"&lt;/span&gt;) _
                     &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; c.Product.ProductName, c.Category.CategoryName)

        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; prod2 = (From c &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; db.ProductCategories _
                     Where (c.Category.CategoryName = &lt;span style="color: #006080"&gt;"Food"&lt;/span&gt;) _
                     &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; c.Product.ProductName, c.Category.CategoryName)

        &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; result = (From c &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; prod1 Join d &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; prod2 &lt;span style="color: #0000ff"&gt;On&lt;/span&gt; c.CategoryName Equals d.CategoryName _
                      &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; c.ProductName)
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And there you have it.&amp;nbsp; LINQ's inline ability to query a result set, and JOIN right in code, creates a listing of only products that are in both the food and beverage category.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Have fun!&lt;/p&gt;
&lt;p&gt;Bryan Sampica&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5342131" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://weblogs.asp.net/bryansampica/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category></item></channel></rss>