<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.lhotka.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tag 'Performance'</title><link>http://forums.lhotka.net/search/SearchResults.aspx?s=5&amp;o=DateDescending&amp;tag=Performance&amp;orTags=0</link><description>Search results matching tag 'Performance'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP3 (Build: 36.8414)</generator><item><title>Performance of LoadProperty Method</title><link>http://forums.lhotka.net/forums/p/11336/52645.aspx#52645</link><pubDate>Fri, 27 Apr 2012 17:11:14 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:52645</guid><dc:creator>rlhiggin</dc:creator><description>&lt;p&gt;Hi folks,&lt;/p&gt;
&lt;p&gt;My team is working on a WPF application using CSLA 4.2.1 for our business layer implementation. We have one area within our application that currently displays a list of 5633 info objects. This list is taking approximately 3.0 seconds to load. So, I decided to investigate in order to determine what the bottleneck is. I discovered that the culprit is in the LoadProperty(IPropertyInfo propertyInfo, object newValue) method on ReadOnlyBase&amp;lt;T&amp;gt; that is being called to populate the objects from a data reader.&lt;/p&gt;
&lt;p&gt;This particular info object has 33 fields which means that LoadProperty is being called 5633 * 33 or 185,889 times in order to create the list we are trying to display. Upon further inspection, I discovered that this LoadProperty method is doing some pretty heavy lifting via reflection in order to set the field manager properties. I also noticed that a lot of this heavy lifting could be done during type initialization rather than each time a property is loaded.&lt;/p&gt;
&lt;p&gt;I wanted to try this idea out to see if it would work and to see whether or not the performance would improve noticeably. What I came up with was this:&lt;/p&gt;
&lt;p&gt;&lt;blockquote style="overflow-x: scroll;"&gt;&lt;pre style="margin: 0px;"&gt;&lt;/p&gt;
&lt;p&gt;public class MyInfoObject : ReadOnlyBase&amp;lt;MyInfoObject&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static readonly Dictionary&amp;lt;IPropertyInfo, System.Reflection.MethodInfo&amp;gt; genericPropertyMethods;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static MyInfoObject()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genericPropertyMethods = new Dictionary&amp;lt;IPropertyInfo, MethodInfo&amp;gt;();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var methods = typeof(MyInfoObject).GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var loadPropertyMethod = methods.FirstOrDefault(x =&amp;gt; x.Name == &amp;quot;LoadProperty&amp;quot; &amp;amp;&amp;amp; x.IsGenericMethod);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var cslaPropertyFields = typeof(MyInfoObject).GetFields(BindingFlags.Static | BindingFlags.NonPublic).Where(x =&amp;gt; x.FieldType.GetGenericTypeDefinition().IsAssignableFrom(typeof(Csla.PropertyInfo&amp;lt;&amp;gt;).GetGenericTypeDefinition()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var item in cslaPropertyFields)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var current = (IPropertyInfo)(item.GetValue(null));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genericPropertyMethods.Add(current, loadPropertyMethod.MakeGenericMethod(new[] { current.Type }));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void LoadProperty(IPropertyInfo propertyInfo, object newValue)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genericPropertyMethods[propertyInfo].Invoke(this, new[] { propertyInfo, newValue });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;The goal here is that instead of creating a generic method to access the property storage every time LoadProperty is called, we create all of the generic methods that will be needed one time at type intialization via a static constructor. We then store those methods in a static dictionary so they can be accessed by all instances of the type. Finally, the LoadProperty method is overridden to look up and invoke methods that are stored in the static dictionary rather than using the base implementation which would run through all the reflection code again.&lt;/p&gt;
&lt;p&gt;The results of this experiment were exactly what I expected -- faster performance. The time to load the list was reduced from approximately 3.0 seconds to approximately 1.0 seconds.&lt;/p&gt;
&lt;p&gt;This particular scenario was just a test that I setup within our system to gauge performance for loading larger lists. We will have other objects that have roughly the same number of properties that get loaded from the database and may eventually have 10-20x as many records returned once the software is fielded. In the interest of keeping our architecture scalable, we are considering implementing this logic in a generic base class such as this:&lt;/p&gt;
&lt;p&gt;&lt;blockquote style="overflow-x: scroll;"&gt;&lt;pre style="margin: 0px;"&gt;&lt;/p&gt;
&lt;p&gt;public class CustomReadOnlyBase&amp;lt;T&amp;gt; : ReadOnlyBase&amp;lt;T&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static readonly Dictionary&amp;lt;IPropertyInfo, System.Reflection.MethodInfo&amp;gt; genericPropertyMethods;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static CustomReadOnlyBase()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genericPropertyMethods = new Dictionary&amp;lt;IPropertyInfo, MethodInfo&amp;gt;();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var methods = typeof(T).GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var loadPropertyMethod = methods.FirstOrDefault(x =&amp;gt; x.Name == &amp;quot;LoadProperty&amp;quot; &amp;amp;&amp;amp; x.IsGenericMethod);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var cslaPropertyFields = typeof(T).GetFields(BindingFlags.Static | BindingFlags.NonPublic).Where(x =&amp;gt; x.FieldType.GetGenericTypeDefinition().IsAssignableFrom(typeof(Csla.PropertyInfo&amp;lt;&amp;gt;).GetGenericTypeDefinition()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var item in cslaPropertyFields)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var current = (IPropertyInfo)(item.GetValue(null));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genericPropertyMethods.Add(current, loadPropertyMethod.MakeGenericMethod(new[] { current.Type }));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void LoadProperty(IPropertyInfo propertyInfo, object newValue)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; genericPropertyMethods[propertyInfo].Invoke(this, new[] { propertyInfo, newValue });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;This would allow all of our business objects to have the same behavior. Because of the way .NET handles static members in generic types, I believe that at run time, each read only business object type, T, would get it&amp;#39;s own generic type, CustomReadOnlyBase&amp;lt;T&amp;gt; , which means we would have one static dictionary of methods for each read only business object.&lt;/p&gt;
&lt;p&gt;The fact that this implementation is not already in the CSLA ReadOnlyBase&amp;lt;T&amp;gt; makes me question whether or not this is actually a good idea. The performance benefit in my test scenario was obvious, but I&amp;#39;m curious if there are any other implications that I may have overlooked.&lt;/p&gt;
&lt;p&gt;So, while this thread was mostly intended to be a discussion, I do still have 2 questions:&lt;/p&gt;
&lt;p&gt;1.) Is there a better way to get the performance increase that we are looking for?&lt;/p&gt;
&lt;p&gt;2.) Is there a reason the reflection code was being run in every single call to LoadProperty rather than one time for type initialization? Or, to reword this question, is there a reason I should not create a CustomReadOnlyBase&amp;lt;T&amp;gt; with this implementation?&lt;/p&gt;</description></item><item><title>Major performance issue with loading ROLB</title><link>http://forums.lhotka.net/forums/p/11296/52505.aspx#52505</link><pubDate>Thu, 12 Apr 2012 03:51:18 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:52505</guid><dc:creator>TSF</dc:creator><description>&lt;p&gt;I&amp;#39;m hoping that someone can point me in the right direction for my&amp;nbsp;SL4 / CSLA4 app.&lt;/p&gt;
&lt;p&gt;A&amp;nbsp;SQL recordset containing 2,500 rows (about 16 columns) is returned from the local DP.&amp;nbsp; The proc executes in under 1 second.&amp;nbsp; However, the time it takes to loop through each record in the ROLB DP method and pass&amp;nbsp;it to the ROB via the DP.FetchChild (e.g. &lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#0000ff;font-size:x-small;"&gt;var&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt; item = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;DataPortal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;.FetchChild&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;color:#2b91af;font-size:x-small;"&gt;ItemStatusInfo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&lt;span style="font-family:Consolas;font-size:x-small;"&gt;&amp;gt;(data);) &lt;/span&gt;&lt;/span&gt;takes approx &lt;strong&gt;8 seconds&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To make matters worse, when I point the app to our &lt;em&gt;remote&lt;/em&gt; DP on an application server, the WCF service&amp;nbsp;generally times out after 30 seconds when trying to run the exact same query.&amp;nbsp; I don&amp;#39;t know if this second issue is due to trying to send that much info across the wire, or something else.&amp;nbsp; Regardless, neither scenario is acceptable.&amp;nbsp; (Note - I am using compression following Rocky&amp;#39;s example in his e-book.)&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve followed the examples that I&amp;#39;ve seen for ROLB / ROB objects and am wondering if there is any way to significantly reduce the time it takes to load all this data in order to show in a data grid.&amp;nbsp; I remember reading about a lazy load pattern, but am hoping to get some sense of direction before going down the wrong path.&amp;nbsp; Thanks.&lt;/p&gt;</description></item><item><title>CSLA mobile objects network transmission</title><link>http://forums.lhotka.net/forums/p/10636/49713.aspx#49713</link><pubDate>Thu, 25 Aug 2011 08:52:55 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:49713</guid><dc:creator>Direvius</dc:creator><description>&lt;p&gt;Good day everyone!&lt;/p&gt;
&lt;p&gt;We have a webapp based on Silverlight, WCF and CSLA. I&amp;#39;ve done some performance optimization for the app and the bottleneck for now is CSLA. I&amp;#39;ve analyzed the request, it was a search by UID operation. &lt;/p&gt;
&lt;p&gt;UID is 10-digit decimal. CSLA had serialized an object (FindByUIDCriteria) with a huge amount of additional data (state stack for example) resulted in message size of 50 KB. We have to make about 850 similar requests per second which is obviously can make our 8-core CPU to cry (and the network).&lt;/p&gt;
&lt;p&gt;Is there a way to reduce the message size (maybe by disabling the undo history or global and client contexts transmission)?&lt;/p&gt;
&lt;p&gt;Thnx, Alexey.&lt;/p&gt;</description></item><item><title>Permission based authorization and performance in CLSA.NET v4</title><link>http://forums.lhotka.net/forums/p/10603/49607.aspx#49607</link><pubDate>Tue, 09 Aug 2011 20:25:13 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:49607</guid><dc:creator>nhwilly</dc:creator><description>&lt;p&gt;I thought I had a good initial design for doing a permission based authorization model based on Rocky&amp;#39;s comments and my understanding of things - until I read in Using CSLA 4 how the principal and hence the identity have to be passed through the dataportal on each call.&amp;nbsp; That, or they have to be reconstructed on the other end.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;In the latest version of Using CSLA 4, Rocky makes a point of possible performance issues if too much data ends up in the identity.&amp;nbsp; Uh oh.&lt;/p&gt;
&lt;p&gt;Well, the design I have makes it possible to have quite a few permissions - hundreds possibly - in a given application - all stored in a SQL database.&amp;nbsp; I don&amp;#39;t want to reread all that on each dataportal call at the server and if the list is large, I don&amp;#39;t want to passed it along the wire on each dataportal call.&amp;nbsp; I know if there was some easy workaround, Rocky would have suggested it in his writings.&amp;nbsp; So I guess it&amp;#39;s a choice of the lesser of the evils, unless someone has a better idea.&lt;/p&gt;
&lt;p&gt;I haven&amp;#39;t finalized any of it yet and I thought I&amp;#39;d ask if anyone has used a permission set that&amp;#39;s large and which approach they took.&amp;nbsp; Maybe I&amp;#39;m worried too much about nothing, but I was hoping this security module would work for both&amp;nbsp;my ASP.NET applications and my WPF app.&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;</description></item><item><title>Performance challange why shuld object take 7 second for fetching?</title><link>http://forums.lhotka.net/forums/p/10526/49231.aspx#49231</link><pubDate>Thu, 14 Jul 2011 07:05:51 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:49231</guid><dc:creator>Saman</dc:creator><description>&lt;p&gt;Hello &lt;/p&gt;
&lt;p&gt;I searched about performance tuning in CSLA as my&amp;nbsp; application is too slow&lt;/p&gt;
&lt;p&gt;i checked the penalty of linq and i found that performance hit is not related to it.&lt;/p&gt;
&lt;p&gt;first of all i have a business object&amp;nbsp; Personnel that defined as follow:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;[Serializable]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Csla.Server.ObjectFactory(&amp;quot;PMS.PersonnelFactory,PMS&amp;quot;, &amp;quot;Create&amp;quot;, &amp;quot;Fetch&amp;quot;, &amp;quot;Update&amp;quot;, &amp;quot;Delete&amp;quot;)] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class Personnel : BusinessBase&amp;lt;Personnel&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;br /&gt;&amp;nbsp; public static Personnel GetPersonnel(string id)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FetchPersonnel type = new FetchPersonnel(&amp;quot;ByID&amp;quot;,id,&amp;quot;&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return DataPortal.Fetch&amp;lt;Personnel&amp;gt;(new SingleCriteria&amp;lt;FetchPersonnel&amp;gt;(type));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;b&gt;and i have factory class:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;public Personnel Fetch(SingleCriteria&amp;lt;FetchPersonnel&amp;gt; criteria)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var obj = (Personnel)MethodCaller.CreateInstance(typeof(Personnel));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (var ctx = ContextManager&amp;lt;PMS.DAL.PMSDALDataContext&amp;gt;.GetManager(&amp;quot;PMS&amp;quot;))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (criteria.Value.SearchType == &amp;quot;ByID&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var item = ctx.DataContext.fn_GetPersonnel(criteria.Value.SerarchID).First();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj = GetPersonnel(item.PersonnelID_pkey, item.NationalID_id, item.Name_name, item.Family_name, item.Image_img.ToArray(), item.OrgPost_other, item.UnitID_pkey, item.UnitName_other, item.StatusID_pkey, item.StatusName_other, item.IPAddress_ipadd, item.RoleID_pkey, item.RoleName_other, item.ActiveID_pkey, item.Password_pass, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception){}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;this process takes 7 second.&lt;/p&gt;
&lt;p&gt;am i using anything wrong?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>CSLA performance issues with large data sets</title><link>http://forums.lhotka.net/forums/p/10275/48149.aspx#48149</link><pubDate>Tue, 19 Apr 2011 01:30:40 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:48149</guid><dc:creator>JFernando</dc:creator><description>&lt;p&gt;
 
  
 

 
  Normal
  0
  
  
  
  
  false
  false
  false
  
  EN-US
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
   
   
  

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 



&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Hello folks, &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Though CSLA works
quite nicely with smaller datasets I am seeing a performance issue when
accessing larger data sets.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In particular
I have a CSLA &lt;b&gt;Read Only List Object&lt;/b&gt;
that in some cases could contain over 19K child elements. In these cases, I am
observing that &lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Csla.ReadOnlyBase.LoadProperty&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt; chews up majority of
time (in reflection) when building the list; and of course, this significantly
impacts performance! &lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;{To the interested
reader &amp;ndash; the profiling data is given below}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Has anyone seen this
performance issue before?&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Has this been fixed
in the framework (I am currently using CSLA Ver 4.0.1.0) or is there a
workaround?&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Here&amp;rsquo;s the stack &lt;/span&gt;&lt;/p&gt;
&lt;table class="MsoNormalTable" style="background:none repeat scroll 0% 0% white;border-collapse:collapse;border:medium none;" width="653" border="1" cellpadding="0" cellspacing="0"&gt;
&lt;thead&gt;
  
&lt;tr&gt;
&lt;td style="width:251.25pt;border:1pt inset #cccccc;background:none repeat scroll 0% 0% #eeeeee;padding:2.25pt 3.75pt;" width="335"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Function Name&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;background:none repeat scroll 0% 0% #eeeeee;padding:2.25pt 3.75pt;border:1pt 1pt 1pt medium inset inset inset none #cccccc #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Inclusive Samples&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:36.5pt;background:none repeat scroll 0% 0% #eeeeee;padding:2.25pt 3.75pt;border:1pt 1pt 1pt medium inset inset inset none #cccccc #cccccc #cccccc -moz-use-text-color;" width="49"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Exclusive Samples&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:40pt;background:none repeat scroll 0% 0% #eeeeee;padding:2.25pt 3.75pt;border:1pt 1pt 1pt medium inset inset inset none #cccccc #cccccc #cccccc -moz-use-text-color;" width="53"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Inclusive Samples %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;background:none repeat scroll 0% 0% #eeeeee;padding:2.25pt 3.75pt;border:1pt 1pt 1pt medium inset inset inset none #cccccc #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Exclusive Samples %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:1in;background:none repeat scroll 0% 0% #eeeeee;padding:2.25pt 3.75pt;border:1pt 1pt 1pt medium inset inset inset none #cccccc #cccccc #cccccc -moz-use-text-color;" width="96"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Module Name&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/thead&gt;
 
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:251.25pt;padding:1.5pt;border:medium 1pt 1pt none inset inset -moz-use-text-color #cccccc #cccccc;" width="335"&gt;
  
&lt;table class="MsoNormalTable" style="background:none repeat scroll 0% 0% white;border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:8.6pt;padding:0in 3.75pt 0in 0in;" valign="top" width="11"&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;-&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:235.7pt;padding:0in;" width="314"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;MiddleTier.Library.AMS360ReadOnlyBase`1.LoadProperties(object)&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;6,562&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:36.5pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="49"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;1&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:40pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="53"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;96.01&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;0.01&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:1in;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="96"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;MiddleTier.Library.DLL&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width:251.25pt;padding:1.5pt;border:medium 1pt 1pt none inset inset -moz-use-text-color #cccccc #cccccc;" width="335"&gt;
  
&lt;table class="MsoNormalTable" style="margin-left:15pt;background:none repeat scroll 0% 0% white;border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:8.1pt;padding:0in 3.75pt 0in 0in;" valign="top" width="11"&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;-&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:236.45pt;padding:0in;" width="315"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;MiddleTier.Library.AMS360ReadOnlyBase`1.LoadProperties(object,string[])&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;6,561&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:36.5pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="49"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;32&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:40pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="53"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;95.99&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;0.47&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:1in;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="96"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;MiddleTier.Library.DLL&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width:251.25pt;padding:1.5pt;border:medium 1pt 1pt none inset inset -moz-use-text-color #cccccc #cccccc;" width="335"&gt;
  
&lt;table class="MsoNormalTable" style="margin-left:30pt;background:none repeat scroll 0% 0% white;border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:8.6pt;padding:0in 3.75pt 0in 0in;" valign="top" width="11"&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;-&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:220.95pt;padding:0in;" width="295"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Csla.ReadOnlyBase`1.LoadProperty(class
    Csla.Core.IPropertyInfo,object)&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;5,544&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:36.5pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="49"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;43&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:40pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="53"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;81.11&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;0.63&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:1in;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="96"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Csla.DLL&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width:251.25pt;padding:1.5pt;border:medium 1pt 1pt none inset inset -moz-use-text-color #cccccc #cccccc;" width="335"&gt;
  
&lt;table class="MsoNormalTable" style="margin-left:45pt;background:none repeat scroll 0% 0% white;border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:8.6pt;padding:0in 3.75pt 0in 0in;" valign="top" width="11"&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:205.95pt;padding:0in;" width="275"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;System.RuntimeType.GetMethods(valuetype
    System.Reflection.BindingFlags)&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;1,633&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:36.5pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="49"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;1,633&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:40pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="53"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;23.89&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;23.89&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:1in;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="96"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;mscorlib.ni.dll&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width:251.25pt;padding:1.5pt;border:medium 1pt 1pt none inset inset -moz-use-text-color #cccccc #cccccc;" width="335"&gt;
  
