<?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>CSLA .NET</title><link>http://forums.lhotka.net/forums/</link><description>All Posts</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP3 (Build: 36.8414)</generator><item><title>Async Execution - ThreadPools, BackgroundWorker??</title><link>http://forums.lhotka.net/forums/thread/55498.aspx</link><pubDate>Mon, 20 May 2013 12:23:11 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55498</guid><dc:creator>NemisisJedi</dc:creator><slash:comments>2</slash:comments><comments>http://forums.lhotka.net/forums/thread/55498.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55498</wfw:commentRss><description>&lt;p&gt;Guys, hope eveyone is well, but need some advice.&lt;/p&gt;
&lt;p&gt;I have a class, and that class has children. &amp;nbsp;Each child is going to connect to a database, calculate some values and return. &amp;nbsp;At the moment this run in sync, so i loop through each child, connect to database, get result and move on to the next one.&lt;/p&gt;
&lt;p&gt;This works fine, but i think running the code in async mode would benefit performance.&lt;/p&gt;
&lt;p&gt;I seen this on microsoft site&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/3dasc8as(v=vs.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/3dasc8as(v=vs.80).aspx&lt;/a&gt;&amp;nbsp;describing how to use a ThreadPool to execute async tasks, and the code waits until all the tasks are finished. &amp;nbsp;This sounds exactly like what i want to do, but i understand the Prinical objects etc are not copied over into other threads? I am using asp.net 4.0.&lt;/p&gt;
&lt;p&gt;I havent done much async processing, and none where i need to carry the current prinical object.&lt;/p&gt;
&lt;p&gt;I have seen that Csla has a backgroundWorker which does pass on the prinicipal values etc. &amp;nbsp;Is there a limit on the number of BackgroundWorkers i can create? &amp;nbsp;How would i wait for all backgroundworkers to complete?&lt;/p&gt;
&lt;p&gt;Sorry i this is basic, but thought i would ask here as maybe someone else has had this problem as well&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Rule in child object using properties in parent object</title><link>http://forums.lhotka.net/forums/thread/55499.aspx</link><pubDate>Mon, 20 May 2013 13:46:37 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55499</guid><dc:creator>correodemarques</dc:creator><slash:comments>1</slash:comments><comments>http://forums.lhotka.net/forums/thread/55499.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55499</wfw:commentRss><description>&lt;p&gt;
&lt;p&gt;&lt;span&gt;I
have a rule in my children objects that uses some values from the parent
object. The rule must be executed when any of those values in the parent
changes. The rule also adds different error result messages depending of
certain conditions.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The options I have are:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1-Add the needed properties to
the child object and update its values every time the values in the parent
change using PropertyHasChanged. Those properties have to be loaded also for
every new child and when the children objects are being load from the database.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;What I don&amp;#39;t like about this
approach is to add properties to the child that don&amp;#39;t&amp;nbsp;really&amp;nbsp;belong
there and all the code needed to load those properties.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;2-Create
a lambda rule in the child that uses the values from the parent through the
Parent property of the child object. Add some method in the child object to
call BusinessRules.CheckRules(MyProperty). That method will be used from the
parent object inside PropertyHasChanged to trigger the execution of the rule in
the children.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In
this option I&amp;nbsp;don&amp;#39;t&amp;nbsp;know how to output different messages for the rule
depending of conditions inside the rule code. This is how I define the rule:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;BusinessRules.AddRule&amp;lt;MyChild&amp;gt;(MyPropertyProperty,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;o
=&amp;gt; {&lt;/span&gt;&lt;/p&gt;
&lt;p&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;hellip;rule code here using (MyParent)o.Parent
&amp;hellip;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;},
&amp;ldquo;Broken rule message&amp;rdquo;);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;My
questions are:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Is
there a better solution for this?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If
not, how can I output different messages from the rule using the second option?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Error with Dynamanic List and Sorting Lists</title><link>http://forums.lhotka.net/forums/thread/55497.aspx</link><pubDate>Mon, 20 May 2013 08:08:35 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55497</guid><dc:creator>harrybow5</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/55497.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55497</wfw:commentRss><description>&lt;p&gt;Hello, &lt;/p&gt;
&lt;p&gt;I&amp;nbsp;am experiencing&amp;nbsp;a problem with CSLA that didn&amp;#39;t seem to be in the forums, until last week when someone else was experiencing the same problems as me. the post the question is in is marked with a suggested answer so this might be the reason why you have not seen it. however I am reposting it here in hope for a answer.&lt;/p&gt;
&lt;p&gt;---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Original Post from&amp;nbsp; &lt;a href="http://forums.lhotka.net/user/Profile.aspx?UserID=12503"&gt;&lt;span style="color:#3366cc;"&gt;Cymro&lt;/span&gt;&lt;/a&gt;&amp;nbsp;in forum post &lt;a href="http://forums.lhotka.net/forums/t/11781.aspx" class="ForumNameRead"&gt;&lt;strong&gt;&lt;span style="color:#888888;"&gt;Error when pressing escape key on a filtered list bound datagridview&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;I have tested this further and it appears that there are other issues around the CancelNew behaviour with a DataGridView.&amp;nbsp; The reason I was looking at this was because we are attempting to use a SortedBindingList and FilteredBindingList with a DynamicBindingListBase derived class.&amp;nbsp; The issue here is that when the list is Sorted (or filtered) the cancel new fails and leaves the invalid new item in the list.&lt;/p&gt;
&lt;p&gt;I have tracked this down and found the issue but not a satisfactory resolution &lt;img src="http://forums.lhotka.net/emoticons/emotion-7.gif" alt="Tongue Tied" /&gt;&lt;/p&gt;
&lt;p&gt;When a new row is added to a DataGridView the AddNew adds the object to the end of the list.&amp;nbsp; Even if the sorted is list is sorted it still goes at the end of the sorted list (which is what we want).&lt;/p&gt;
&lt;p&gt;The issue is with the way that the DataGridView&amp;#39;s DataBinding handles the cancelling.&amp;nbsp; &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The DataGridView calls&amp;nbsp;CancelEdit on the child object through (IEditableObject.CancelEdit).&amp;nbsp; &lt;/li&gt;
&lt;li&gt;The changes get&amp;nbsp;rolled back&amp;nbsp;in the child object, but this has the side effect of raising OnUnknownPropertyChanged. &lt;/li&gt;
&lt;li&gt;PropertyChanged is handled by the parent BindingList and raises the IBindingList.ListChanged event with a ListChangeType of &amp;quot;Reset&amp;quot;.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;The&amp;nbsp;SortedBindingList handles the ListChanged of the source list and calls DoSort, resorting all the items in the list (including the new item).&amp;nbsp; &lt;strong&gt;&lt;em&gt;This is where the problem lies!!!&lt;/em&gt;&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;The DataGridView then calls ICancelAddNew.CancelNew&amp;nbsp;passing the last row index - but this is no longer where our item is, because it has been re-sorted into the middle of the list somewhere. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;We do not see the effect of this issue in a BusinessBindingListBase because as part of the CancelEdit on the child, it calls to the parent list to remove it (when the EditLevel &amp;lt; EditLevelAdded) using IParent.RemoveChild(T child).&amp;nbsp; With a BusinessBindingListBase the implementation of this method&amp;nbsp;removes the child, whereas with a DynamicBindingList does not.&amp;nbsp; Therefore, with a BusinessBindingListBase the new child is removed from the list before the CancelNew is even called (as part of step 2 above) which masks the issue with the CancelNew implementation of the SortedBindingList.&lt;/p&gt;
&lt;p&gt;I am unhappy with this &amp;quot;fix&amp;quot; for two reasons. Firstly, the original comment in the method...&lt;/p&gt;
&lt;p&gt;...suggests that this was thought about and decided this should not be done here.&amp;nbsp; And secondly because this just masks the real issue of the list getting re-sorted during the whole cancel process.&lt;/p&gt;
&lt;p&gt;Now the obvious &amp;quot;fix&amp;quot; is to have the DynamicBindingList remove the child as part of the IParent.RemoveChild implementation as follows...&lt;/p&gt;
&lt;pre style="FONT-SIZE:13px;FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;"&gt;    &lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; This method is called by a child object when it&lt;/span&gt;
    &lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; wants to be removed from the collection.&lt;/span&gt;
    &lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span style="COLOR:gray;"&gt;///&lt;/span&gt;&lt;span style="COLOR:green;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;param name=&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;quot;child&amp;quot;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR:green;"&gt;The child object to remove.&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
    &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; Core.&lt;span style="COLOR:#2b91af;"&gt;IEditableCollection&lt;/span&gt;.RemoveChild(Csla.Core.&lt;span style="COLOR:#2b91af;"&gt;IEditableBusinessObject&lt;/span&gt; child)
    {&lt;/pre&gt;
&lt;pre style="FONT-SIZE:13px;FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;"&gt;      Remove((C)child);
    }&lt;/pre&gt;
&lt;p&gt;I am unhappy with this &amp;quot;fix&amp;quot; for two reasons. Firstly, the original comment in the method...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:green;"&gt;// do nothing, removal of a child is handled by&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:green;"&gt;// the RemoveItem override&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;...suggests that this was thought about and decided this should not be done here. And secondly because this just masks the real issue of the list getting re-sorted during the whole cancel process.&amp;nbsp; Does anyone have any thoughts?&lt;/p&gt;
&lt;p&gt;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;EDIT:&lt;/p&gt;
&lt;p&gt;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;Forgot to mention that I am using CSLA 4.0.1 and have also tried this on 4.2.something &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Dynamic List Base Removing Items Never Calls DataPortal</title><link>http://forums.lhotka.net/forums/thread/55485.aspx</link><pubDate>Thu, 16 May 2013 18:10:54 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55485</guid><dc:creator>Todd Haehn</dc:creator><slash:comments>2</slash:comments><comments>http://forums.lhotka.net/forums/thread/55485.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55485</wfw:commentRss><description>&lt;p&gt;When I remove an item from a Dynamic List, Shouldn&amp;#39;t the Update be called right away?&amp;nbsp; Here is the code from the View Model:&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:blue;font-size:9.5pt;mso-highlight:white;"&gt;private&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:blue;font-size:9.5pt;mso-highlight:white;"&gt;void&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt; OnDeleteSessionConfirmDialogClosed(&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:#2b91af;font-size:9.5pt;mso-highlight:white;"&gt;IMessageBox&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt; messageBox)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:blue;font-size:9.5pt;mso-highlight:white;"&gt;if&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt; (messageBox.WasSelected(&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:#2b91af;font-size:9.5pt;mso-highlight:white;"&gt;MessageBoxButtons&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;.Yes))&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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;/span&gt;Model.SessionList.Remove(Session);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;I tried to save after it was removed, but the object was marked as busy and I couldn&amp;#39;t apply edits:&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:blue;font-size:9.5pt;mso-highlight:white;"&gt;private&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt; &lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:blue;font-size:9.5pt;mso-highlight:white;"&gt;void&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt; OnDeleteSessionConfirmDialogClosed(&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:#2b91af;font-size:9.5pt;mso-highlight:white;"&gt;IMessageBox&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt; messageBox)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:blue;font-size:9.5pt;mso-highlight:white;"&gt;if&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt; (messageBox.WasSelected(&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:#2b91af;font-size:9.5pt;mso-highlight:white;"&gt;MessageBoxButtons&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;.Yes))&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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;/span&gt;Model.SessionList.Remove(Session);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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;/span&gt;Session.ApplyEdit();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Session.BeginSave((o, e) =&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:blue;font-size:9.5pt;mso-highlight:white;"&gt;if&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt; (e.Error != &lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:blue;font-size:9.5pt;mso-highlight:white;"&gt;null&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:blue;font-size:9.5pt;mso-highlight:white;"&gt;throw&lt;/span&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt; e.Error;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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; &lt;/span&gt;} &lt;span style="mso-spacerun:yes;"&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;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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;/span&gt;}); &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&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&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0in 0in 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;background:white;color:black;font-size:9.5pt;mso-highlight:white;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;I don&amp;#39;t think I need to do this as the Dynamic List should save automatically...Correct?&amp;nbsp; It does dissappear off the list in the datagrid, but it never disappears from the database...any help would be appreciated!&amp;nbsp; I am using Silverlight 5 with CSLA 4.3 (I believe).&lt;/p&gt;
&lt;p&gt;Todd&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Issue with Silverlight with bxf in CSLA 4.0 factory model with fetching data</title><link>http://forums.lhotka.net/forums/thread/55475.aspx</link><pubDate>Wed, 15 May 2013 15:41:31 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55475</guid><dc:creator>devbcorleone</dc:creator><slash:comments>8</slash:comments><comments>http://forums.lhotka.net/forums/thread/55475.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55475</wfw:commentRss><description>&lt;div class="markDownOutput "&gt;My Dev team is having issues to incorporate Silverlight with Bxf in the CSLA 4.0 Factory Model, that has to call the wcf to fetch the data from database. &lt;br /&gt;&lt;br /&gt;Has anybody faced similar issues? Any help in this regard is appreciated as we are hitting the wall at this time!&lt;br /&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Silverlight: Best Place to Load Settings</title><link>http://forums.lhotka.net/forums/thread/55486.aspx</link><pubDate>Thu, 16 May 2013 18:43:50 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55486</guid><dc:creator>MadGerbil</dc:creator><slash:comments>1</slash:comments><comments>http://forums.lhotka.net/forums/thread/55486.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55486</wfw:commentRss><description>&lt;p&gt;Greetings:&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve a Silverlight application that needs to have a static class called &amp;quot;Settings&amp;quot;.&amp;nbsp;&amp;nbsp; This class will be a read only base class with about 2 dozen settings that should be available anywhere in the UI layer.&amp;nbsp; I&amp;#39;m not really sure where the best place to put that class might be ... that is, the best place to have the system make an async call to load up the settings.&lt;/p&gt;
&lt;p&gt;Maybe Application_Startup?&lt;/p&gt;
&lt;p&gt;Thoughts?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Error with Csla.ApplicationContext.User</title><link>http://forums.lhotka.net/forums/thread/54809.aspx</link><pubDate>Mon, 11 Feb 2013 20:37:48 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:54809</guid><dc:creator>TomMcCann</dc:creator><slash:comments>15</slash:comments><comments>http://forums.lhotka.net/forums/thread/54809.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=54809</wfw:commentRss><description>&lt;p&gt;I am evaluating CSLA.NET for an MVC project that I am working on. &amp;nbsp;We would like to us MVC 4 but we are running into some issues with the&amp;nbsp;Csla.ApplicationContext.User.IsInRole method and custom principals and identities. &amp;nbsp;I have been working on a solution using the CSLA.NET 4.5.11 beta, but we have experienced the issues with the 4.5.1 release as well. &amp;nbsp;Here is a link to solution that demostrates the issue.&lt;/p&gt;
&lt;p&gt;http://sdrv.ms/X0rtkf&lt;/p&gt;
&lt;p&gt;Here is what we have been observing.&lt;/p&gt;
&lt;p&gt;1. After a user successfully logs into the system, the CustomPrincipal object is loaded into the&amp;nbsp;Csla.ApplicationContext.User property. &amp;nbsp;This occurs in the&amp;nbsp;Application_AuthenticateRequest as seen in the code examples I have found.&lt;/p&gt;
&lt;p&gt;2. Immediately after loading the principal, the&amp;nbsp;Csla.ApplicationContext.User.IsInRole method works as expected within the context of the global.asax.cs.&lt;/p&gt;
&lt;p&gt;3. The Csla.ApplicationContext.User.IsInRole method does not work as expected when you are in a Controller. &amp;nbsp;IsInRole appears to always return false.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I examined the Csla.ApplicationContext.User property. &amp;nbsp;Based upon the GetType() call it is the CustomPrincipal class I have defined.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m stuck and would appreciate any help that is offered.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Error when pressing escape key on a filtered list bound datagridview</title><link>http://forums.lhotka.net/forums/thread/54573.aspx</link><pubDate>Fri, 11 Jan 2013 16:53:17 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:54573</guid><dc:creator>Helius</dc:creator><slash:comments>7</slash:comments><comments>http://forums.lhotka.net/forums/thread/54573.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=54573</wfw:commentRss><description>&lt;p&gt;In my Windows Form Application i have a datagridview bound to an Editable Child List representing a list of tariffs. I have some custom filters implemented through comboboxes and based on the values i select i build a filtered list for the tariffs.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim mFiltered As New Csla.FilteredBindingList(Of ApTariff)(oApmailItemCharacteristic.ApTariffs)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mFiltered.FilterProvider = AddressOf FilterTariff&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mFiltered.ApplyFilter(&amp;quot;&amp;quot;, oCriteria)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim mSortedTariff As New SortedBindingList(Of ApTariff)(mFiltered)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mSortedTariff.ApplySort(&amp;quot;WeightFrom&amp;quot;, ListSortDirection.Ascending)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ApTariffsBindingSource.DataSource = mSortedTariff&lt;/p&gt;
&lt;p&gt;The save for the object graph is working ok when editing existing rows on the tariffs grid, but when i try to add new rows i got an error of type &amp;quot;Edit Level Mismatch&amp;quot;&lt;/p&gt;
&lt;p&gt;Also if the datagridview is empty because of the selection from comboboxes&amp;nbsp; and i try to add a new row and press the escape key i got the following error:&lt;/p&gt;
&lt;p&gt;System.ArgumentOutOfRangeException was unhandled&lt;br /&gt;&amp;nbsp; Message=Index was out of range. Must be non-negative and less than the size of the collection.&lt;br /&gt;Parameter name: index&lt;br /&gt;&amp;nbsp; Source=mscorlib&lt;br /&gt;&amp;nbsp; ParamName=index&lt;br /&gt;&amp;nbsp; StackTrace:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.ThrowHelper.ThrowArgumentOutOfRangeException()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Collections.Generic.List`1.get_Item(Int32 index)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Csla.FilteredBindingList`1.OriginalIndex(Int32 filteredIndex)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Csla.FilteredBindingList`1.System.ComponentModel.ICancelAddNew.CancelNew(Int32 itemIndex)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Csla.SortedBindingList`1.System.ComponentModel.ICancelAddNew.CancelNew(Int32 itemIndex)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.BindingSource.System.ComponentModel.ICancelAddNew.CancelNew(Int32 position)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.CurrencyManager.CancelCurrentEdit()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.DataGridView.DataGridViewDataConnection.CancelRowEdit(Boolean restoreRow, Boolean addNewFinished)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.DataGridView.CancelEditPrivate()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.DataGridView.CancelEdit(Boolean endEdit)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.DataGridView.ProcessEscapeKey(Keys keyData)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.DataGridView.ProcessDataGridViewKey(KeyEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.DataGridView.OnKeyDown(KeyEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.Control.ProcessKeyEventArgs(Message&amp;amp; m)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.DataGridView.ProcessKeyEventArgs(Message&amp;amp; m)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.Control.ProcessKeyMessage(Message&amp;amp; m)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.Control.WndProc(Message&amp;amp; m)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.DataGridView.WndProc(Message&amp;amp; m)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&amp;amp; m)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&amp;amp; m)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&amp;amp; msg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Windows.Forms.Application.Run(ApplicationContext context)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at MHS.Desktop.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Threading.ThreadHelper.ThreadStart_Context(Object state)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Threading.ThreadHelper.ThreadStart()&lt;br /&gt;&amp;nbsp; InnerException: &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Responsibility driven design or database structure?</title><link>http://forums.lhotka.net/forums/thread/55478.aspx</link><pubDate>Wed, 15 May 2013 17:42:22 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55478</guid><dc:creator>c_manboy</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/55478.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55478</wfw:commentRss><description>&lt;p style="margin:0in 0in 8pt;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;My use case scenario has defined these objects: Employee, User, Client.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;My database is structured similar to inheritance where the base table is named Entity (id, displayname) with a one to one relationship to Person(entityId, firstname, lastname) with a one to one to Employee/User/Client(entityId, &amp;hellip;) tables each containing their unique fields. An Entity can be one or all three of the use case objects.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 8pt;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;I&amp;rsquo;ve created working business objects using code generation which creates an Entity with child property of Person with child properties for Employee, User and Client.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Everything is fairly straightforward in that binding is done using dot notation like Entity.Person.Employee.HireDate.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;I&amp;rsquo;ve also created properties IsEmployee, IsClient, IsUser which checks for null on those properties.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 8pt;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;In Rocky&amp;rsquo;s book he talks about responsibility driven design which seems to infer that my business objects should be redesigned like Employee(entityId, displayname, firstname, lastname, hiredate).&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;But this would create challenges when updating the database.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;(I&amp;rsquo;m using ado for data access).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 8pt;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;I haven&amp;rsquo;t run into any real problems with my current business object design, but in my desire to understand best practices I am curious if I should redo my business objects, perhaps learning and implementing EF as a my data access?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Silverlight with bxf in factory model, that call the wcf services to access the database</title><link>http://forums.lhotka.net/forums/thread/55473.aspx</link><pubDate>Wed, 15 May 2013 12:55:39 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55473</guid><dc:creator>DeepaBangera</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/55473.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55473</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;We are facing issues to incorporate Silverlight with Bxf in the Factory Model. That has to call the wcf to fetch the data from database. In case if you have some specific videos where in you have incorporated this entire process please suggest.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>CSLA error on Fetch  data</title><link>http://forums.lhotka.net/forums/thread/55443.aspx</link><pubDate>Thu, 09 May 2013 05:57:34 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55443</guid><dc:creator>vivek</dc:creator><slash:comments>3</slash:comments><comments>http://forums.lhotka.net/forums/thread/55443.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55443</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;When i want to fetch record from CSLA it&amp;#39;s giving error , we are using CSLA version 1 with window 7,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;please help me.&lt;/p&gt;
&lt;p&gt;ExceptionSource: Csla: DataPortalException: DataPortal.Fetch failed ()&lt;br /&gt;ExceptionDetail:
 Csla.DataPortalException: DataPortal.Fetch failed () ---&amp;gt; 
System.NullReferenceException: Object reference not set to an instance 
of an object.&lt;br /&gt;   at Csla.Server.CallMethodException..ctor(String 
message, Exception ex) in 
C:\Tools\CSLA\csla20cs\Csla\DataPortal\Server\CallMethodException.cs:line
 44&lt;br /&gt;   at Csla.MethodCaller.CallMethod(Object obj, MethodInfo info, 
Object[] parameters) in 
C:\Tools\CSLA\csla20cs\Csla\DataPortal\MethodCaller.cs:line 118&lt;br /&gt;   at
 Csla.Server.SimpleDataPortal.Fetch(Type objectType, Object criteria, 
DataPortalContext context) in 
C:\Tools\CSLA\csla20cs\Csla\DataPortal\Server\SimpleDataPortal.cs:line 
109&lt;br /&gt;   --- End of inner exception stack trace ---&lt;br /&gt;   at 
Csla.DataPortal.Fetch(Type objectType, Object criteria) in 
C:\Tools\CSLA\csla20cs\Csla\DataPortal\Client\DataPortal.cs:line 192&lt;br /&gt;   at Csla.DataPortal.Fetch[T](Object criteria) in C:\Tools\CSLA\csla20cs\Csla\DataPortal\Client\DataPortal.cs:line 140&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Vivek&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>CSLA .NET Contrib version 4.5.30 available on Codeplex and NuGet</title><link>http://forums.lhotka.net/forums/thread/55464.aspx</link><pubDate>Tue, 14 May 2013 07:08:13 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55464</guid><dc:creator>Tiago Freitas Leal</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/55464.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55464</wfw:commentRss><description>&lt;h3 style="vertical-align:baseline;white-space:normal;text-transform:none;word-spacing:0px;color:#253340;outline-width:0px;font:600 1.4em &amp;#39;Segoe UI Semibold&amp;#39;, Segoe-Semibold, &amp;#39;Segoe UI&amp;#39;, Tahoma, Arial, Helvetica, sans-serif;outline-style:none;margin:20px 0px 15px;letter-spacing:1px;outline-color:invert;background-color:transparent;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;border:0px;"&gt;Upgrade to Csla 4.5.30&lt;/h3&gt;
&lt;p&gt;&lt;span style="white-space:normal;text-transform:none;word-spacing:0px;float:none;color:#253340;letter-spacing:normal;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;"&gt;This release depends on CSLA .NET 4.5.30 and is also available on&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.nuget.org/" style="vertical-align:baseline;white-space:normal;text-transform:none;word-spacing:0px;color:#2e8bcc;outline-width:0px;outline-style:none;text-decoration:none;margin:0px;letter-spacing:normal;outline-color:invert;background-color:transparent;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;border:0px;padding:0px;"&gt;NuGet&lt;/a&gt;&lt;br style="white-space:normal;text-transform:none;word-spacing:0px;color:#253340;letter-spacing:normal;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" /&gt;&lt;br style="white-space:normal;text-transform:none;word-spacing:0px;color:#253340;letter-spacing:normal;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" /&gt;&lt;/p&gt;
&lt;h3 style="vertical-align:baseline;white-space:normal;text-transform:none;word-spacing:0px;color:#253340;outline-width:0px;font:600 1.4em &amp;#39;Segoe UI Semibold&amp;#39;, Segoe-Semibold, &amp;#39;Segoe UI&amp;#39;, Tahoma, Arial, Helvetica, sans-serif;outline-style:none;margin:20px 0px 15px;letter-spacing:1px;outline-color:invert;background-color:transparent;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;border:0px;"&gt;Changes since CSLA .NET Contrib version 4.3.16&lt;/h3&gt;
&lt;ul style="list-style-type:none;vertical-align:baseline;white-space:normal;text-transform:none;word-spacing:0px;list-style-image:url(https://download-codeplex.sec.s-msft.com/Images/v20489/doublearrow.gif);color:#253340;outline-width:0px;padding-bottom:0px;padding-top:0px;outline-style:none;padding-left:35px;margin:15px 0px 20px;letter-spacing:normal;outline-color:invert;padding-right:0px;background-color:transparent;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;border:0px;"&gt;
&lt;li style="font-size:13px;vertical-align:middle;outline-width:0px;outline-style:none;margin:0.3em 0px;outline-color:invert;background-color:transparent;border:0px;padding:0px;"&gt;Refactor CslaContrib.Caliburn.Micro to Csla 4.5.30&lt;/li&gt;
&lt;li style="font-size:13px;vertical-align:middle;outline-width:0px;outline-style:none;margin:0.3em 0px;outline-color:invert;background-color:transparent;border:0px;padding:0px;"&gt;Refactor ObjectCaching to Csla 4.5.30&lt;/li&gt;
&lt;li style="font-size:13px;vertical-align:middle;outline-width:0px;outline-style:none;margin:0.3em 0px;outline-color:invert;background-color:transparent;border:0px;padding:0px;"&gt;Updated Caliburn.Micro to 1.5.1&lt;/li&gt;
&lt;li style="font-size:13px;vertical-align:middle;outline-width:0px;outline-style:none;margin:0.3em 0px;outline-color:invert;background-color:transparent;border:0px;padding:0px;"&gt;Removed Silverlight 4 projects&lt;/li&gt;
&lt;li style="font-size:13px;vertical-align:middle;outline-width:0px;outline-style:none;margin:0.3em 0px;outline-color:invert;background-color:transparent;border:0px;padding:0px;"&gt;Added NET 4.5 projects&lt;/li&gt;
&lt;li style="font-size:13px;vertical-align:middle;outline-width:0px;outline-style:none;margin:0.3em 0px;outline-color:invert;background-color:transparent;border:0px;padding:0px;"&gt;New project CslaContrib for Silverlight 5&lt;/li&gt;
&lt;li style="font-size:13px;vertical-align:middle;outline-width:0px;outline-style:none;margin:0.3em 0px;outline-color:invert;background-color:transparent;border:0px;padding:0px;"&gt;New projects CslaContrib.MEF for Silverlight 5 and WinRT&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a target="_blank" href="http://cslacontrib.codeplex.com/releases/view/104066" title="CSLA .NET Contrib 4.5.30"&gt;CSLA .NET Contrib 4.5.30 release notes and download&lt;/a&gt;&lt;br class="Apple-interchange-newline" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>difference between upload and download size for WCF client</title><link>http://forums.lhotka.net/forums/thread/55463.aspx</link><pubDate>Tue, 14 May 2013 00:46:00 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55463</guid><dc:creator>kosta_t</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/55463.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55463</wfw:commentRss><description>&lt;p&gt;Hi I am using CSLA 4.3.10.0 in a multi tier application which uses WCF in IIS 6. The WCFconfig uses the standard &amp;#39;wsHttpBinding&amp;#39; binding with no compression.&lt;/p&gt;
&lt;p&gt;Recently whilst testing a new app I started seeing strange exceptions whenever the remote client attempted to save data to the app server. I traced the issue down to the default 8MB limit that IIS placec on transfers.&lt;/p&gt;
&lt;p&gt;The remote client was actually parsing some csv and xml files to create a list of dirty objects, so it was fairly easy to creat a large set of dirty objects. I was able to work around the problem by&amp;nbsp; breaking up the upload into several smaller chunks, I noticed something that has raised my curiosity.&lt;/p&gt;
&lt;p&gt;I never saw issues when retreiving data from the app server, even though the retrieved data&amp;nbsp; contained exactly the same objects that weretoo large to save (upload). Using Fidler I saw that the size of the uploaded data (dirty objects) was around 10x the size of the retrieved (downloaded) data (I undid the chunking for the tests).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Is there a reason for this discrepancy in size?&lt;/p&gt;
&lt;p&gt;Is there any safe way to reduce the upload size?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;Kosta&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>CSLA .NET Contrib version 4.3.16 available on Codeplex and NuGet</title><link>http://forums.lhotka.net/forums/thread/55462.aspx</link><pubDate>Sun, 12 May 2013 14:07:02 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55462</guid><dc:creator>Tiago Freitas Leal</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/55462.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55462</wfw:commentRss><description>&lt;h3 style="vertical-align:baseline;white-space:normal;text-transform:none;word-spacing:0px;color:#253340;outline-width:0px;font:600 1.4em &amp;#39;Segoe UI Semibold&amp;#39;, Segoe-Semibold, &amp;#39;Segoe UI&amp;#39;, Tahoma, Arial, Helvetica, sans-serif;outline-style:none;margin:20px 0px 15px;letter-spacing:1px;outline-color:invert;background-color:transparent;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;border:0px;"&gt;Maintenance release (update to Csla 4.3.14)&lt;/h3&gt;
&lt;p&gt;&lt;span style="white-space:normal;text-transform:none;word-spacing:0px;float:none;color:#253340;letter-spacing:normal;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;"&gt;This release depends on CSLA .NET 4.3.14 and is also available on&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.nuget.org/" style="vertical-align:baseline;white-space:normal;text-transform:none;word-spacing:0px;color:#2e8bcc;outline-width:0px;outline-style:none;text-decoration:none;margin:0px;letter-spacing:normal;outline-color:invert;background-color:transparent;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;border:0px;padding:0px;"&gt;NuGet&lt;/a&gt;&lt;br style="white-space:normal;text-transform:none;word-spacing:0px;color:#253340;letter-spacing:normal;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" /&gt;&lt;br style="white-space:normal;text-transform:none;word-spacing:0px;color:#253340;letter-spacing:normal;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" /&gt;&lt;/p&gt;
&lt;h3 style="vertical-align:baseline;white-space:normal;text-transform:none;word-spacing:0px;color:#253340;outline-width:0px;font:600 1.4em &amp;#39;Segoe UI Semibold&amp;#39;, Segoe-Semibold, &amp;#39;Segoe UI&amp;#39;, Tahoma, Arial, Helvetica, sans-serif;outline-style:none;margin:20px 0px 15px;letter-spacing:1px;outline-color:invert;background-color:transparent;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;border:0px;"&gt;Changes since CSLA .NET Contrib 4.3.13&lt;/h3&gt;
&lt;ul style="list-style-type:none;vertical-align:baseline;white-space:normal;text-transform:none;word-spacing:0px;list-style-image:url(https://download-codeplex.sec.s-msft.com/Images/v20489/doublearrow.gif);color:#253340;outline-width:0px;padding-bottom:0px;padding-top:0px;outline-style:none;padding-left:35px;margin:15px 0px 20px;letter-spacing:normal;outline-color:invert;padding-right:0px;background-color:transparent;text-indent:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;border:0px;"&gt;
&lt;li style="font-size:13px;vertical-align:middle;outline-width:0px;outline-style:none;margin:0.3em 0px;outline-color:invert;background-color:transparent;border:0px;padding:0px;"&gt;Updated MEF call to only use SatisfyImportsOnce() to compose object&lt;/li&gt;
&lt;li style="font-size:13px;vertical-align:middle;outline-width:0px;outline-style:none;margin:0.3em 0px;outline-color:invert;background-color:transparent;border:0px;padding:0px;"&gt;Upgraded rules and added NoDuplicates rule&lt;/li&gt;
&lt;li style="font-size:13px;vertical-align:middle;outline-width:0px;outline-style:none;margin:0.3em 0px;outline-color:invert;background-color:transparent;border:0px;padding:0px;"&gt;NuGet packages dependency improvements&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a target="_blank" href="http://cslacontrib.codeplex.com/releases/view/106519" title="CSLA .NET Contrib 4.3.16"&gt;CSLA .NET Contrib 4.3.16 release notes and download&lt;/a&gt;&lt;br class="Apple-interchange-newline" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>DataPortal_Create</title><link>http://forums.lhotka.net/forums/thread/55445.aspx</link><pubDate>Thu, 09 May 2013 20:04:28 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55445</guid><dc:creator>tom</dc:creator><slash:comments>4</slash:comments><comments>http://forums.lhotka.net/forums/thread/55445.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55445</wfw:commentRss><description>&lt;p&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;"&gt;I am trying to code a unit test for one of our business objects but I had a question about the way I am calling the dataprotal create method.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Here is a code snippets.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Should I not use a criteria class?&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;It passes in another business object that is inherited form the csla framework.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Serializable()]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private class Criteria&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; public string RecordNo = string.Empty;&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; public Person LoggedInPerson;&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; public Criteria(string recordNo, Person LoggedInPerson)&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; this.RecordNo = recordNo;&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; LoggedInPerson = LoggedInPerson;&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;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [RunLocal()]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void DataPortal_Create(object criteria)&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; Criteria crit = (Criteria)criteria;&lt;/p&gt;
&lt;p&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValidationRules.CheckRules();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Per type rule example</title><link>http://forums.lhotka.net/forums/thread/55458.aspx</link><pubDate>Sat, 11 May 2013 15:25:22 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55458</guid><dc:creator>correodemarques</dc:creator><slash:comments>2</slash:comments><comments>http://forums.lhotka.net/forums/thread/55458.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55458</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I have a business object for which I need to make some validations that involve several properties of the object and more data that I will need to read from the database. I&amp;#39;m using this object in an MVC application and I though that will be better to run this validation once, after all the related properties are set. In other objects with regular rules I usually suppress the rule checks, set all the properties and then call&amp;nbsp;CheckRules before saving.&lt;/p&gt;
&lt;p&gt;Should I use a Per-Type rule? I was looking the ebook &amp;quot;Creating business objects&amp;quot; and couldn&amp;#39;t find any example or to much detail about per-type rules.&lt;/p&gt;
&lt;p&gt;I would like somebody to point me in the right direction.&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>BeginSave bug in 4.5+</title><link>http://forums.lhotka.net/forums/thread/55451.aspx</link><pubDate>Fri, 10 May 2013 07:49:57 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55451</guid><dc:creator>Killian35</dc:creator><slash:comments>2</slash:comments><comments>http://forums.lhotka.net/forums/thread/55451.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55451</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I have a Silverlight CSLA project in VS2010 and it had been working with 4.3+ just fine. Then I upgraded to 4.5.10 when that was released using Nuget. Unknown at the time, the BeginSave method would fail to call the Saved event if an exception was thrown in the DataPortal_Update method. I didn&amp;#39;t test any other scenarios. It used to be called in the 4.3.x version. The Csla.Xaml.ViewModel.BeginSave depends on the Saved event, so I suspect the new behavior is not expected.&lt;/p&gt;
&lt;p&gt;Using the following code, the same differing results were generated when referencing the specified versions.&lt;/p&gt;
&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;private&lt;/span&gt;&amp;nbsp;&lt;span&gt;static&lt;/span&gt;&amp;nbsp;&lt;span&gt;void&lt;/span&gt;&amp;nbsp;Main()
&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;&lt;span&gt;var&lt;/span&gt;&amp;nbsp;obj&amp;nbsp;=&amp;nbsp;&lt;span&gt;MyBusiness&lt;/span&gt;.Get(2);
&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.Id&amp;nbsp;=&amp;nbsp;3;
&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.Saved&amp;nbsp;+=&amp;nbsp;(o,&amp;nbsp;e)&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;span&gt;Debug&lt;/span&gt;.WriteLine(&lt;span&gt;&amp;quot;Saved&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;obj.BeginSave();
 
&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&gt;Console&lt;/span&gt;.ReadKey();
&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&gt;Serializable&lt;/span&gt;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;public&lt;/span&gt;&amp;nbsp;&lt;span&gt;class&lt;/span&gt;&amp;nbsp;&lt;span&gt;MyBusiness&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span&gt;BusinessBase&lt;/span&gt;&amp;lt;&lt;span&gt;MyBusiness&lt;/span&gt;&amp;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;&lt;span&gt;public&lt;/span&gt;&amp;nbsp;&lt;span&gt;static&lt;/span&gt;&amp;nbsp;&lt;span&gt;readonly&lt;/span&gt;&amp;nbsp;&lt;span&gt;PropertyInfo&lt;/span&gt;&amp;lt;&lt;span&gt;int&lt;/span&gt;&amp;gt;&amp;nbsp;IdProperty&amp;nbsp;=&amp;nbsp;RegisterProperty&amp;lt;&lt;span&gt;int&lt;/span&gt;&amp;gt;(c&amp;nbsp;=&amp;gt;&amp;nbsp;c.Id);
&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&gt;public&lt;/span&gt;&amp;nbsp;&lt;span&gt;int&lt;/span&gt;&amp;nbsp;Id
&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;&lt;span&gt;get&lt;/span&gt;&amp;nbsp;{&amp;nbsp;&lt;span&gt;return&lt;/span&gt;&amp;nbsp;GetProperty(IdProperty);&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&gt;set&lt;/span&gt;&amp;nbsp;{&amp;nbsp;SetProperty(IdProperty,&amp;nbsp;&lt;span&gt;value&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;&lt;span&gt;public&lt;/span&gt;&amp;nbsp;&lt;span&gt;static&lt;/span&gt;&amp;nbsp;&lt;span&gt;MyBusiness&lt;/span&gt;&amp;nbsp;Get(&lt;span&gt;int&lt;/span&gt;&amp;nbsp;id)
&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;&lt;span&gt;return&lt;/span&gt;&amp;nbsp;&lt;span&gt;DataPortal&lt;/span&gt;.Fetch&amp;lt;&lt;span&gt;MyBusiness&lt;/span&gt;&amp;gt;(id);
&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;&lt;span&gt;private&lt;/span&gt;&amp;nbsp;&lt;span&gt;void&lt;/span&gt;&amp;nbsp;DataPortal_Fetch(&lt;span&gt;int&lt;/span&gt;&amp;nbsp;id)
&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;&lt;span&gt;using&lt;/span&gt;&amp;nbsp;(BypassPropertyChecks)
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Id&amp;nbsp;=&amp;nbsp;id;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span&gt;override&lt;/span&gt;&amp;nbsp;&lt;span&gt;void&lt;/span&gt;&amp;nbsp;DataPortal_Update()
&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;&lt;span&gt;throw&lt;/span&gt;&amp;nbsp;&lt;span&gt;new&lt;/span&gt;&amp;nbsp;&lt;span&gt;Exception&lt;/span&gt;(&lt;span&gt;&amp;quot;Failure&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;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/pre&gt;
&lt;pre&gt;Is there a bug in 4.5+ or is the behavior because I&amp;#39;m using version 4.5.10 in VS2010?&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>DataPortal_Create method</title><link>http://forums.lhotka.net/forums/thread/55454.aspx</link><pubDate>Fri, 10 May 2013 17:08:59 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55454</guid><dc:creator>tom</dc:creator><slash:comments>1</slash:comments><comments>http://forums.lhotka.net/forums/thread/55454.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55454</wfw:commentRss><description>&lt;p&gt;I am using the CSLA 3.x framework.&lt;/p&gt;
&lt;p&gt;This is my Unit Test method for the DataProtal Create method for one of our business objects.&amp;nbsp; Should I add anymore to it? &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ///A test for DataPortal_Create&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ///&amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [TestMethod()]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [DeploymentItem(&amp;quot;Cit.Library.dll&amp;quot;)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void DataPortal_CreateTest()&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; Person person = Person.GetPerson(false, 1);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cit_Accessor target = new Cit_Accessor();&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; object criteria = new Cit_Accessor.Criteria(1, Person);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; target.DataPortal_Create(criteria);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Assert.Inconclusive(&amp;quot;A method that does not return a value cannot be verified.&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Specified argument was out of the range of valid values. </title><link>http://forums.lhotka.net/forums/thread/55423.aspx</link><pubDate>Sat, 04 May 2013 08:48:37 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55423</guid><dc:creator>griff</dc:creator><slash:comments>2</slash:comments><comments>http://forums.lhotka.net/forums/thread/55423.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55423</wfw:commentRss><description>&lt;p&gt;Csla 4.3.10.0 &amp;nbsp;Silverlight app&lt;/p&gt;
&lt;p&gt;I am getting the following error.&lt;/p&gt;
&lt;p&gt;&amp;quot;Specified argument was out of the range of valid values. Parameter name: Unhandled CSLA Known type was found&amp;quot;&lt;/p&gt;
&lt;p&gt;This occurs at this point&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;public static void GetAuthorNVL(EventHandler&amp;lt;DataPortalResult&amp;lt;AuthorNVL&amp;gt;&amp;gt; callback)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (_list == null)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;strong&gt;DataPortal.BeginFetch&amp;lt;AuthorNVL&amp;gt;((o, e) =&amp;gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&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;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _list = e.Object;&lt;/p&gt;
&lt;p&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; callback(o, e);&lt;/p&gt;
&lt;p&gt;&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;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; callback(null, new DataPortalResult&amp;lt;AuthorNVL&amp;gt;(_list, null, null));&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;on the Beginfetch - it does not get to the dataportal. &amp;nbsp;The error bubbles up to my ViewModel.&lt;/p&gt;
&lt;p&gt;It occurs for all objects - background is I have created a new SL &amp;nbsp;project and added in existing &amp;nbsp;libraries from another working project (so I know the libraries/code works).. &amp;nbsp;I&amp;#39;m sure it is something to do with the way the project has been set up (rather than specific code). &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Can anyone help please.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Version 4.3.14 available via nuget</title><link>http://forums.lhotka.net/forums/thread/55448.aspx</link><pubDate>Fri, 10 May 2013 04:39:51 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55448</guid><dc:creator>RockfordLhotka</dc:creator><slash:comments>1</slash:comments><comments>http://forums.lhotka.net/forums/thread/55448.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55448</wfw:commentRss><description>&lt;p&gt;&lt;span class="userContent"&gt;CSLA 4 version 4.3.14 is now available via nuget.&lt;br /&gt;&lt;br /&gt;This version adds support for DateTimeOffset to SafeDataReader, addresses a MobileFormatter deserialization bug, and fixes an issue with warnings in CslaActionExtender.&lt;br /&gt;&lt;br /&gt;As a result it is a relatively minor bug fix update from 4.3.13.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="userContent"&gt;Change list:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="userContent"&gt;&lt;a href="https://github.com/MarimerLLC/csla/issues?milestone=5&amp;amp;state=closed"&gt;https://github.com/MarimerLLC/csla/issues?milestone=5&amp;amp;state=closed&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Version 4.5.30 now available</title><link>http://forums.lhotka.net/forums/thread/55449.aspx</link><pubDate>Fri, 10 May 2013 04:45:03 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55449</guid><dc:creator>RockfordLhotka</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/55449.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55449</wfw:commentRss><description>&lt;p&gt;CSLA 4 version 4.5.30 is now available via nuget and the &lt;a href="http://www.cslanet.com/Download.html"&gt;download page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This version includes a number of bug fixes and some new features and is a recommended upgrade from 4.5.20.&lt;/p&gt;
&lt;p&gt;Perhaps the biggest new feature is the ability to create classes that are invoked by the server-side data portal to simplify the use of IoC containers and DI as the data portal creates and interacts with root objects on the server. See the CustomActivator sample to see how this works.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a list of changes:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/MarimerLLC/csla/issues?milestone=4&amp;amp;state=closed"&gt;https://github.com/MarimerLLC/csla/issues?milestone=4&amp;amp;state=closed&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Per-property authorization rule that depends on async, lazy-loaded property</title><link>http://forums.lhotka.net/forums/thread/55437.aspx</link><pubDate>Wed, 08 May 2013 03:19:29 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55437</guid><dc:creator>Chattererman</dc:creator><slash:comments>4</slash:comments><comments>http://forums.lhotka.net/forums/thread/55437.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55437</wfw:commentRss><description>&lt;p&gt;What is the best approach for implementing a per-property authorization rule that depends on the result of an async, lazy-loaded property?&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s my suggestion:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[Serializable]&lt;/p&gt;
&lt;p&gt;public sealed class Parent : BusinessBase&amp;lt;Parent&amp;gt;&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;public static readonly PropertyInfo&amp;lt;string&amp;gt; NameProperty = RegisterProperty&amp;lt;string&amp;gt;(c =&amp;gt; c.Name);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;public string Name&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;{&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;get { return GetProperty(NameProperty); }&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;set { SetProperty(NameProperty, value); }&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;}&lt;/p&gt;
&lt;p&gt;&lt;span&gt;	&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;public static readonly PropertyInfo&amp;lt;ChildrenList&amp;gt; ChildrenProperty = RegisterProperty&amp;lt;ChildrenList&amp;gt;(c =&amp;gt; c.Children, RelationshipTypes.Child | RelationshipTypes.LazyLoad);&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;public ChildrenList Children&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;{&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;get&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;{&lt;/p&gt;
&lt;p style="padding-left:90px;"&gt;&lt;span&gt;			&lt;/span&gt;if (!FieldManager.FieldExists(ChildrenProperty))&lt;/p&gt;
&lt;p style="padding-left:90px;"&gt;&lt;span&gt;			&lt;/span&gt;{&lt;/p&gt;
&lt;p style="padding-left:120px;"&gt;&lt;span&gt;				&lt;/span&gt;if (IsNew)&lt;/p&gt;
&lt;p style="padding-left:150px;"&gt;&lt;span&gt;					&lt;/span&gt;LoadProperty(ChildrenProperty, ChildrenList.NewList());&lt;/p&gt;
&lt;p style="padding-left:120px;"&gt;&lt;span&gt;				&lt;/span&gt;else&lt;/p&gt;
&lt;p style="padding-left:120px;"&gt;&lt;span&gt;				&lt;/span&gt;{&lt;/p&gt;
&lt;p style="padding-left:150px;"&gt;&lt;span&gt;					&lt;/span&gt;ChildrenList.GetListAsync(Id, (o, e) =&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:150px;"&gt;&lt;span&gt;					&lt;/span&gt;{&lt;/p&gt;
&lt;p style="padding-left:180px;"&gt;&lt;span&gt;						&lt;/span&gt;if (e.Error != null)&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;&lt;span&gt;							&lt;/span&gt;throw e.Error;&lt;/p&gt;
&lt;p style="padding-left:180px;"&gt;&lt;span&gt;						&lt;/span&gt;LoadProperty(ChildrenProperty, e.Object);&lt;/p&gt;
&lt;p style="padding-left:180px;"&gt;&lt;span&gt;						&lt;/span&gt;OnPropertyChanged(ChildrenProperty);&lt;/p&gt;
&lt;p style="padding-left:150px;"&gt;&lt;span&gt;					&lt;/span&gt;});&lt;/p&gt;
&lt;p style="padding-left:150px;"&gt;&lt;span&gt;					&lt;/span&gt;return null;&lt;/p&gt;
&lt;p style="padding-left:120px;"&gt;&lt;span&gt;				&lt;/span&gt;}&lt;/p&gt;
&lt;p style="padding-left:90px;"&gt;&lt;span&gt;			&lt;/span&gt;}&lt;/p&gt;
&lt;p style="padding-left:90px;"&gt;&lt;span&gt;			&lt;/span&gt;return GetProperty(ChildrenProperty);&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;}&lt;/p&gt;
&lt;p&gt;&lt;span&gt;	&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;protected override void AddBusinessRules()&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;{&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;base.AddBusinessRules();&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;BusinessRules.AddRule(new Required(NameProperty));&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;BusinessRules.AddRule(new MaxLength(NameProperty, 255));&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;BusinessRules.AddRule(new CanWriteParentNameRule(AuthorizationActions.WriteProperty, NameProperty));&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;BusinessRules.AddRule(new Dependency(ChildrenProperty, NameProperty));&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;public class CanWriteParentNameRule : AuthorizationRule&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;public CanWriteParentNameRule(AuthorizationActions action, IMemberInfo element)&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;: base(action, element) { }&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;protected override void Execute(AuthorizationContext context)&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;{&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;var parent = context.Target as Parent;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;if (parent != null &amp;amp;&amp;amp; parent.Children != null)&lt;/p&gt;
&lt;p style="padding-left:90px;"&gt;&lt;span&gt;			&lt;/span&gt;context.HasPermission = (parent.Children.Count == 0);&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;span&gt;		&lt;/span&gt;else&lt;/p&gt;
&lt;p style="padding-left:90px;"&gt;&lt;span&gt;			&lt;/span&gt;context.HasPermission = false;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span&gt;	&lt;/span&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;The binding of the name property causes the authorization rule to be evaluated which in turn triggers the async retrieval by accessing the Children property. The property returns null and we default HasPermission to false until we have the children.&lt;/p&gt;
&lt;p&gt;When the Children property eventually returns, it raises OnPropertyChanged which in turn (via the Dependency business rule) causes the name property rules to be re-evaluated including the authorization rule. This time the authorization rule gets the children and sets HasPermission accordingly.&lt;/p&gt;
&lt;p&gt;What do you think? Does this seem plausible?&lt;/p&gt;
&lt;p&gt;Thanks in advance,&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Joe&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>CSLA launched through COM</title><link>http://forums.lhotka.net/forums/thread/55425.aspx</link><pubDate>Sat, 04 May 2013 12:29:48 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55425</guid><dc:creator>darchele@charter.net</dc:creator><slash:comments>3</slash:comments><comments>http://forums.lhotka.net/forums/thread/55425.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55425</wfw:commentRss><description>&lt;p&gt;We have a VB6 application that launches a .NET CSLA DLL through COM and works fine. &amp;nbsp;However, when the underlying VB6 DLL is launched through COM and then the CSLA DLL is launched through it, it does not know where to find the config file and thus doesn&amp;#39;t get it&amp;#39;s mappings to the data portal. &amp;nbsp;Where should the config file live?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When it works, the config file is named after the VB6 EXE appname.exe.config. &amp;nbsp;What should it be named and where should it live when launched through COM? &amp;nbsp;I&amp;#39;ve tried naming it after the DLL (dllname.dll.config), but that doesn&amp;#39;t work.&lt;/p&gt;
&lt;p&gt;Any ideas would be greatly appreciated.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Darchele&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Index was outside the bounds of array - Problem only After Build deployed, not in local env </title><link>http://forums.lhotka.net/forums/thread/55188.aspx</link><pubDate>Tue, 02 Apr 2013 11:17:21 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55188</guid><dc:creator>Arjun</dc:creator><slash:comments>14</slash:comments><comments>http://forums.lhotka.net/forums/thread/55188.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55188</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Our project was built based on concept &amp;quot;Encapsulate Invocation&amp;quot;, which has UI, Business Layer and Data Access Layer. &lt;/p&gt;
&lt;p&gt;And, in one of the forms&amp;nbsp;a method call ends up showing the error &amp;quot;Index was outside the bounds of Array&amp;quot;. I believe this happens when Business layer tries to commuicate with Data Access Layer. This occurs only when the build is deployed, but could not be reproduced in local environment. I got no clue, as I could not even debug. &lt;/p&gt;
&lt;p&gt;Could you please suggest what could be missing ? &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Arjun&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>AddOutValue/LoadProperty not functioning on Guid data type in Business Rule</title><link>http://forums.lhotka.net/forums/thread/55429.aspx</link><pubDate>Mon, 06 May 2013 02:37:19 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:55429</guid><dc:creator>NightOwl888</dc:creator><slash:comments>5</slash:comments><comments>http://forums.lhotka.net/forums/thread/55429.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=55429</wfw:commentRss><description>&lt;p&gt;I have been scratching my head for some time trying to figure out why my business rule wasn&amp;#39;t setting a Guid property on my business object, since I had done this sort of thing before. However, it occurred to me that the other properties I was setting were strings and primitive values.&lt;/p&gt;
&lt;p&gt;So, I copied and pasted my UserId property (a guid) and made it into a string. Then I wired up the new property to my business rule, and it works. The thing is, I need it to be a Guid.&lt;/p&gt;
&lt;p&gt;I tried both the AddOutValue and LoadProperty techniques to set the output of my rule, but it doesn&amp;#39;t function with Guid in either case. So is there something special I have to do to make this work, or did I find a bug?&lt;/p&gt;
&lt;p&gt;Here are my properties (Identical in every way except datatype):&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static readonly PropertyInfo&amp;lt;Guid&amp;gt; UserIdProperty = RegisterProperty&amp;lt;Guid&amp;gt;(c =&amp;gt; c.UserId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Guid UserId&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; get { return GetProperty(UserIdProperty); }&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; private set { LoadProperty(UserIdProperty, value); }&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; public static readonly PropertyInfo&amp;lt;string&amp;gt; UserIdStringProperty = RegisterProperty&amp;lt;string&amp;gt;(c =&amp;gt; c.UserIdString);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string UserIdString&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; get { return GetProperty(UserIdStringProperty); }&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; private set { LoadProperty(UserIdStringProperty, value); }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And this is my business rule:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class UserHasConfirmedAccountRule&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : PropertyRule&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; public UserHasConfirmedAccountRule(&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; Type modelType,&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; ILocalizedStringProvider localizedStringProvider,&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; IPropertyInfo emailAddressOrPublicNameProperty,&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; IPropertyInfo tenantIdProperty,&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; IPropertyInfo userIdProperty,&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; IUserAccountRepository userAccountRepository&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; : base(emailAddressOrPublicNameProperty, modelType, localizedStringProvider)&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; if (emailAddressOrPublicNameProperty == null)&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; throw new ArgumentNullException(&amp;quot;emailAddressOrPublicNameProperty&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; if (tenantIdProperty == null)&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; throw new ArgumentNullException(&amp;quot;tenantIdProperty&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; if (userIdProperty == null)&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; throw new ArgumentNullException(&amp;quot;userIdProperty&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; if (userAccountRepository == null)&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; throw new ArgumentNullException(&amp;quot;userAccountRepository&amp;quot;);&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; this.emailAddressOrPublicNameProperty = emailAddressOrPublicNameProperty;&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; this.tenantIdProperty = tenantIdProperty;&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; this.userIdProperty = userIdProperty;&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; this.userAccountRepository = userAccountRepository;&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; InputProperties = new List&amp;lt;IPropertyInfo&amp;gt; { emailAddressOrPublicNameProperty, tenantIdProperty, userIdProperty };&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; AffectedProperties.Add(userIdProperty);&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; private readonly IPropertyInfo emailAddressOrPublicNameProperty;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private readonly IPropertyInfo tenantIdProperty;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private readonly IPropertyInfo userIdProperty;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private readonly IUserAccountRepository userAccountRepository;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void Execute(CslaLibrary.Rules.RuleContext context)&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; var emailAddressOrPublicName = (string)context.InputPropertyValues[emailAddressOrPublicNameProperty];&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 tenantId = (int)context.InputPropertyValues[tenantIdProperty];&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; bool exists = false;&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; Guid userId = Guid.Empty;&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; if (!string.IsNullOrEmpty(emailAddressOrPublicName) &amp;amp;&amp;amp; tenantId &amp;gt; 0)&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; userId = userAccountRepository.HasConfirmedAccount(tenantId, emailAddressOrPublicName);&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 (userId != null &amp;amp;&amp;amp; !userId.Equals(Guid.Empty))&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; exists = true;&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; context.AddOutValue(userIdProperty, userId.ToString());&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //var target = (ResetPassword)context.Target;&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; //LoadProperty(target, userIdProperty, userId.ToString());&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; }&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; if (!exists)&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; context.AddErrorResult(GetMessage());&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Note that I am using a subclass of PropertyRule, but I changed it to the CSLA BusinessRule type and still got the same result. Also note the code above is the version that works - I wouldn&amp;#39;t use .ToString() when trying to set a guid.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>