<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>clinq Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=Home</link><description>clinq Wiki Rss Description</description><item><title>New Comment on "Sample Usage Scenarios"</title><link>http://clinq.codeplex.com/wikipage?title=Sample Usage Scenarios&amp;ANCHOR#C16881</link><description>LINQ is Kinq ....&amp;#10;after some extensions, your work really rocks&amp;#33;&amp;#33;&amp;#33;&amp;#33;</description><author>GerhardKreuzer</author><pubDate>Thu, 02 Sep 2010 16:54:39 GMT</pubDate><guid isPermaLink="false">New Comment on "Sample Usage Scenarios" 20100902045439P</guid></item><item><title>Updated Wiki: Home</title><link>http://clinq.codeplex.com/wikipage?version=16</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Continous LINQ is a .NET Framework 3.5 extension that builds on the LINQ query syntax to create continuous, self-updating result sets. &lt;br /&gt;In traditional LINQ queries, you write your query and get stale results. With Continuous LINQ, &lt;br /&gt;&lt;br /&gt;you write a query and the results of that query are continuously updated as changes are made to the source collection or items within the source collection. &lt;br /&gt;&lt;br /&gt;CLINQ has tremendous value in GUI development and is especially useful in binding to filtered streams of data such as financial or other network message data.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Getting%20Started&amp;referringTitle=Home"&gt;Getting Started&lt;/a&gt;&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Hello%20World%20-%20CLINQ%20Style&amp;referringTitle=Home"&gt;Hello World - CLINQ Style&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=How%20CLINQ%20Works&amp;referringTitle=Home"&gt;How CLINQ Works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Sample%20Usage%20Scenarios&amp;referringTitle=Home"&gt;Sample Usage Scenarios&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Continuous%20Aggregation&amp;referringTitle=Home"&gt;Continuous Aggregation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Reactive Programming&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://kutruff.wordpress.com/2009/07/14/reactive-programming-in-c-reactiveobject/" class="externalLink"&gt;ReactiveObject&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; NOTE: &lt;b&gt;You must now also call OnPropertyChanging in addition to OnPropertyChanged when using ReactiveObject&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Feature%20Roadmap&amp;referringTitle=Home"&gt;Feature Roadmap&lt;/a&gt;&lt;/b&gt; - What we&amp;#39;re thinking of adding to CLINQ in the future&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Advanced Scenarios&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Adding%20to%20a%20Source%20Collection%20from%20a%20Collection%20Changed%20Event%20Handler&amp;referringTitle=Home"&gt;Adding to a Source Collection from a Collection Changed Event Handler&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Appendix and Reference&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=CLINQ%20FAQ&amp;referringTitle=Home"&gt;CLINQ FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Supported%20LINQ%20Syntax&amp;referringTitle=Home"&gt;Supported LINQ Syntax&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Supported%20Platforms&amp;referringTitle=Home"&gt;Supported Platforms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kutruff.wordpress.com" class="externalLink"&gt;Andy Kutruff&amp;#39;s Blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dotnetaddict.dotnetdevelopersjournal.com/tags/?/clinq" class="externalLink"&gt;.NET Addict&amp;#39;s CLINQ Blog Posts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>akutruff</author><pubDate>Wed, 06 Jan 2010 16:30:28 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100106043028P</guid></item><item><title>Updated Wiki: Home</title><link>http://clinq.codeplex.com/wikipage?version=15</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Continous LINQ is a .NET Framework 3.5 extension that builds on the LINQ query syntax to create continuous, self-updating result sets. &lt;br /&gt;In traditional LINQ queries, you write your query and get stale results. With Continuous LINQ, &lt;br /&gt;&lt;br /&gt;you write a query and the results of that query are continuously updated as changes are made to the source collection or items within the source collection. &lt;br /&gt;&lt;br /&gt;CLINQ has tremendous value in GUI development and is especially useful in binding to filtered streams of data such as financial or other network message data.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Getting%20Started&amp;referringTitle=Home"&gt;Getting Started&lt;/a&gt;&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Hello%20World%20-%20CLINQ%20Style&amp;referringTitle=Home"&gt;Hello World - CLINQ Style&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=How%20CLINQ%20Works&amp;referringTitle=Home"&gt;How CLINQ Works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Sample%20Usage%20Scenarios&amp;referringTitle=Home"&gt;Sample Usage Scenarios&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Feature%20Roadmap&amp;referringTitle=Home"&gt;Feature Roadmap&lt;/a&gt;&lt;/b&gt; - What we&amp;#39;re thinking of adding to CLINQ in the future&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Advanced Scenarios&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Adding%20to%20a%20Source%20Collection%20from%20a%20Collection%20Changed%20Event%20Handler&amp;referringTitle=Home"&gt;Adding to a Source Collection from a Collection Changed Event Handler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Continuous%20Aggregation&amp;referringTitle=Home"&gt;Continuous Aggregation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Appendix and Reference&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=CLINQ%20FAQ&amp;referringTitle=Home"&gt;CLINQ FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Supported%20LINQ%20Syntax&amp;referringTitle=Home"&gt;Supported LINQ Syntax&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Supported%20Platforms&amp;referringTitle=Home"&gt;Supported Platforms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kutruff.wordpress.com" class="externalLink"&gt;Andy Kutruff&amp;#39;s Blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dotnetaddict.dotnetdevelopersjournal.com/tags/?/clinq" class="externalLink"&gt;.NET Addict&amp;#39;s CLINQ Blog Posts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>akutruff</author><pubDate>Wed, 06 Jan 2010 16:13:21 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100106041321P</guid></item><item><title>Updated Wiki: Home</title><link>http://clinq.codeplex.com/wikipage?version=14</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Continous LINQ is a .NET Framework 3.5 extension that builds on the LINQ query syntax to create continuous, self-updating result sets. &lt;br /&gt;In traditional LINQ queries, you write your query and get stale results. With Continuous LINQ, &lt;br /&gt;&lt;br /&gt;you write a query and the results of that query are continuously updated as changes are made to the source collection or items within the source collection. &lt;br /&gt;&lt;br /&gt;CLINQ has tremendous value in GUI development and is especially useful in binding to filtered streams of data such as financial or other network message data.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Getting%20Started&amp;referringTitle=Home"&gt;Getting Started&lt;/a&gt;&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Hello%20World%20-%20CLINQ%20Style&amp;referringTitle=Home"&gt;Hello World - CLINQ Style&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=How%20CLINQ%20Works&amp;referringTitle=Home"&gt;How CLINQ Works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Sample%20Usage%20Scenarios&amp;referringTitle=Home"&gt;Sample Usage Scenarios&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Feature%20Roadmap&amp;referringTitle=Home"&gt;Feature Roadmap&lt;/a&gt;&lt;/b&gt; - What we&amp;#39;re thinking of adding to CLINQ in the future&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Advanced Scenarios&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Adding%20to%20a%20Source%20Collection%20from%20a%20Collection%20Changed%20Event%20Handler&amp;referringTitle=Home"&gt;Adding to a Source Collection from a Collection Changed Event Handler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Continuous%20Aggregation&amp;referringTitle=Home"&gt;Continuous Aggregation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Appendix and Reference&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=CLINQ%20FAQ&amp;referringTitle=Home"&gt;CLINQ FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Supported%20LINQ%20Syntax&amp;referringTitle=Home"&gt;Supported LINQ Syntax&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://clinq.codeplex.com/wikipage?title=Supported%20Platforms&amp;referringTitle=Home"&gt;Supported Platforms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="unresolved"&gt;Cannot resolve link macro, invalid number of parameters.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>akutruff</author><pubDate>Wed, 06 Jan 2010 15:49:55 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100106034955P</guid></item><item><title>Updated Wiki: Feature Roadmap</title><link>http://clinq.codeplex.com/wikipage?title=Feature Roadmap&amp;version=3</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Feature Roadmap&lt;/h1&gt;
The following is a tentative list of some of the features that we&amp;#39;re planning on implementing in upcoming releases of CLINQ. &lt;br /&gt;As features are implemented in the release, this page will be updated. The idea is that the tentative feature plans will actually make it into the release notes and description for each release.&lt;br /&gt;
&lt;h2&gt;CLINQ v2.3.0.0&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;OrderBy improvements to prevent removal and addition to a list&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Please suggest new features.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>akutruff</author><pubDate>Wed, 06 Jan 2010 15:46:32 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Feature Roadmap 20100106034632P</guid></item><item><title>Updated Wiki: Supported LINQ Syntax</title><link>http://clinq.codeplex.com/wikipage?title=Supported LINQ Syntax&amp;version=10</link><description>&lt;div class="wikidoc"&gt;&lt;h3&gt;Supported LINQ Syntax&lt;/h3&gt;
The following is a list of the operators supported by CLINQ:&lt;br /&gt;
&lt;h4&gt;Supported operators&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Where&lt;/li&gt;
&lt;li&gt;Select&lt;/li&gt;
&lt;li&gt;SelectMany&lt;/li&gt;
&lt;li&gt;GroupBy&lt;/li&gt;
&lt;li&gt;OrderBy (Ascending/Descending)&lt;/li&gt;
&lt;li&gt;ThenBy (Ascending/Descending)&lt;/li&gt;
&lt;li&gt;GroupJoin&lt;/li&gt;
&lt;li&gt;Distinct&lt;/li&gt;
&lt;li&gt;Except&lt;/li&gt;
&lt;li&gt;Concat&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Aggregation:&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;ContinuousSum&lt;/li&gt;
&lt;li&gt;ContinuousContains&lt;/li&gt;
&lt;li&gt;ContinuousFirstOrDefault&lt;/li&gt;
&lt;li&gt;ContinuousMax&lt;/li&gt;
&lt;li&gt;ContinuousMin&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;CLINQ does &lt;b&gt;NOT&lt;/b&gt; support:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Join&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>akutruff</author><pubDate>Wed, 06 Jan 2010 15:44:54 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Supported LINQ Syntax 20100106034454P</guid></item><item><title>Updated Wiki: Supported LINQ Syntax</title><link>http://clinq.codeplex.com/wikipage?title=Supported LINQ Syntax&amp;version=9</link><description>&lt;div class="wikidoc"&gt;&lt;h3&gt;Supported LINQ Syntax&lt;/h3&gt;
The following is a list of the operators supported by CLINQ:&lt;br /&gt;
&lt;h4&gt;Supported operators&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Where&lt;/li&gt;
&lt;li&gt;Select&lt;/li&gt;
&lt;li&gt;SelectMany&lt;/li&gt;
&lt;li&gt;GroupBy&lt;/li&gt;
&lt;li&gt;OrderBy Ascending/Descending&lt;/li&gt;
&lt;li&gt;ThenBy&lt;/li&gt;
&lt;li&gt;GroupJoin&lt;/li&gt;
&lt;li&gt;ContinuousFirstOrDefault&lt;/li&gt;
&lt;li&gt;Distinct&lt;/li&gt;
&lt;li&gt;Except&lt;/li&gt;
&lt;li&gt;Concat&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Aggregation:&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;ContinuousSum&lt;/li&gt;
&lt;li&gt;ContinuousContains&lt;/li&gt;
&lt;li&gt;ContinuousFirstOrDefault&lt;/li&gt;
&lt;li&gt;ContinuousMax&lt;/li&gt;
&lt;li&gt;ContinuousMin&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;CLINQ does &lt;b&gt;NOT&lt;/b&gt; support:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Join&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>akutruff</author><pubDate>Wed, 06 Jan 2010 15:44:22 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Supported LINQ Syntax 20100106034422P</guid></item><item><title>New Comment on "How CLINQ Works"</title><link>http://clinq.codeplex.com/Wiki/View.aspx?title=How CLINQ Works&amp;ANCHOR#C12486</link><description>This is actually some old code.... but what used to happen when creating a new instance of the FVA was that the constructor for that class would create event listeners on the source... which meant that the FVA wouldn't be GC'd until the source was GC'd (another source of problems, actually).. but yes, we intended to not use the return value from the FVA creation.