&lt;table class="MsoNormalTable" style="margin-left:45pt;background:none repeat scroll 0% 0% white;border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:8.1pt;padding:0in 3.75pt 0in 0in;" valign="top" width="11"&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:206.45pt;padding:0in;" width="275"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;System.Reflection.RuntimeMethodInfo.MakeGenericMethod(class
    System.Type[])&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;1,603&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:36.5pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="49"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;1,603&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:40pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="53"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;23.45&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;23.45&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:1in;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="96"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;mscorlib.ni.dll&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width:251.25pt;padding:1.5pt;border:medium 1pt 1pt none inset inset -moz-use-text-color #cccccc #cccccc;" width="335"&gt;
  
&lt;table class="MsoNormalTable" style="margin-left:45pt;background:none repeat scroll 0% 0% white;border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:8.6pt;padding:0in 3.75pt 0in 0in;" valign="top" width="11"&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:192.5pt;padding:0in;" width="257"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;System.Reflection.MethodBase.Invoke(object,object[])&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;1,164&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:36.5pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="49"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;908&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:40pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="53"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;17.03&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;13.28&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:1in;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="96"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;mscorlib.ni.dll&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width:251.25pt;padding:1.5pt;border:medium 1pt 1pt none inset inset -moz-use-text-color #cccccc #cccccc;" width="335"&gt;
  
