<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>Obtics Work Item Rss Feed</title><link>http://www.codeplex.com/Obtics/WorkItem/List.aspx</link><description>Obtics Work Item Rss Description</description><item><title>Closed Issue: ConcurrentHashtable : Custom Comparer Madness! [5603]</title><link>http://obtics.codeplex.com/workitem/5603</link><description>Hi Thomas -&lt;br /&gt;&amp;#160;&lt;br /&gt;I would really appreciate a fix for this.  We&amp;#39;ve put several days into this issue.&lt;br /&gt;&amp;#160;&lt;br /&gt;Background&amp;#58;&lt;br /&gt;--------------------------&lt;br /&gt;We are using Obtics with LLBLGen Pro, one of the strongest ORMs for .NET &amp;#40;also from the Netherlands&amp;#41;.  All our Calculations are performed server-side in real-time &amp;#40;not on the client as with Silverlight&amp;#41;.  Thus - ConcurrentHashtable is EXTREMELY important so users are isolated from eachother&amp;#39;s Calculations on the server.&lt;br /&gt;&amp;#160;&lt;br /&gt;Problem&amp;#58;&lt;br /&gt;--------------------------&lt;br /&gt;Obtics is not always using the ObticsEqualityComparerAttribute to do comparisons.  Our breakpoints in our custom Comparer are firing, so we know we are hooked in correctly.  However, Obtics is still calling .Equals or .GetHashCode on the objects themselves - instead of our Comparer.  This is causing major problems.&lt;br /&gt;&amp;#160;&lt;br /&gt;Unwanted Side Effects, either&amp;#58;&lt;br /&gt;1.&amp;#41; With Custom Comparer&amp;#58;  Only calculations in the first screen work, no calculations in any successive screens or dialogs will function.&lt;br /&gt;2.&amp;#41; Without Custom Comparer&amp;#58;  All Calculations for an Entity are shared across all user sessions&amp;#33;&amp;#33;  If User &amp;#35;1 views Entity A1, and another User &amp;#35;2 views Entity A2... User &amp;#35;1&amp;#39;s calculations are displayed on User &amp;#35;2&amp;#39;s screen.&lt;br /&gt;&amp;#160;&lt;br /&gt;LLBLGen Pro&lt;br /&gt;--------------------------&lt;br /&gt;.Equals&amp;#40;&amp;#41; method is based solely on PrimaryKeys.&lt;br /&gt;.GetHashCode&amp;#40;&amp;#41; method is based solely on all matching field values.&lt;br /&gt;&amp;#160;&lt;br /&gt;Using the methods above, cloning an Entity will result in the clone &amp;#38; original being &amp;#34;equal&amp;#34;.  Also, fetching the same entity twice from the DB... both instances are considered &amp;#34;equal&amp;#34; in the LLBLGen world.  Thus, Obtics will not listen to a cloned entity or a re-fetched entity - because Obtics thinks it is already listening to it, when really it&amp;#39;s only listening to the first entity.&lt;br /&gt;&amp;#160;&lt;br /&gt;This is severely limiting &amp;#38; does not allow for multiple instances of an Entity to be calculated independently on separate screens.&lt;br /&gt;&amp;#160;&lt;br /&gt;We are using deep cloning extensively for child screens &amp;#47; dialog windows where Calculations must be made.  Thus - the main screen&amp;#39;s Calculations must be kept &amp;#47;completely&amp;#47; separate from the child screen&amp;#39;s Calculations.  For our cloned entities to Calculate independently of the original entities, we need to enforce ReferenceEquals&amp;#40;&amp;#41; comparison in Obtics.  Anything less will result in disastrous cross-screen &amp;#38; cross-session calculations.  As you can imagine - horror stories for both our users and the development team.&lt;br /&gt;&amp;#160;&lt;br /&gt;After days of work, we have narrowed it down to a simple unit test, which I am more than happy to provide you with.&lt;br /&gt;&amp;#160;&lt;br /&gt;Also, We do not create any anonymous types in our Expressions, as you have mentioned in other posts.  We have read up on&amp;#58;&lt;br /&gt;&amp;#42; http&amp;#58;&amp;#47;&amp;#47;obtics.codeplex.com&amp;#47;wikipage&amp;#63;title&amp;#61;Well-behaved&amp;#38;ProjectName&amp;#61;obtics&lt;br /&gt;&amp;#42; http&amp;#58;&amp;#47;&amp;#47;obtics.codeplex.com&amp;#47;WorkItem&amp;#47;View.aspx&amp;#63;WorkItemId&amp;#61;5208&lt;br /&gt;&amp;#160;&lt;br /&gt;In Summary, We simply need Obtics to &amp;#42;&amp;#47;always&amp;#47;&amp;#42; use the custom IEqualityComparer.&lt;br /&gt;&amp;#160;&lt;br /&gt;Please help, Thomas&amp;#33;  You are greatly appreciated here - we hold Obtics in high regard.  Look forward to hearing from you.&lt;br /&gt;&amp;#160;&lt;br /&gt;Thank you very much.  Sincerely,&lt;br /&gt;&amp;#160;&lt;br /&gt;Ryan D. Hatch&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#160;&lt;br /&gt;Custom Comparer - Used to keep each object instance separate, so calculations are able to fire separately on two cloned entities&amp;#58;&lt;br /&gt;---&lt;br /&gt;public class RyansObticsEntityComparer &amp;#58; IEqualityComparer&amp;#60;CommonEntityBase&amp;#62;&lt;br /&gt;&amp;#123;&lt;br /&gt;    public bool Equals&amp;#40;CommonEntityBase x, CommonEntityBase y&amp;#41;&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#47;&amp;#47; Require Same Instance&lt;br /&gt;        return ReferenceEquals&amp;#40;x, y&amp;#41;&amp;#59;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;    public int GetHashCode&amp;#40;CommonEntityBase obj&amp;#41;&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#47;&amp;#47; Return Unique Instance Guid&lt;br /&gt;        byte&amp;#91;&amp;#93; guidBytes &amp;#61; obj.UniqueInstanceID.ToByteArray&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        return BitConverter.ToInt32&amp;#40;guidBytes, 0&amp;#41;&amp;#59;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#160;&lt;br /&gt;&amp;#91;Obtics.ObticsEqualityComparer&amp;#40;typeof&amp;#40;RyansObticsEntityComparer&amp;#41;&amp;#41;&amp;#93;&lt;br /&gt;public class CommonEntityBase&lt;br /&gt;&amp;#123; ...&lt;br /&gt;</description><author>rdhatch</author><pubDate>Thu, 16 May 2013 04:55:52 GMT</pubDate><guid isPermaLink="false">Closed Issue: ConcurrentHashtable : Custom Comparer Madness! [5603] 20130516045552A</guid></item><item><title>Commented Issue: NullReferenceException in ProviderFinder [8600]</title><link>http://obtics.codeplex.com/workitem/8600</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I have a NullReferenceException in the initialization of the Assemblies array with Silverlight &amp;#58; &lt;br /&gt;&lt;br /&gt;        static Assembly&amp;#91;&amp;#93; _Assemblies &amp;#61;&lt;br /&gt;            System.Windows.Deployment.Current.Parts&lt;br /&gt;                .Select&amp;#40;p &amp;#61;&amp;#62; new Uri&amp;#40;p.Source, UriKind.Relative&amp;#41;&amp;#41;&lt;br /&gt;                .Concat&amp;#40;System.Windows.Deployment.Current.ExternalParts.Select&amp;#40;ep &amp;#61;&amp;#62; ep.Source&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;uri &amp;#61;&amp;#62; System.Windows.Application.GetResourceStream&amp;#40;uri&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;strInfo &amp;#61;&amp;#62; new System.Windows.AssemblyPart&amp;#40;&amp;#41;.Load&amp;#40;strInfo.Stream&amp;#41;&amp;#41;&lt;br /&gt;                .ToArray&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;When System.Windows.Application.GetResourceStream&amp;#40;uri&amp;#41;&amp;#41; return null.&lt;br /&gt;&lt;br /&gt;I have fix with this trick &amp;#58;&lt;br /&gt;&lt;br /&gt;        static Assembly&amp;#91;&amp;#93; _Assemblies &amp;#61;&lt;br /&gt;            System.Windows.Deployment.Current.Parts&lt;br /&gt;                .Select&amp;#40;p &amp;#61;&amp;#62; new Uri&amp;#40;p.Source, UriKind.Relative&amp;#41;&amp;#41;&lt;br /&gt;                .Concat&amp;#40;System.Windows.Deployment.Current.ExternalParts.Select&amp;#40;ep &amp;#61;&amp;#62; ep.Source&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;uri &amp;#61;&amp;#62; System.Windows.Application.GetResourceStream&amp;#40;uri&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;strInfo &amp;#61;&amp;#62; strInfo &amp;#61;&amp;#61; null &amp;#63; null &amp;#58; new System.Windows.AssemblyPart&amp;#40;&amp;#41;.Load&amp;#40;strInfo.Stream&amp;#41;&amp;#41;&lt;br /&gt;                .Where&amp;#40;assembly &amp;#61;&amp;#62; assembly &amp;#33;&amp;#61; null&amp;#41;&lt;br /&gt;                .ToArray&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;Thanks.&lt;br /&gt;Comments: ** Comment from web user: Throb ** &lt;p&gt;Ok.. Applied your suggestion.. Tx &amp;#58;-&amp;#41;&lt;/p&gt;</description><author>Throb</author><pubDate>Sat, 13 Aug 2011 14:28:05 GMT</pubDate><guid isPermaLink="false">Commented Issue: NullReferenceException in ProviderFinder [8600] 20110813022805P</guid></item><item><title>Commented Issue: Mapping Error [8602]</title><link>http://obtics.codeplex.com/workitem/8602</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;With the latest version, i have problem with a mapping.&lt;br /&gt;&lt;br /&gt;    public static partial class ObjectVersionHelper&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;ExpressionObserverMapping&amp;#40;typeof &amp;#40;Observable&amp;#41;&amp;#41;&amp;#93;&lt;br /&gt;        public static T GetLastVersionAtDate&amp;#60;T&amp;#62;&amp;#40;this IEnumerable&amp;#60;T&amp;#62; enumerable, DateTime dateTime&amp;#41; where T &amp;#58; IObjectVersion&lt;br /&gt;        &amp;#123;&lt;br /&gt;            if &amp;#40;enumerable &amp;#61;&amp;#61; null&amp;#41; return default&amp;#40;T&amp;#41;&amp;#59;&lt;br /&gt;            return enumerable.Where&amp;#40;ta &amp;#61;&amp;#62; ta.VersionDate.Date &amp;#60;&amp;#61; dateTime.Date&amp;#41;.OrderByDescending&amp;#40;ov &amp;#61;&amp;#62; ov.VersionDate&amp;#41;.FirstOrDefault&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&lt;br /&gt;    public static partial class ObjectVersionHelper&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#35;region Nested type&amp;#58; Observable&lt;br /&gt;&lt;br /&gt;        public static class Observable&lt;br /&gt;        &amp;#123;&lt;br /&gt;            public static IValueProvider&amp;#60;T&amp;#62; GetLastVersionAtDate&amp;#60;T&amp;#62;&amp;#40;IEnumerable&amp;#60;T&amp;#62; enumerable, DateTime dateTime&amp;#41; where T &amp;#58; IObjectVersion&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return enumerable.Where&amp;#40;ta &amp;#61;&amp;#62; ta.VersionDate.Date &amp;#60;&amp;#61; dateTime.Date&amp;#41;.OrderByDescending&amp;#40;ov &amp;#61;&amp;#62; ov.VersionDate.Date&amp;#41;.FirstOrDefault&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;   &amp;#125;&lt;br /&gt;&lt;br /&gt;Have you an idea &amp;#63;&lt;br /&gt;&lt;br /&gt;Vincent&lt;br /&gt;Comments: ** Comment from web user: Throb ** &lt;p&gt;Tx for reporting. &amp;#58;-&amp;#41;  Mapper was getting confused because new way of registering was finding generic specializations instead of generic type definitions... Fixed.&lt;/p&gt;</description><author>Throb</author><pubDate>Sat, 13 Aug 2011 14:27:06 GMT</pubDate><guid isPermaLink="false">Commented Issue: Mapping Error [8602] 20110813022706P</guid></item><item><title>Commented Issue: ProviderFinder and concurrency [8605]</title><link>http://obtics.codeplex.com/workitem/8605</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I have an exception at &lt;br /&gt;&lt;br /&gt;  &amp;#224; System.Runtime.CompilerServices.ConditionalWeakTable&amp;#96;2.Add&amp;#40;TKey key, TValue value&amp;#41;&lt;br /&gt;  &amp;#224; Obtics.ProviderFinder&amp;#96;3.GetValue&amp;#40;TKey key&amp;#41;&lt;br /&gt;&lt;br /&gt;because an other thread has already add this key. &lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vincent&lt;br /&gt;Comments: ** Comment from web user: Throb ** &lt;p&gt;Tx for reporting that. &amp;#39;Add&amp;#39; doesn&amp;#39;t behave as I thought.. fixed.&lt;/p&gt;</description><author>Throb</author><pubDate>Sat, 13 Aug 2011 14:25:10 GMT</pubDate><guid isPermaLink="false">Commented Issue: ProviderFinder and concurrency [8605] 20110813022510P</guid></item><item><title>Closed Issue: ProviderFinder and concurrency [8605]</title><link>http://obtics.codeplex.com/workitem/8605</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I have an exception at &lt;br /&gt;&lt;br /&gt;  &amp;#224; System.Runtime.CompilerServices.ConditionalWeakTable&amp;#96;2.Add&amp;#40;TKey key, TValue value&amp;#41;&lt;br /&gt;  &amp;#224; Obtics.ProviderFinder&amp;#96;3.GetValue&amp;#40;TKey key&amp;#41;&lt;br /&gt;&lt;br /&gt;because an other thread has already add this key. &lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vincent&lt;br /&gt;Comments: Resolved with changeset 61362.</description><author>Throb</author><pubDate>Sat, 13 Aug 2011 14:03:36 GMT</pubDate><guid isPermaLink="false">Closed Issue: ProviderFinder and concurrency [8605] 20110813020336P</guid></item><item><title>Closed Issue: Mapping Error [8602]</title><link>http://obtics.codeplex.com/workitem/8602</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;With the latest version, i have problem with a mapping.&lt;br /&gt;&lt;br /&gt;    public static partial class ObjectVersionHelper&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;ExpressionObserverMapping&amp;#40;typeof &amp;#40;Observable&amp;#41;&amp;#41;&amp;#93;&lt;br /&gt;        public static T GetLastVersionAtDate&amp;#60;T&amp;#62;&amp;#40;this IEnumerable&amp;#60;T&amp;#62; enumerable, DateTime dateTime&amp;#41; where T &amp;#58; IObjectVersion&lt;br /&gt;        &amp;#123;&lt;br /&gt;            if &amp;#40;enumerable &amp;#61;&amp;#61; null&amp;#41; return default&amp;#40;T&amp;#41;&amp;#59;&lt;br /&gt;            return enumerable.Where&amp;#40;ta &amp;#61;&amp;#62; ta.VersionDate.Date &amp;#60;&amp;#61; dateTime.Date&amp;#41;.OrderByDescending&amp;#40;ov &amp;#61;&amp;#62; ov.VersionDate&amp;#41;.FirstOrDefault&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&lt;br /&gt;    public static partial class ObjectVersionHelper&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#35;region Nested type&amp;#58; Observable&lt;br /&gt;&lt;br /&gt;        public static class Observable&lt;br /&gt;        &amp;#123;&lt;br /&gt;            public static IValueProvider&amp;#60;T&amp;#62; GetLastVersionAtDate&amp;#60;T&amp;#62;&amp;#40;IEnumerable&amp;#60;T&amp;#62; enumerable, DateTime dateTime&amp;#41; where T &amp;#58; IObjectVersion&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return enumerable.Where&amp;#40;ta &amp;#61;&amp;#62; ta.VersionDate.Date &amp;#60;&amp;#61; dateTime.Date&amp;#41;.OrderByDescending&amp;#40;ov &amp;#61;&amp;#62; ov.VersionDate.Date&amp;#41;.FirstOrDefault&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;   &amp;#125;&lt;br /&gt;&lt;br /&gt;Have you an idea &amp;#63;&lt;br /&gt;&lt;br /&gt;Vincent&lt;br /&gt;Comments: Resolved with changeset 61362.</description><author>Throb</author><pubDate>Sat, 13 Aug 2011 14:03:35 GMT</pubDate><guid isPermaLink="false">Closed Issue: Mapping Error [8602] 20110813020335P</guid></item><item><title>Closed Issue: NullReferenceException in ProviderFinder [8600]</title><link>http://obtics.codeplex.com/workitem/8600</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I have a NullReferenceException in the initialization of the Assemblies array with Silverlight &amp;#58; &lt;br /&gt;&lt;br /&gt;        static Assembly&amp;#91;&amp;#93; _Assemblies &amp;#61;&lt;br /&gt;            System.Windows.Deployment.Current.Parts&lt;br /&gt;                .Select&amp;#40;p &amp;#61;&amp;#62; new Uri&amp;#40;p.Source, UriKind.Relative&amp;#41;&amp;#41;&lt;br /&gt;                .Concat&amp;#40;System.Windows.Deployment.Current.ExternalParts.Select&amp;#40;ep &amp;#61;&amp;#62; ep.Source&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;uri &amp;#61;&amp;#62; System.Windows.Application.GetResourceStream&amp;#40;uri&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;strInfo &amp;#61;&amp;#62; new System.Windows.AssemblyPart&amp;#40;&amp;#41;.Load&amp;#40;strInfo.Stream&amp;#41;&amp;#41;&lt;br /&gt;                .ToArray&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;When System.Windows.Application.GetResourceStream&amp;#40;uri&amp;#41;&amp;#41; return null.&lt;br /&gt;&lt;br /&gt;I have fix with this trick &amp;#58;&lt;br /&gt;&lt;br /&gt;        static Assembly&amp;#91;&amp;#93; _Assemblies &amp;#61;&lt;br /&gt;            System.Windows.Deployment.Current.Parts&lt;br /&gt;                .Select&amp;#40;p &amp;#61;&amp;#62; new Uri&amp;#40;p.Source, UriKind.Relative&amp;#41;&amp;#41;&lt;br /&gt;                .Concat&amp;#40;System.Windows.Deployment.Current.ExternalParts.Select&amp;#40;ep &amp;#61;&amp;#62; ep.Source&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;uri &amp;#61;&amp;#62; System.Windows.Application.GetResourceStream&amp;#40;uri&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;strInfo &amp;#61;&amp;#62; strInfo &amp;#61;&amp;#61; null &amp;#63; null &amp;#58; new System.Windows.AssemblyPart&amp;#40;&amp;#41;.Load&amp;#40;strInfo.Stream&amp;#41;&amp;#41;&lt;br /&gt;                .Where&amp;#40;assembly &amp;#61;&amp;#62; assembly &amp;#33;&amp;#61; null&amp;#41;&lt;br /&gt;                .ToArray&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;Thanks.&lt;br /&gt;Comments: Resolved with changeset 61362.</description><author>Throb</author><pubDate>Sat, 13 Aug 2011 14:03:33 GMT</pubDate><guid isPermaLink="false">Closed Issue: NullReferenceException in ProviderFinder [8600] 20110813020333P</guid></item><item><title>Created Issue: ProviderFinder and concurrency [8605]</title><link>http://obtics.codeplex.com/workitem/8605</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I have an exception at &lt;br /&gt;&lt;br /&gt;  &amp;#224; System.Runtime.CompilerServices.ConditionalWeakTable&amp;#96;2.Add&amp;#40;TKey key, TValue value&amp;#41;&lt;br /&gt;  &amp;#224; Obtics.ProviderFinder&amp;#96;3.GetValue&amp;#40;TKey key&amp;#41;&lt;br /&gt;&lt;br /&gt;because an other thread has already add this key. &lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Vincent&lt;br /&gt;</description><author>vbouzon</author><pubDate>Fri, 12 Aug 2011 09:25:52 GMT</pubDate><guid isPermaLink="false">Created Issue: ProviderFinder and concurrency [8605] 20110812092552A</guid></item><item><title>Created Issue: Mapping Error [8602]</title><link>http://obtics.codeplex.com/workitem/8602</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;With the latest version, i have problem with a mapping.&lt;br /&gt;&lt;br /&gt;    public static partial class ObjectVersionHelper&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;ExpressionObserverMapping&amp;#40;typeof &amp;#40;Observable&amp;#41;&amp;#41;&amp;#93;&lt;br /&gt;        public static T GetLastVersionAtDate&amp;#60;T&amp;#62;&amp;#40;this IEnumerable&amp;#60;T&amp;#62; enumerable, DateTime dateTime&amp;#41; where T &amp;#58; IObjectVersion&lt;br /&gt;        &amp;#123;&lt;br /&gt;            if &amp;#40;enumerable &amp;#61;&amp;#61; null&amp;#41; return default&amp;#40;T&amp;#41;&amp;#59;&lt;br /&gt;            return enumerable.Where&amp;#40;ta &amp;#61;&amp;#62; ta.VersionDate.Date &amp;#60;&amp;#61; dateTime.Date&amp;#41;.OrderByDescending&amp;#40;ov &amp;#61;&amp;#62; ov.VersionDate&amp;#41;.FirstOrDefault&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&lt;br /&gt;    public static partial class ObjectVersionHelper&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#35;region Nested type&amp;#58; Observable&lt;br /&gt;&lt;br /&gt;        public static class Observable&lt;br /&gt;        &amp;#123;&lt;br /&gt;            public static IValueProvider&amp;#60;T&amp;#62; GetLastVersionAtDate&amp;#60;T&amp;#62;&amp;#40;IEnumerable&amp;#60;T&amp;#62; enumerable, DateTime dateTime&amp;#41; where T &amp;#58; IObjectVersion&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return enumerable.Where&amp;#40;ta &amp;#61;&amp;#62; ta.VersionDate.Date &amp;#60;&amp;#61; dateTime.Date&amp;#41;.OrderByDescending&amp;#40;ov &amp;#61;&amp;#62; ov.VersionDate.Date&amp;#41;.FirstOrDefault&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;   &amp;#125;&lt;br /&gt;&lt;br /&gt;Have you an idea &amp;#63;&lt;br /&gt;&lt;br /&gt;Vincent&lt;br /&gt;</description><author>vbouzon</author><pubDate>Thu, 11 Aug 2011 15:11:03 GMT</pubDate><guid isPermaLink="false">Created Issue: Mapping Error [8602] 20110811031103P</guid></item><item><title>Created Issue: NullReferenceException in ProviderFinder [8600]</title><link>http://obtics.codeplex.com/workitem/8600</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I have a NullReferenceException in the initialization of the Assemblies array with Silverlight &amp;#58; &lt;br /&gt;&lt;br /&gt;        static Assembly&amp;#91;&amp;#93; _Assemblies &amp;#61;&lt;br /&gt;            System.Windows.Deployment.Current.Parts&lt;br /&gt;                .Select&amp;#40;p &amp;#61;&amp;#62; new Uri&amp;#40;p.Source, UriKind.Relative&amp;#41;&amp;#41;&lt;br /&gt;                .Concat&amp;#40;System.Windows.Deployment.Current.ExternalParts.Select&amp;#40;ep &amp;#61;&amp;#62; ep.Source&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;uri &amp;#61;&amp;#62; System.Windows.Application.GetResourceStream&amp;#40;uri&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;strInfo &amp;#61;&amp;#62; new System.Windows.AssemblyPart&amp;#40;&amp;#41;.Load&amp;#40;strInfo.Stream&amp;#41;&amp;#41;&lt;br /&gt;                .ToArray&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;When System.Windows.Application.GetResourceStream&amp;#40;uri&amp;#41;&amp;#41; return null.&lt;br /&gt;&lt;br /&gt;I have fix with this trick &amp;#58;&lt;br /&gt;&lt;br /&gt;        static Assembly&amp;#91;&amp;#93; _Assemblies &amp;#61;&lt;br /&gt;            System.Windows.Deployment.Current.Parts&lt;br /&gt;                .Select&amp;#40;p &amp;#61;&amp;#62; new Uri&amp;#40;p.Source, UriKind.Relative&amp;#41;&amp;#41;&lt;br /&gt;                .Concat&amp;#40;System.Windows.Deployment.Current.ExternalParts.Select&amp;#40;ep &amp;#61;&amp;#62; ep.Source&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;uri &amp;#61;&amp;#62; System.Windows.Application.GetResourceStream&amp;#40;uri&amp;#41;&amp;#41;&lt;br /&gt;                .Select&amp;#40;strInfo &amp;#61;&amp;#62; strInfo &amp;#61;&amp;#61; null &amp;#63; null &amp;#58; new System.Windows.AssemblyPart&amp;#40;&amp;#41;.Load&amp;#40;strInfo.Stream&amp;#41;&amp;#41;&lt;br /&gt;                .Where&amp;#40;assembly &amp;#61;&amp;#62; assembly &amp;#33;&amp;#61; null&amp;#41;&lt;br /&gt;                .ToArray&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;Thanks.&lt;br /&gt;</description><author>vbouzon</author><pubDate>Thu, 11 Aug 2011 14:42:55 GMT</pubDate><guid isPermaLink="false">Created Issue: NullReferenceException in ProviderFinder [8600] 20110811024255P</guid></item><item><title>Commented Issue: ArgumentNullException [7639]</title><link>http://obtics.codeplex.com/workitem/7639</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I tried to migrate the version I use Obtics hoping to have a performance gain for the last&lt;br /&gt;changeset. I am facing a bug, here is the stacktrace&amp;#58;&lt;br /&gt;&lt;br /&gt;   at System.Linq.Enumerable.ToArray&amp;#91;TSource&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.&amp;#60;TakeSnapshot&amp;#62;b__0&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.XLazySnapshotEnumerator.TakeSnapshot&amp;#91;TType&amp;#93;&amp;#40;Object transformation, VersionNumber contentVersion, Func&amp;#96;1 generateEnumerable&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.TakeSnapshot&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.NotifyVpcTransformation&amp;#96;2.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.FilterTransformationBase&amp;#96;3.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.System.Collections.Generic.IEnumerable&amp;#60;TOut&amp;#62;.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at System.Linq.Enumerable.Aggregate&amp;#91;TSource,TAccumulate,TResult&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source, TAccumulate seed, Func&amp;#96;3 func, Func&amp;#96;2 resultSelector&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AccumulativeAggregate&amp;#96;3.GetValueDirect&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AggregateBase&amp;#96;2.InitializeBuffer&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CachedTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Arcan.Planning.ViewModels.DynamicWorkDay.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at lambda_method&amp;#40;Closure , DynamicWorkDay &amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.PropertyClass.GetValue&amp;#40;TIn obj&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.GetValueFromItm&amp;#40;TIn itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ExceptionTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;I think I&amp;#39;ll go back to the old, when do you think that a new stable version will be available&amp;#63;&lt;br /&gt;&lt;br /&gt;You use your assembly in your projects&amp;#63;&lt;br /&gt;I&amp;#39;d like Microsoft to do a library like yours, because it should ask you a lot of work.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Vincent BOUZON&lt;br /&gt;Comments: ** Comment from web user: vbouzon ** &lt;p&gt;Thanks &amp;#33; &lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><author>vbouzon</author><pubDate>Sun, 31 Jul 2011 08:29:31 GMT</pubDate><guid isPermaLink="false">Commented Issue: ArgumentNullException [7639] 20110731082931A</guid></item><item><title>Closed Issue: ArgumentNullException [7639]</title><link>http://obtics.codeplex.com/workitem/7639</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I tried to migrate the version I use Obtics hoping to have a performance gain for the last&lt;br /&gt;changeset. I am facing a bug, here is the stacktrace&amp;#58;&lt;br /&gt;&lt;br /&gt;   at System.Linq.Enumerable.ToArray&amp;#91;TSource&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.&amp;#60;TakeSnapshot&amp;#62;b__0&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.XLazySnapshotEnumerator.TakeSnapshot&amp;#91;TType&amp;#93;&amp;#40;Object transformation, VersionNumber contentVersion, Func&amp;#96;1 generateEnumerable&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.TakeSnapshot&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.NotifyVpcTransformation&amp;#96;2.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.FilterTransformationBase&amp;#96;3.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.System.Collections.Generic.IEnumerable&amp;#60;TOut&amp;#62;.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at System.Linq.Enumerable.Aggregate&amp;#91;TSource,TAccumulate,TResult&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source, TAccumulate seed, Func&amp;#96;3 func, Func&amp;#96;2 resultSelector&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AccumulativeAggregate&amp;#96;3.GetValueDirect&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AggregateBase&amp;#96;2.InitializeBuffer&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CachedTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Arcan.Planning.ViewModels.DynamicWorkDay.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at lambda_method&amp;#40;Closure , DynamicWorkDay &amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.PropertyClass.GetValue&amp;#40;TIn obj&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.GetValueFromItm&amp;#40;TIn itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ExceptionTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;I think I&amp;#39;ll go back to the old, when do you think that a new stable version will be available&amp;#63;&lt;br /&gt;&lt;br /&gt;You use your assembly in your projects&amp;#63;&lt;br /&gt;I&amp;#39;d like Microsoft to do a library like yours, because it should ask you a lot of work.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Vincent BOUZON&lt;br /&gt;Comments: Resolved with changeset 60992.</description><author>Throb</author><pubDate>Sat, 30 Jul 2011 23:12:16 GMT</pubDate><guid isPermaLink="false">Closed Issue: ArgumentNullException [7639] 20110730111216P</guid></item><item><title>Commented Issue: ArgumentNullException [7639]</title><link>http://obtics.codeplex.com/workitem/7639</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I tried to migrate the version I use Obtics hoping to have a performance gain for the last&lt;br /&gt;changeset. I am facing a bug, here is the stacktrace&amp;#58;&lt;br /&gt;&lt;br /&gt;   at System.Linq.Enumerable.ToArray&amp;#91;TSource&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.&amp;#60;TakeSnapshot&amp;#62;b__0&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.XLazySnapshotEnumerator.TakeSnapshot&amp;#91;TType&amp;#93;&amp;#40;Object transformation, VersionNumber contentVersion, Func&amp;#96;1 generateEnumerable&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.TakeSnapshot&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.NotifyVpcTransformation&amp;#96;2.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.FilterTransformationBase&amp;#96;3.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.System.Collections.Generic.IEnumerable&amp;#60;TOut&amp;#62;.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at System.Linq.Enumerable.Aggregate&amp;#91;TSource,TAccumulate,TResult&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source, TAccumulate seed, Func&amp;#96;3 func, Func&amp;#96;2 resultSelector&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AccumulativeAggregate&amp;#96;3.GetValueDirect&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AggregateBase&amp;#96;2.InitializeBuffer&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CachedTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Arcan.Planning.ViewModels.DynamicWorkDay.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at lambda_method&amp;#40;Closure , DynamicWorkDay &amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.PropertyClass.GetValue&amp;#40;TIn obj&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.GetValueFromItm&amp;#40;TIn itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ExceptionTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;I think I&amp;#39;ll go back to the old, when do you think that a new stable version will be available&amp;#63;&lt;br /&gt;&lt;br /&gt;You use your assembly in your projects&amp;#63;&lt;br /&gt;I&amp;#39;d like Microsoft to do a library like yours, because it should ask you a lot of work.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Vincent BOUZON&lt;br /&gt;Comments: ** Comment from web user: vbouzon ** &lt;p&gt;Hi Throb,&lt;/p&gt;&lt;p&gt;I speak about &amp;#34;Latest source code&amp;#34;. I do not use the latest version, because it not support SL4.&lt;/p&gt;&lt;p&gt;Vincent&lt;/p&gt;</description><author>vbouzon</author><pubDate>Mon, 25 Jul 2011 19:19:43 GMT</pubDate><guid isPermaLink="false">Commented Issue: ArgumentNullException [7639] 20110725071943P</guid></item><item><title>Commented Issue: ArgumentNullException [7639]</title><link>http://obtics.codeplex.com/workitem/7639</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I tried to migrate the version I use Obtics hoping to have a performance gain for the last&lt;br /&gt;changeset. I am facing a bug, here is the stacktrace&amp;#58;&lt;br /&gt;&lt;br /&gt;   at System.Linq.Enumerable.ToArray&amp;#91;TSource&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.&amp;#60;TakeSnapshot&amp;#62;b__0&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.XLazySnapshotEnumerator.TakeSnapshot&amp;#91;TType&amp;#93;&amp;#40;Object transformation, VersionNumber contentVersion, Func&amp;#96;1 generateEnumerable&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.TakeSnapshot&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.NotifyVpcTransformation&amp;#96;2.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.FilterTransformationBase&amp;#96;3.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.System.Collections.Generic.IEnumerable&amp;#60;TOut&amp;#62;.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at System.Linq.Enumerable.Aggregate&amp;#91;TSource,TAccumulate,TResult&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source, TAccumulate seed, Func&amp;#96;3 func, Func&amp;#96;2 resultSelector&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AccumulativeAggregate&amp;#96;3.GetValueDirect&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AggregateBase&amp;#96;2.InitializeBuffer&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CachedTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Arcan.Planning.ViewModels.DynamicWorkDay.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at lambda_method&amp;#40;Closure , DynamicWorkDay &amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.PropertyClass.GetValue&amp;#40;TIn obj&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.GetValueFromItm&amp;#40;TIn itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ExceptionTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;I think I&amp;#39;ll go back to the old, when do you think that a new stable version will be available&amp;#63;&lt;br /&gt;&lt;br /&gt;You use your assembly in your projects&amp;#63;&lt;br /&gt;I&amp;#39;d like Microsoft to do a library like yours, because it should ask you a lot of work.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Vincent BOUZON&lt;br /&gt;Comments: ** Comment from web user: Throb ** &lt;p&gt;Hi Vincent,&lt;/p&gt;&lt;p&gt;What do you mean with &amp;#39;latest version&amp;#39;&amp;#63; Latest source code or the latest &amp;#39;official&amp;#39; release&amp;#63;&lt;/p&gt;&lt;p&gt;Regs,&lt;/p&gt;&lt;p&gt;Thomas&lt;/p&gt;</description><author>Throb</author><pubDate>Mon, 25 Jul 2011 18:26:31 GMT</pubDate><guid isPermaLink="false">Commented Issue: ArgumentNullException [7639] 20110725062631P</guid></item><item><title>Commented Issue: ArgumentNullException [7639]</title><link>http://obtics.codeplex.com/workitem/7639</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I tried to migrate the version I use Obtics hoping to have a performance gain for the last&lt;br /&gt;changeset. I am facing a bug, here is the stacktrace&amp;#58;&lt;br /&gt;&lt;br /&gt;   at System.Linq.Enumerable.ToArray&amp;#91;TSource&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.&amp;#60;TakeSnapshot&amp;#62;b__0&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.XLazySnapshotEnumerator.TakeSnapshot&amp;#91;TType&amp;#93;&amp;#40;Object transformation, VersionNumber contentVersion, Func&amp;#96;1 generateEnumerable&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.TakeSnapshot&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.NotifyVpcTransformation&amp;#96;2.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.FilterTransformationBase&amp;#96;3.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.System.Collections.Generic.IEnumerable&amp;#60;TOut&amp;#62;.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at System.Linq.Enumerable.Aggregate&amp;#91;TSource,TAccumulate,TResult&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source, TAccumulate seed, Func&amp;#96;3 func, Func&amp;#96;2 resultSelector&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AccumulativeAggregate&amp;#96;3.GetValueDirect&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AggregateBase&amp;#96;2.InitializeBuffer&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CachedTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Arcan.Planning.ViewModels.DynamicWorkDay.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at lambda_method&amp;#40;Closure , DynamicWorkDay &amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.PropertyClass.GetValue&amp;#40;TIn obj&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.GetValueFromItm&amp;#40;TIn itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ExceptionTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;I think I&amp;#39;ll go back to the old, when do you think that a new stable version will be available&amp;#63;&lt;br /&gt;&lt;br /&gt;You use your assembly in your projects&amp;#63;&lt;br /&gt;I&amp;#39;d like Microsoft to do a library like yours, because it should ask you a lot of work.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Vincent BOUZON&lt;br /&gt;Comments: ** Comment from web user: vbouzon ** &lt;p&gt;Sorry my good expression is &amp;#58;&lt;/p&gt;&lt;p&gt;        private static readonly Func&amp;#60;Employee, DateTime, bool, IValueProvider&amp;#60;WorkDay&amp;#62;&amp;#62; WorkDayProvider &amp;#61; ExpressionObserver.Compile&amp;#40;&amp;#40;Employee e, DateTime dt, bool r&amp;#41; &amp;#61;&amp;#62; e.WorkDays &amp;#61;&amp;#61; null &amp;#63; null &amp;#58; e.WorkDays.SingleOrDefault&amp;#40;wd &amp;#61;&amp;#62; wd.Date &amp;#61;&amp;#61; dt &amp;#38;&amp;#38; wd.IsRealized &amp;#61;&amp;#61; r&amp;#41;&amp;#41;&amp;#59;&lt;/p&gt;&lt;p&gt;And &amp;#34;WorkDays&amp;#34; is a EntityCollection from WCF Ria Services, thanks.&lt;/p&gt;</description><author>vbouzon</author><pubDate>Sun, 17 Jul 2011 11:53:11 GMT</pubDate><guid isPermaLink="false">Commented Issue: ArgumentNullException [7639] 20110717115311A</guid></item><item><title>Commented Issue: ArgumentNullException [7639]</title><link>http://obtics.codeplex.com/workitem/7639</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I tried to migrate the version I use Obtics hoping to have a performance gain for the last&lt;br /&gt;changeset. I am facing a bug, here is the stacktrace&amp;#58;&lt;br /&gt;&lt;br /&gt;   at System.Linq.Enumerable.ToArray&amp;#91;TSource&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.&amp;#60;TakeSnapshot&amp;#62;b__0&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.XLazySnapshotEnumerator.TakeSnapshot&amp;#91;TType&amp;#93;&amp;#40;Object transformation, VersionNumber contentVersion, Func&amp;#96;1 generateEnumerable&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.TakeSnapshot&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.NotifyVpcTransformation&amp;#96;2.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.FilterTransformationBase&amp;#96;3.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.System.Collections.Generic.IEnumerable&amp;#60;TOut&amp;#62;.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at System.Linq.Enumerable.Aggregate&amp;#91;TSource,TAccumulate,TResult&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source, TAccumulate seed, Func&amp;#96;3 func, Func&amp;#96;2 resultSelector&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AccumulativeAggregate&amp;#96;3.GetValueDirect&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AggregateBase&amp;#96;2.InitializeBuffer&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CachedTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Arcan.Planning.ViewModels.DynamicWorkDay.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at lambda_method&amp;#40;Closure , DynamicWorkDay &amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.PropertyClass.GetValue&amp;#40;TIn obj&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.GetValueFromItm&amp;#40;TIn itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ExceptionTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;I think I&amp;#39;ll go back to the old, when do you think that a new stable version will be available&amp;#63;&lt;br /&gt;&lt;br /&gt;You use your assembly in your projects&amp;#63;&lt;br /&gt;I&amp;#39;d like Microsoft to do a library like yours, because it should ask you a lot of work.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Vincent BOUZON&lt;br /&gt;Comments: ** Comment from web user: vbouzon ** &lt;p&gt;Hi Throb,&lt;/p&gt;&lt;p&gt;I have again this issue &amp;#61;&amp;#40;&lt;/p&gt;&lt;p&gt;Obtics_Silverlight&amp;#33;Obtics.Collections.Patches.StandardPatchBase&amp;#60;System.ServiceModel.DomainServices.Client.EntityCollection&amp;#60;Arcan.Planning.Services.Web.Model.WorkDay&amp;#62;,Arcan.Planning.Services.Web.Model.WorkDay&amp;#62;.TakeSnapshot&amp;#40;&amp;#41; Line 281&lt;br /&gt;&amp;#61;&amp;#62;       void TakeSnapshot&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123; XLazySnapshotEnumerator.TakeSnapshot&amp;#60;TOut&amp;#62;&amp;#40;this, _ContentVersion, &amp;#40;&amp;#41; &amp;#61;&amp;#62; SL.Enumerable.ToArray&amp;#40;_Buffer&amp;#41;&amp;#41;&amp;#59; &amp;#125;&lt;/p&gt;&lt;p&gt;_Buffer is null, i don&amp;#39;t know why...&lt;/p&gt;&lt;p&gt;I have the latest version and my Expression is &amp;#58;&lt;/p&gt;&lt;p&gt;private static readonly Func&amp;#60;Employee, DateTime, bool, IValueProvider&amp;#60;WorkDay&amp;#62;&amp;#62; WorkDayProvider &amp;#61; &lt;br /&gt;ExpressionObserver.Compile&amp;#40;&amp;#40;Employee e, DateTime dt, bool r&amp;#41; &amp;#61;&amp;#62; e.WorkDays &amp;#61;&amp;#61; null &amp;#63; null &amp;#58; e.WorkDays.AsEnumerable&amp;#40;&amp;#41;.SingleOrDefault&amp;#40;wd &amp;#61;&amp;#62; wd.Date &amp;#61;&amp;#61; dt &amp;#38;&amp;#38; wd.IsRealized &amp;#61;&amp;#61; r&amp;#41;&amp;#41;&amp;#59;&lt;/p&gt;&lt;p&gt;I need your help.&lt;/p&gt;&lt;p&gt;Best regards,&lt;br /&gt;Vincent&lt;/p&gt;</description><author>vbouzon</author><pubDate>Sun, 17 Jul 2011 11:51:51 GMT</pubDate><guid isPermaLink="false">Commented Issue: ArgumentNullException [7639] 20110717115151A</guid></item><item><title>Closed Issue: IValueProvider.Value is incorrect unless IValueProvider is being observed !? [5674]</title><link>http://obtics.codeplex.com/workitem/5674</link><description>Hi Thomas&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve just started using Obtics and on the whole it&amp;#39;s excellent.  Well done&amp;#33;&lt;br /&gt;&lt;br /&gt;I understand there are a few undocumented gotchas &amp;#40;eg. http&amp;#58;&amp;#47;&amp;#47;obtics.codeplex.com&amp;#47;Thread&amp;#47;View.aspx&amp;#63;ThreadId&amp;#61;68881&amp;#41;, but I believe I&amp;#39;ve found a nasty bug whereby the IValueProvider&amp;#60;&amp;#62;.Value is incorrect when&amp;#59;&lt;br /&gt;a. Expression contains System.Linq.Enumerable.Intersect&amp;#40;&amp;#41; that returns non-zero AND&lt;br /&gt;b. IValueProvider isn&amp;#39;t bound&amp;#47;observed.&lt;br /&gt;&lt;br /&gt;The following code illustrates the problem&amp;#59;&lt;br /&gt;a. Class A - expression without Intersect that works without requiring the obtics property to be observed.&lt;br /&gt;b. Class B - expression with Intersect that fails unless the obitcs property is observed.&lt;br /&gt;&lt;br /&gt;I&amp;#39;m assuming the problem isn&amp;#39;t unique to Intersect&amp;#40;&amp;#41;, but instead possibly related to&amp;#59;&lt;br /&gt;- inter-dependencies in the constructed expression tree&amp;#63;&lt;br /&gt;- delayed execution not firing when the IValueProvider&amp;#60;&amp;#62;.Value is read&amp;#63;  I suspect this is the issue.&lt;br /&gt;&lt;br /&gt;I&amp;#39;d &amp;#42;really&amp;#42; appreciate a fix to this issue as these expressions are typical &amp;#40;albeit it more complex&amp;#41; of those I need to observe.&lt;br /&gt;&lt;br /&gt;Many Thanks&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;using System&amp;#59;&lt;br /&gt;using System.Collections.Generic&amp;#59;&lt;br /&gt;using System.Collections.ObjectModel&amp;#59;&lt;br /&gt;using System.ComponentModel&amp;#59;&lt;br /&gt;using System.Linq&amp;#59;&lt;br /&gt;using Obtics.Values&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace ObticsValueTest&lt;br /&gt;&amp;#123;&lt;br /&gt;    &amp;#47;&amp;#47; simpler expression that doesn&amp;#39;t involve Intersect&amp;#40;&amp;#41;&lt;br /&gt;    public class A&lt;br /&gt;    &amp;#123;&lt;br /&gt;        public ObservableCollection&amp;#60;object&amp;#62; OC1 &amp;#61; new ObservableCollection&amp;#60;object&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        public ObservableCollection&amp;#60;object&amp;#62; OC2 &amp;#61; new ObservableCollection&amp;#60;object&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;        public int Method&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            return OC1.Count&amp;#40;&amp;#41; &amp;#43; OC2.Count&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;        public IValueProvider&amp;#60;int&amp;#62; Property&lt;br /&gt;        &amp;#123;&lt;br /&gt;            get &amp;#123; return ExpressionObserver.Execute&amp;#40;&amp;#40;&amp;#41; &amp;#61;&amp;#62; OC1.Count&amp;#40;&amp;#41; &amp;#43; OC2.Count&amp;#40;&amp;#41;&amp;#41;&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&lt;br /&gt;    &amp;#47;&amp;#47; more cmplex expression using Intersect&amp;#40;&amp;#41;&lt;br /&gt;    public class B&lt;br /&gt;    &amp;#123;&lt;br /&gt;        public ObservableCollection&amp;#60;object&amp;#62; OC1 &amp;#61; new ObservableCollection&amp;#60;object&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        public ObservableCollection&amp;#60;object&amp;#62; OC2 &amp;#61; new ObservableCollection&amp;#60;object&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;        public int Method&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            return OC1.Intersect&amp;#40;OC2&amp;#41;.Count&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;        public IValueProvider&amp;#60;int&amp;#62; Property&lt;br /&gt;        &amp;#123;&lt;br /&gt;            get &amp;#123; return ExpressionObserver.Execute&amp;#40;&amp;#40;&amp;#41; &amp;#61;&amp;#62; OC1.Intersect&amp;#40;OC2&amp;#41;.Count&amp;#40;&amp;#41;&amp;#41;&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    class Program&lt;br /&gt;    &amp;#123;&lt;br /&gt;        static void Main&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            &amp;#47;&amp;#47; works&lt;br /&gt;            var a1 &amp;#61; new A&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            Test&amp;#40;a1&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            &amp;#47;&amp;#47; works&lt;br /&gt;            var b1 &amp;#61; new B&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#40;&amp;#40;INotifyPropertyChanged&amp;#41; b1.Property&amp;#41;.PropertyChanged &amp;#43;&amp;#61; &amp;#40;s, e&amp;#41; &amp;#61;&amp;#62; &amp;#123; &amp;#125;&amp;#59;&lt;br /&gt;            Test&amp;#40;b1&amp;#41;&amp;#59;&lt;br /&gt;            &lt;br /&gt;            &amp;#47;&amp;#47; fails&lt;br /&gt;            var b2 &amp;#61; new B&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            Test&amp;#40;b2&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        static void Test&amp;#40;A a&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            var o1 &amp;#61; new object&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            var o2 &amp;#61; new object&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            a.OC1.Add&amp;#40;o1&amp;#41;&amp;#59;&lt;br /&gt;            if &amp;#40;a.Method&amp;#40;&amp;#41; &amp;#33;&amp;#61; a.Property.Value&amp;#41;&lt;br /&gt;                throw new Exception&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            a.OC2.Add&amp;#40;o1&amp;#41;&amp;#59;&lt;br /&gt;            if &amp;#40;a.Method&amp;#40;&amp;#41; &amp;#33;&amp;#61; a.Property.Value&amp;#41;&lt;br /&gt;                throw new Exception&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            a.OC2.Add&amp;#40;o2&amp;#41;&amp;#59;&lt;br /&gt;            if &amp;#40;a.Method&amp;#40;&amp;#41; &amp;#33;&amp;#61; a.Property.Value&amp;#41;&lt;br /&gt;                throw new Exception&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        static void Test&amp;#40;B b&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            var o1 &amp;#61; new object&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            var o2 &amp;#61; new object&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            b.OC1.Add&amp;#40;o1&amp;#41;&amp;#59;&lt;br /&gt;            if &amp;#40;b.Method&amp;#40;&amp;#41; &amp;#33;&amp;#61; b.Property.Value&amp;#41;&lt;br /&gt;                throw new Exception&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            b.OC2.Add&amp;#40;o1&amp;#41;&amp;#59;&lt;br /&gt;            if &amp;#40;b.Method&amp;#40;&amp;#41; &amp;#33;&amp;#61; b.Property.Value&amp;#41;&lt;br /&gt;                throw new Exception&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            b.OC2.Add&amp;#40;o2&amp;#41;&amp;#59;&lt;br /&gt;            if &amp;#40;b.Method&amp;#40;&amp;#41; &amp;#33;&amp;#61; b.Property.Value&amp;#41;&lt;br /&gt;                throw new Exception&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;</description><author>Throb</author><pubDate>Sun, 26 Jun 2011 07:34:27 GMT</pubDate><guid isPermaLink="false">Closed Issue: IValueProvider.Value is incorrect unless IValueProvider is being observed !? [5674] 20110626073427A</guid></item><item><title>Created Issue: Reading Value first breaks PropertyChanged [7950]</title><link>http://obtics.codeplex.com/workitem/7950</link><description>I made a simple value provider using ExpressionObserver.Execute&amp;#40;&amp;#41; on an expression like A&amp;#43;B.  If I hook up to the provider&amp;#39;s PropertyChanged event before reading the Value property, then it works as expected.  If I read the Value property before hooking up PropertyChanged, then the PropertyChanged event does not fire when the expression changes.  Even though the event doesn&amp;#39;t fire, the Value property is still updated.  This is with the trunk.  It worked in the last release.&lt;br /&gt;</description><author>patearl</author><pubDate>Tue, 22 Feb 2011 00:17:10 GMT</pubDate><guid isPermaLink="false">Created Issue: Reading Value first breaks PropertyChanged [7950] 20110222121710A</guid></item><item><title>Commented Issue: ArgumentNullException [7639]</title><link>http://obtics.codeplex.com/workitem/7639</link><description>Hi Throb,&lt;br /&gt;&lt;br /&gt;I tried to migrate the version I use Obtics hoping to have a performance gain for the last&lt;br /&gt;changeset. I am facing a bug, here is the stacktrace&amp;#58;&lt;br /&gt;&lt;br /&gt;   at System.Linq.Enumerable.ToArray&amp;#91;TSource&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.&amp;#60;TakeSnapshot&amp;#62;b__0&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.XLazySnapshotEnumerator.TakeSnapshot&amp;#91;TType&amp;#93;&amp;#40;Object transformation, VersionNumber contentVersion, Func&amp;#96;1 generateEnumerable&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.TakeSnapshot&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Patches.StandardPatchBase&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.NotifyVpcTransformation&amp;#96;2.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.FilterTransformationBase&amp;#96;3.InitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.CallInitializeBuffer&amp;#40;FlagsState&amp;#38; flags&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.OpaqueTransformationBase&amp;#96;3.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.ConvertTransformationBase&amp;#96;4.GetEnumeratorEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVE&amp;#96;2.System.Collections.Generic.IEnumerable&amp;#60;TOut&amp;#62;.GetEnumerator&amp;#40;&amp;#41;&lt;br /&gt;   at System.Linq.Enumerable.Aggregate&amp;#91;TSource,TAccumulate,TResult&amp;#93;&amp;#40;IEnumerable&amp;#96;1 source, TAccumulate seed, Func&amp;#96;3 func, Func&amp;#96;2 resultSelector&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AccumulativeAggregate&amp;#96;3.GetValueDirect&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Collections.Transformations.AggregateBase&amp;#96;2.InitializeBuffer&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CachedTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetValueFromItm&amp;#40;IInternalValueProvider&amp;#96;1 itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Arcan.Planning.ViewModels.DynamicWorkDay.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at lambda_method&amp;#40;Closure , DynamicWorkDay &amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.PropertyClass.GetValue&amp;#40;TIn obj&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PropertyTransformation&amp;#96;2.GetValueFromItm&amp;#40;TIn itm&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.UnarySelectTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadeTransformation&amp;#96;2.GetItmFromSource&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.CascadingTransformationBase&amp;#96;3.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.PipelineResultTransformation&amp;#96;3.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ExceptionTransformation&amp;#96;2.GetValue&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.Values.Transformations.ConvertTransformationBase&amp;#96;2.GetValueEvent&amp;#40;&amp;#41;&lt;br /&gt;   at Obtics.NCSourcedObjectToVP&amp;#96;2.get_Value&amp;#40;&amp;#41;&lt;br /&gt;&lt;br /&gt;I think I&amp;#39;ll go back to the old, when do you think that a new stable version will be available&amp;#63;&lt;br /&gt;&lt;br /&gt;You use your assembly in your projects&amp;#63;&lt;br /&gt;I&amp;#39;d like Microsoft to do a library like yours, because it should ask you a lot of work.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Vincent BOUZON&lt;br /&gt;Comments: ** Comment from web user: Throb ** &lt;p&gt;Yes, it does take a lot of work. So at the moment progress is quite slow. The new version will not do implicit null reference checks. This leads to a significant performance improvement but leaves checking for null references or catching exceptions to the developer. Also the new introduction of skiplists &amp;#40;form of binary trees&amp;#41; should lead to improvements when working with large collections. &lt;/p&gt;&lt;p&gt;Would be nice to work on this concept in a real team, like at Microsoft.&lt;/p&gt;</description><author>Throb</author><pubDate>Fri, 24 Dec 2010 11:36:35 GMT</pubDate><guid isPermaLink="false">Commented Issue: ArgumentNullException [7639] 20101224113635A</guid></item><item><title>Commented Issue: Cannot build Obtics [7689]</title><link>http://obtics.codeplex.com/workitem/7689</link><description>It seems that Obtics requires PFX Beta for .NET 3.5.&lt;br /&gt;&lt;br /&gt;I can&amp;#39;t build the library with .NET 3.5 and PFX release or with .NET 4.0&lt;br /&gt;&lt;br /&gt;Could you please upgrade it to release version of PFX&amp;#63;&lt;br /&gt;Comments: ** Comment from web user: Throb ** &lt;p&gt;If that is all you want to do then you can take the latest source files. These should compile with .Net framework 4.0.&lt;/p&gt;</description><author>Throb</author><pubDate>Wed, 22 Dec 2010 11:29:40 GMT</pubDate><guid isPermaLink="false">Commented Issue: Cannot build Obtics [7689] 20101222112940A</guid></item></channel></rss>