Have a look at some of the 2.0 code for how we're doing things now.</description><author>dotnetaddict</author><pubDate>Mon, 16 Mar 2009 14:35:26 GMT</pubDate><guid isPermaLink="false">New Comment on "How CLINQ Works" 20090316023526P</guid></item><item><title>Updated Wiki: Smart Property Notification</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=Smart Property Notification&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Smart Property Notification
&lt;/h1&gt; &lt;br /&gt;Smart Property Notification was added to CLINQ in the &lt;a href="http://www.codeplex.com/clinq/Release/ProjectReleases.aspx?ReleaseId=16757"&gt;CLINQ v2.0.0.0&lt;/a&gt; release.&lt;br /&gt;
&lt;/div&gt;</description><author>DotNetAddict</author><pubDate>Tue, 07 Oct 2008 17:23:30 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Smart Property Notification 20081007052330P</guid></item><item><title>Updated Wiki: Smart Property Notification</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=Smart Property Notification&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
&lt;a href="http://www.codeplex.com/clinq/Release/ProjectReleases.aspx?ReleaseId=16757"&gt;CLINQ v2.0.0.0&lt;/a&gt; - Smart Property Notification
&lt;/h1&gt;
&lt;/div&gt;</description><author>DotNetAddict</author><pubDate>Tue, 07 Oct 2008 17:22:24 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Smart Property Notification 20081007052224P</guid></item><item><title>Updated Wiki: CLINQ v2.0 Features</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=CLINQ v2.0 Features&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
&lt;a href="http://www.codeplex.com/clinq/Release/ProjectReleases.aspx?ReleaseId=16757"&gt;CLINQ v2.0.0.0&lt;/a&gt; Features
&lt;/h1&gt;
&lt;/div&gt;</description><author>DotNetAddict</author><pubDate>Tue, 07 Oct 2008 17:21:56 GMT</pubDate><guid isPermaLink="false">Updated Wiki: CLINQ v2.0 Features 20081007052156P</guid></item><item><title>Updated Wiki: Smart Property Notification</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=Smart Property Notification&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
&lt;a href="http://www.codeplex.com/clinq/Release/ProjectReleases.aspx?ReleaseId=16757"&gt;CLINQ v2.0.0.0&lt;/a&gt; - Smart Property Notification
&lt;/h1&gt;
&lt;/div&gt;</description><author>DotNetAddict</author><pubDate>Tue, 07 Oct 2008 17:18:18 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Smart Property Notification 20081007051818P</guid></item><item><title>Updated Wiki: Smart Property Notification</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=Smart Property Notification&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
CLINQ v2.0 Features
&lt;/h1&gt;&lt;h2&gt;
Smart Property Notification
&lt;/h2&gt;
&lt;/div&gt;</description><author>DotNetAddict</author><pubDate>Tue, 07 Oct 2008 17:17:07 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Smart Property Notification 20081007051707P</guid></item><item><title>UPDATED WIKI: Create Your Own Continuous Aggregate</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=Create Your Own Continuous Aggregate&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Creating Your Own Continuous Aggregate
&lt;/h1&gt;
&lt;/div&gt;</description><author>DotNetAddict</author><pubDate>Fri, 02 May 2008 15:13:01 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Create Your Own Continuous Aggregate 20080502031301P</guid></item><item><title>UPDATED WIKI: Continuous Aggregation</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=Continuous Aggregation&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Continuous Aggregation
&lt;/h1&gt; &lt;br /&gt;Continuous Aggregation is the act of taking a continuous collection, or any other ObservableCollection, for that matter, and continuously updating a scalar value that is some kind of aggregation of that collection. For example, let's say you have a collection of Customers and you want to have a value on your WPF GUI that is a constantly updating number showing the sum of the customer ages. It could also be more complicated and show the sum total of all orders purchased by a subset of customers. The possibilities are endless.&lt;br /&gt; &lt;br /&gt;The first thing you would do is create your continuous collection, potentially by using a CLINQ query over an observable collection, as shown below:&lt;br /&gt;&lt;pre&gt;
customersOverThirty = from cust in AllCustomers
                        where cust.Age &amp;gt; 30
                        select cust;