&lt;table class="MsoNormalTable" style="margin-left:45pt;background:none repeat scroll 0% 0% white;border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:8.6pt;padding:0in 3.75pt 0in 0in;" valign="top" width="11"&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;-&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:205.95pt;padding:0in;" width="275"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;System.Linq.Enumerable.FirstOrDefault(class
    System.Collections.Generic.IEnumerable`1&amp;lt;!!0&amp;gt;)&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;929&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:36.5pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="49"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;334&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:40pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="53"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;13.59&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;4.89&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:1in;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="96"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;System.Core.ni.dll&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width:251.25pt;padding:1.5pt;border:medium 1pt 1pt none inset inset -moz-use-text-color #cccccc #cccccc;" width="335"&gt;
  
&lt;table class="MsoNormalTable" style="margin-left:60pt;background:none repeat scroll 0% 0% white;border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:8.6pt;padding:0in 3.75pt 0in 0in;" valign="top" width="11"&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:190.95pt;padding:0in;" width="255"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Csla.ReadOnlyBase`1.&amp;lt;LoadProperty&amp;gt;b__a(class
    System.Reflection.MethodInfo)&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;595&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:36.5pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="49"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;222&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:40pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="53"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;8.71&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;3.25&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:1in;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="96"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Csla.DLL&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width:251.25pt;padding:1.5pt;border:medium 1pt 1pt none inset inset -moz-use-text-color #cccccc #cccccc;" width="335"&gt;
  