&lt;/pre&gt; &lt;br /&gt;Then you create your continuous value object and invoke one of the aggregation extensions, such as ContinuousSum:&lt;br /&gt;&lt;pre&gt;
ContinuousValue&amp;lt;int&amp;gt; totalAge = customersOverThirty.ContinuousSum&amp;lt;Customer&amp;gt;(c =&amp;gt; c.Age);
&lt;/pre&gt; &lt;br /&gt;If you want to get really fancy, you can even nest/chain continuous aggregations together, as shown here:&lt;br /&gt;&lt;pre&gt;
ContinuousValue&amp;lt;double&amp;gt; totalPrice = customersOverThirty.ContinuousSum&amp;lt;Customer&amp;gt;(
    c =&amp;gt; c.Orders.ContinuousSum&amp;lt;Order&amp;gt;( o =&amp;gt; o.Price ));
&lt;/pre&gt; &lt;br /&gt;Now you can safely place this continuous value in your model object, a model singleton, or the datacontext of a WPF window and the WPF GUI will automatically be made aware of the changes to that scalar value!&lt;br /&gt; &lt;br /&gt;Click here to see how you can &lt;a href="http://www.codeplex.com/clinq/Wiki/View.aspx?title=Create%20Your%20Own%20Continuous%20Aggregate&amp;amp;referringTitle=Continuous%20Aggregation"&gt;Create Your Own Continuous Aggregate&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;Continuous Aggregation should be available in the 1.1.0.0 release - &lt;a href="http://www.codeplex.com/clinq/Release/ProjectReleases.aspx?ReleaseId=12569"&gt;CLINQ v1.1.0.0&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>DotNetAddict</author><pubDate>Fri, 02 May 2008 15:12:43 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Continuous Aggregation 20080502031243P</guid></item><item><title>UPDATED WIKI: CLINQ FAQ</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=CLINQ FAQ&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
FAQ
&lt;/h1&gt;&lt;h2&gt;
Cannot Change ObservableCollection During a CollectionChanged Event
&lt;/h2&gt;&amp;quot;I am writing some code where, in response to an item being added to a collection in my adapter chain, I need to add an item to the source collection. &lt;br /&gt;I get the error message 'Cannot change ObservableCollection During a CollectionChanged Event'. Is there a way around this?&amp;quot;&lt;br /&gt; &lt;br /&gt;Actually, yes, there is a way around it. If you are planning on inserting a row into the source collection which triggered the current event handler, you need to defer the work of adding the new item to a background thread, this will circumvent the re-entry barrier on ObservableCollection. Keep in mind, however, that putting it on the background thread won't save you if your code isn't designed to avoid an infinite loop of item additions - you will need to plan around that carefully. &lt;br /&gt; &lt;br /&gt;A detailed examination of this exact scenario, including the solution code, can be found here: &lt;br /&gt;&lt;a href="http://www.codeplex.com/clinq/Wiki/View.aspx?title=Adding%20to%20a%20Source%20Collection%20from%20a%20Collection%20Changed%20Event%20Handler&amp;amp;referringTitle=CLINQ%20FAQ"&gt;Adding to a Source Collection from a Collection Changed Event Handler&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Is CLINQ Thread-Safe?
&lt;/h2&gt;The short answer is, &amp;quot;no.&amp;quot;  Any synchronization between threads must be done by you.  Using the ContinuousCollection class as your source collection will ensure that all updates happen on the dispatcher on which the collection was created (in a WPF scenario).  CLINQ will also guarantee that updates to the source collection or to properties are visible when the query is bound to a WPF control, as long as the source collection is created on the GUI dispatcher.  Other than that, no thread-safety guarantees are made.  That would make the code way too complex, and we seek to maintain only the core functionality necessary to make this all work.&lt;br /&gt;
&lt;/div&gt;</description><author>javaerb</author><pubDate>Thu, 17 Apr 2008 14:23:20 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: CLINQ FAQ 20080417022320P</guid></item><item><title>UPDATED WIKI: Supported LINQ Syntax</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=Supported LINQ Syntax&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Supported LINQ Syntax
&lt;/h1&gt; &lt;br /&gt;While CLINQ is an attempt at as complete an implementation of the LINQ syntax as possible, there are some LINQ queries that just don't make sense for CLINQ to implement and others would just be too difficult to implement for such a small gain in value. The following is a list of the operators supported by CLINQ:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Where&lt;/li&gt;&lt;li&gt;Select&lt;/li&gt;&lt;li&gt;SelectMany&lt;/li&gt;&lt;li&gt;GroupBy&lt;/li&gt;&lt;li&gt;OrderBy (including ThenBy)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;CLINQ does &lt;b&gt;NOT&lt;/b&gt; support:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Join&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>javaerb</author><pubDate>Wed, 16 Apr 2008 20:52:53 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Supported LINQ Syntax 20080416085253P</guid></item><item><title>UPDATED WIKI: Continuous Aggregation</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=Continuous Aggregation&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Continuous Aggregation
&lt;/h1&gt; &lt;br /&gt;Continuous Aggregation is the act of taking a continuous collection, or any other ObservableCollection, for that matter, and continuously updating a scalar value that is some kind of aggregation of that collection. For example, let's say you have a collection of Customers and you want to have a value on your WPF GUI that is a constantly updating number showing the sum of the customer ages. It could also be more complicated and show the sum total of all orders purchased by a subset of customers. The possibilities are endless.&lt;br /&gt; &lt;br /&gt;The first thing you would do is create your continuous collection, potentially by using a CLINQ query over an observable collection, as shown below:&lt;br /&gt;&lt;pre&gt;
customersOverThirty = from cust in AllCustomers
                        where cust.Age &amp;gt; 30
                        select cust;