&lt;table class="MsoNormalTable" style="margin-left:30pt;background:none repeat scroll 0% 0% white;border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:8.6pt;padding:0in 3.75pt 0in 0in;" valign="top" width="11"&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;-&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:216.95pt;padding:0in;" width="289"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Csla.Reflection.MethodCaller.CallPropertyGetter(object,string)&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;570&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:36.5pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="49"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;50&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:40pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="53"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;8.34&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;0.73&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:1in;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="96"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Csla.DLL&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="width:251.25pt;padding:1.5pt;border:medium 1pt 1pt none inset inset -moz-use-text-color #cccccc #cccccc;" width="335"&gt;
  
&lt;table class="MsoNormalTable" style="margin-left:45pt;background:none repeat scroll 0% 0% white;border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width:8.6pt;padding:0in 3.75pt 0in 0in;" valign="top" width="11"&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:205.95pt;padding:0in;" width="275"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Csla.Reflection.MethodCaller.GetCachedProperty(class
    System.Type,string)&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;413&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:36.5pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="49"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;9&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:40pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="53"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;6.04&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:45pt;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="60"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;0.13&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="width:1in;padding:1.5pt;border:medium 1pt 1pt medium none inset inset none -moz-use-text-color #cccccc #cccccc -moz-use-text-color;" width="96"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Csla.DLL&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt;And the function that takes up
time&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left:0.5in;"&gt;&lt;span style="font-size:8pt;font-family:Consolas;color:blue;"&gt;protected&lt;/span&gt;&lt;span style="font-size:8pt;font-family:Consolas;"&gt; &lt;span style="color:blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LoadProperty(&lt;span style="color:#2b91af;"&gt;IPropertyInfo&lt;/span&gt;
propertyInfo, &lt;span style="color:blue;"&gt;object&lt;/span&gt; newValue)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left:0.5in;"&gt;&lt;span style="font-size:8pt;font-family:Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left:0.5in;"&gt;&lt;span style="font-size:8pt;font-family:Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style="color:blue;"&gt;var&lt;/span&gt; t = &lt;span style="color:blue;"&gt;this&lt;/span&gt;.GetType();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left:0.5in;"&gt;&lt;span style="font-size:8pt;font-family:Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style="color:blue;"&gt;var&lt;/span&gt; flags = System.Reflection.&lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.Public | System.Reflection.&lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.NonPublic | System.Reflection.&lt;span style="color:#2b91af;"&gt;BindingFlags&lt;/span&gt;.Instance;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left:0.5in;"&gt;&lt;span style="font-size:8pt;font-family:Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style="color:blue;background:none repeat scroll 0% 0% yellow;"&gt;var&lt;/span&gt;&lt;span style="background:none repeat scroll 0% 0% yellow;"&gt; method =
t.GetMethods(flags).Where(c =&amp;gt; c.Name == &lt;span style="color:#a31515;"&gt;&amp;quot;LoadProperty&amp;quot;&lt;/span&gt;
&amp;amp;&amp;amp; c.IsGenericMethod).FirstOrDefault();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left:0.5in;"&gt;&lt;span style="font-size:8pt;font-family:Consolas;background:none repeat scroll 0% 0% yellow;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;var&lt;/span&gt; gm = method.MakeGenericMethod(propertyInfo.Type);&lt;/span&gt;&lt;span style="font-size:8pt;font-family:Consolas;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left:0.5in;"&gt;&lt;span style="font-size:8pt;font-family:Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style="color:blue;"&gt;var&lt;/span&gt; p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:blue;"&gt;object&lt;/span&gt;[] { propertyInfo, newValue };&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left:0.5in;"&gt;&lt;span style="font-size:8pt;font-family:Consolas;"&gt;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;gm.Invoke(&lt;span style="color:blue;"&gt;this&lt;/span&gt;, p);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left:0.5in;"&gt;&lt;span style="font-size:8pt;font-family:Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;thanks,&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>CSLA 4.1 performance issue</title><link>http://forums.lhotka.net/forums/p/10213/47886.aspx#47886</link><pubDate>Tue, 29 Mar 2011 00:41:56 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:47886</guid><dc:creator>slackmaster</dc:creator><description>&lt;p&gt;I have a table of around 15 columns, with a few hundred records, potentially going to thousands. I present the user with a &amp;quot;search&amp;quot; form, so that they can select a record to work with. Using a ReadOnlyListBase/ReadOnlyBase combination, I populate a BindingSource, and bind that to a listbox. &lt;/p&gt;
&lt;p&gt;The problem I have is this: it takes around 15 seconds for the ReadOnlyListBase to populate itself with the 300 or so records? Performing a direct select on the table in SQL Management Studio of course takes milliseconds. Here is a snippet of the ROB:&lt;/p&gt;
&lt;pre style="font-family:Consolas;font-size:13;color:black;background:white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; TableInfo(&lt;span style="color:#2b91af;"&gt;WMSSafeDataReader&lt;/span&gt;&amp;nbsp;dr)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fetch(dr);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#endregion&lt;/span&gt;
 