&lt;/pre&gt; &lt;br /&gt;Then you create your continuous value object and invoke one of the aggregation extensions, such as ContinuousSum:&lt;br /&gt;&lt;pre&gt;
ContinuousValue&amp;lt;int&amp;gt; totalAge = customersOverThirty.ContinuousSum&amp;lt;Customer&amp;gt;(c =&amp;gt; c.Age);
&lt;/pre&gt; &lt;br /&gt;If you want to get really fancy, you can even nest/chain continuous aggregations together, as shown here:&lt;br /&gt;&lt;pre&gt;
ContinuousValue&amp;lt;double&amp;gt; totalPrice = customersOverThirty.ContinuousSum&amp;lt;Customer&amp;gt;(
    c =&amp;gt; c.Orders.ContinuousSum&amp;lt;Order&amp;gt;( o =&amp;gt; o.Price ));
&lt;/pre&gt; &lt;br /&gt;Now you can safely place this continuous value in your model object, a model singleton, or the datacontext of a WPF window and the WPF GUI will automatically be made aware of the changes to that scalar value!&lt;br /&gt; &lt;br /&gt;Continuous Aggregation should be available in the 1.1.0.0 release - &lt;a href="http://www.codeplex.com/clinq/Release/ProjectReleases.aspx?ReleaseId=12569"&gt;CLINQ v1.1.0.0&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>DotNetAddict</author><pubDate>Wed, 16 Apr 2008 12:39:56 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Continuous Aggregation 20080416123956P</guid></item><item><title>UPDATED WIKI: Continuous Aggregation</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=Continuous Aggregation&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Continuous Aggregation
&lt;/h1&gt; &lt;br /&gt;Continuous Aggregation is the act of taking a continuous collection, or any other ObservableCollection, for that matter, and continuously updating a scalar value that is some kind of aggregation of that collection. For example, let's say you have a collection of Customers and you want to have a value on your WPF GUI that is a constantly updating number showing the sum of the customer ages. It could also be more complicated and show the sum total of all orders purchased by a subset of customers. The possibilities are endless.&lt;br /&gt; &lt;br /&gt;The first thing you would do is create your continuous collection, potentially by using a CLINQ query over an observable collection, as shown below:&lt;br /&gt;&lt;pre&gt;
customersOverThirty = from cust in AllCustomers
                        where cust.Age &amp;gt; 30
                        select cust;