&lt;span style="color:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#region&lt;/span&gt;&amp;nbsp;Data&amp;nbsp;Access
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;void&lt;/span&gt;&amp;nbsp;Fetch(&lt;span style="color:#2b91af;"&gt;WMSSafeDataReader&lt;/span&gt;&amp;nbsp;dr)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.Id&amp;nbsp;=&amp;nbsp;dr.GetInt32(&lt;span style="color:#a31515;"&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Code&amp;nbsp;=&amp;nbsp;dr.GetString(&lt;span style="color:#a31515;"&gt;&amp;quot;CODE&amp;quot;&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.Description&amp;nbsp;=&amp;nbsp;dr.GetString(&lt;span style="color:#a31515;"&gt;&amp;quot;DESCRIPTION&amp;quot;&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;br /&gt;and the ROLB:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;void&lt;/span&gt;&amp;nbsp;DataPortal_Fetch(&lt;span style="color:#2b91af;"&gt;Criteria&lt;/span&gt;&amp;nbsp;criteria)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RaiseListChangedEvents&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;false&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;using&lt;/span&gt;&amp;nbsp;(&lt;span style="color:blue;"&gt;var&lt;/span&gt;&amp;nbsp;ctx&amp;nbsp;=&amp;nbsp;&lt;span style="color:#2b91af;"&gt;ConnectionManager&lt;/span&gt;.GetManager(connectionString,&amp;nbsp;&lt;span style="color:blue;"&gt;false&lt;/span&gt;))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;using&lt;/span&gt;&amp;nbsp;(&lt;span style="color:#2b91af;"&gt;IDbCommand&lt;/span&gt;&amp;nbsp;cm&amp;nbsp;=&amp;nbsp;ctx.Connection.CreateCommand())
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cm.CommandText&amp;nbsp;=&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;quot;SELECT ID, CODE, DESCRIPTION FROM TABLE&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &amp;quot;&lt;/span&gt;;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt;&amp;nbsp;(criteria.ThisId&amp;nbsp;!=&amp;nbsp;0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cm.CommandText&amp;nbsp;+= &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;nbsp;WHERE&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cm.CommandText&amp;nbsp;+=&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;quot; THIS_ID =&amp;nbsp;@THIS_ID &amp;quot;&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cm.Parameters.Add(CreateParm(&lt;span style="color:#a31515;"&gt;&amp;quot;THIS_ID&amp;quot;&lt;/span&gt;,&amp;nbsp;criteria.ThisId));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
  
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;using&lt;/span&gt;&amp;nbsp;(&lt;span style="color:#2b91af;"&gt;SafeDataReader&lt;/span&gt;&amp;nbsp;dr&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SafeDataReader&lt;/span&gt;(cm.ExecuteReader()))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IsReadOnly&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;false&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;while&lt;/span&gt;&amp;nbsp;(dr.Read())
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Add(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TableInfo&lt;/span&gt;(dr));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IsReadOnly&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;true&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RaiseListChangedEvents&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;true&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Is there anything I can do differently to speed this up? 5 seconds per 100 records in absolutely unacceptable?! Thanks.&lt;/p&gt;</description></item><item><title>AddNew performance question</title><link>http://forums.lhotka.net/forums/p/9950/46674.aspx#46674</link><pubDate>Tue, 18 Jan 2011 15:03:55 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:46674</guid><dc:creator>bartol</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am using CSLA 4.0 and WPF and I have this BO that has a child collection (based on BusinessListBase) where the results of a calculation are stored. The child that is stored in the collection only has two properties: a Guid and a double.&lt;/p&gt;
&lt;p&gt;The problem I have is when I use AddNew to create over 10,000 items (the results of my calculation) it takes a long time to create them. I am overriding AddNewCore as such:&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;p&gt;protected override MyResult AddNewCore()&amp;nbsp;&lt;br /&gt;&lt;span style="font-size:8.33333px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Add(MyResult.New());&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return Items[Items.Count - 1];&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10px;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10px;"&gt;The code that fills the collection is something like this:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:xx-small;"&gt;
&lt;p&gt;foreach(var item in CalculationResults)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;var c = AddNew();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;c.Value = item.value;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;c.ReferenceId = item.Id;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;I wonder if there is a better and faster way to do this? I stepped through the CSLA code and there are lot of IsValid checks during the process which maybe could be postponed until the end of my bulk operation.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;B&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;</description></item><item><title>Re: a  critical performance issue.</title><link>http://forums.lhotka.net/forums/p/9311/44155.aspx#44155</link><pubDate>Mon, 02 Aug 2010 05:52:50 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:44155</guid><dc:creator>keni_nan</dc:creator><description>&lt;p&gt;hello Rock:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;I have set the property &amp;#39;RaiseListChangedEvents&amp;#39; to false when loading the list. but i found &amp;#39;AddEventHooks(OnAddEventHooks)&amp;#39; is invoked by &amp;#39;LoadPropertyValue&amp;#39;; and &amp;#39;PropertyChanged&amp;#39; is invoked yet.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;thanks!&lt;/p&gt;</description></item><item><title>a  critical performance issue.</title><link>http://forums.lhotka.net/forums/p/9311/44153.aspx#44153</link><pubDate>Mon, 02 Aug 2010 01:26:49 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:44153</guid><dc:creator>keni_nan</dc:creator><description>&lt;p&gt;hello,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;when i do a performance test on CSLA , I found that there two points(&lt;b&gt;&amp;#39;ExtendedBindingList`1::OnAddEventHooks&amp;#39; &amp;nbsp; and &amp;#39; BindableBase::add_PropertyChanged&amp;#39;&lt;/b&gt;) spend the most of time .&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;how can i handle this case?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;thanks!&lt;/p&gt;</description></item></channel></rss>