&lt;/pre&gt; &lt;br /&gt;Then you create your continuous value object and invoke one of the aggregation extensions, such as ContinuousSum:&lt;br /&gt;&lt;pre&gt;
ContinuousValue&amp;lt;int&amp;gt; totalAge = customersOverThirty.ContinuousSum&amp;lt;Customer&amp;gt;(c =&amp;gt; c.Age);
&lt;/pre&gt; &lt;br /&gt;Now you can safely place this continuous value in your model object, a model singleton, or the datacontext of a WPF window and the WPF GUI will automatically be made aware of the changes to that scalar value!&lt;br /&gt; &lt;br /&gt;Continuous Aggregation should be available in the 1.1.0.0 release - &lt;a href="http://www.codeplex.com/clinq/Release/ProjectReleases.aspx?ReleaseId=12569"&gt;CLINQ v1.1.0.0&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>DotNetAddict</author><pubDate>Wed, 16 Apr 2008 12:38:12 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Continuous Aggregation 20080416123812P</guid></item><item><title>UPDATED WIKI: Continuous Aggregation</title><link>http://www.codeplex.com/clinq/Wiki/View.aspx?title=Continuous Aggregation&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Continuous Aggregation
&lt;/h1&gt; &lt;br /&gt;Continuous Aggregation is the act of taking a continuous collection, or any other ObservableCollection, for that matter, and continuously updating a scalar value that is some kind of aggregation of that collection. For example, let's say you have a collection of Customers and you want to have a value on your WPF GUI that is a constantly updating number showing the sum of the customer ages. It could also be more complicated and show the sum total of all orders purchased by a subset of customers. The possibilities are endless.&lt;br /&gt; &lt;br /&gt;The first thing you would do is create your continuous collection, potentially by using a CLINQ query over an observable collection, as shown below:&lt;br /&gt;&lt;pre&gt;
customersOverThirty = from cust in AllCustomers
                                  where cust.Age &amp;gt; 30
                                  select cust;
&lt;/pre&gt; &lt;br /&gt;Then you create your continuous value object and invoke one of the aggregation extensions, such as ContinuousSum:&lt;br /&gt;&lt;pre&gt;
ContinuousValue&amp;lt;int&amp;gt; totalAge = customersOverThirty.ContinuousSum&amp;lt;Customer&amp;gt;(c =&amp;gt; c.Age);
&lt;/pre&gt; &lt;br /&gt;Now you can safely place this continuous value in your model object, a model singleton, or the datacontext of a WPF window and the WPF GUI will automatically be made aware of the changes to that scalar value!&lt;br /&gt;
&lt;/div&gt;</description><author>DotNetAddict</author><pubDate>Wed, 16 Apr 2008 12:36:45 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Continuous Aggregation 20080416123645P</guid></item></channel></rss>