<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>ActiveSharp Forum Rss Feed</title><link>http://www.codeplex.com/ActiveSharp/Thread/List.aspx</link><description>ActiveSharp Forum Rss Description</description><item><title>New Post: Feedback Please...</title><link>http://activesharp.codeplex.com/Thread/View.aspx?ThreadId=22315</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I can't think of a way to do that, I'm sorry.&lt;/p&gt;
&lt;p&gt;Which kinds of changes do you need to track - simply that the list contents have changed, or do you need details of which things have been added and removed?&amp;nbsp;&amp;nbsp;You may be able to wrap the lists/dictionaries which some kind of helper object that helps to detect additions and removals.&lt;/p&gt;
&lt;p&gt;One other idea, if you are working with objects that maintain bi-directional relationships (e.g.&amp;nbsp;if you do someCustomer.Orders.Add(myOrder) then myOrder.Customer is automatically set to someCustomer) then you really only need to detect the change at one end [and be able to figure out which list it relates to at the other end].&amp;nbsp; I played round with that kind of thing in Close2Poco, which you can see listed as a project related to ActiveSharp.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;John&lt;/p&gt;&lt;/div&gt;</description><author>johnrusk</author><pubDate>Mon, 22 Jun 2009 06:00:35 GMT</pubDate><guid isPermaLink="false">New Post: Feedback Please... 20090622060035A</guid></item><item><title>New Post: Feedback Please...</title><link>http://activesharp.codeplex.com/Thread/View.aspx?ThreadId=22315</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi John - this seems very useful. One requirement in my project is to be able to track changes to collections - generic Lists and possibly Dictionaries.&lt;/p&gt;
&lt;p&gt;Do you have any thoughts on whether ActiveSharp could be extended for this purpose.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>aspiring</author><pubDate>Thu, 18 Jun 2009 17:26:52 GMT</pubDate><guid isPermaLink="false">New Post: Feedback Please... 20090618052652P</guid></item><item><title>New Post: Abstract class support???</title><link>http://activesharp.codeplex.com/Thread/View.aspx?ThreadId=58275</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Glad you like it.&lt;/p&gt;
&lt;p&gt;Have &amp;nbsp;a look at the class called AbstractTestClass in the file PropertyMapTests (here &lt;a href="http://activesharp.codeplex.com/SourceControl/changeset/view/17470#114721"&gt;http://activesharp.codeplex.com/SourceControl/changeset/view/17470#114721&lt;/a&gt; ). &amp;nbsp;I think it demonstrates the behaviour you want. &amp;nbsp;Does it?&lt;/p&gt;
&lt;p&gt;John&lt;/p&gt;&lt;/div&gt;</description><author>johnrusk</author><pubDate>Thu, 04 Jun 2009 08:00:01 GMT</pubDate><guid isPermaLink="false">New Post: Abstract class support??? 20090604080001A</guid></item><item><title>New Post: Abstract class support???</title><link>http://activesharp.codeplex.com/Thread/View.aspx?ThreadId=58275</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi i was wondering if you had abstract class support with active sharp??&lt;/p&gt;
&lt;p&gt;If i have a property in an abstract class that use the setvalue will it work??&lt;/p&gt;
&lt;p&gt;Really like activesharp by the way.&lt;/p&gt;&lt;/div&gt;</description><author>AlunaSoftwares</author><pubDate>Wed, 03 Jun 2009 01:20:19 GMT</pubDate><guid isPermaLink="false">New Post: Abstract class support??? 20090603012019A</guid></item><item><title>New Post: Feedback Please...</title><link>http://activesharp.codeplex.com/Thread/View.aspx?ThreadId=22315</link><description>&lt;div style="line-height: normal;"&gt;Thanks&lt;br&gt;
&lt;br&gt;
- John
&lt;/div&gt;</description><author>johnrusk</author><pubDate>Fri, 13 Mar 2009 06:58:42 GMT</pubDate><guid isPermaLink="false">New Post: Feedback Please... 20090313065842A</guid></item><item><title>New Post: Feedback Please...</title><link>http://activesharp.codeplex.com/Thread/View.aspx?ThreadId=22315</link><description>&lt;div style="line-height: normal;"&gt;John&lt;br&gt;
&lt;br&gt;
Just thought that I would let you know that I am a fan of the ActiveSharp library and have been using it a wpf project I am involved with.&lt;br&gt;
&lt;br&gt;
Steve
&lt;/div&gt;</description><author>ssolomon</author><pubDate>Thu, 12 Mar 2009 14:25:20 GMT</pubDate><guid isPermaLink="false">New Post: Feedback Please... 20090312022520P</guid></item><item><title>New Post: What if I don't have a backing field?</title><link>http://www.codeplex.com/ActiveSharp/Thread/View.aspx?ThreadId=36863</link><description>&lt;div style="line-height: normal;"&gt;A user wrote in to ask me how to use ActiveSharp in cases where the property is not backed by a field.&amp;nbsp; E.g. it delegates to another class.&lt;br&gt;
&lt;br&gt;
I put together &lt;a href="http://www.codeplex.com/ActiveSharp/SourceControl/FileView.aspx?itemId=201779&amp;changeSetId=12641"&gt;this sample&lt;/a&gt;, to demonstrate a solution.&lt;br&gt;
&lt;br&gt;
Key points to note:&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
    &lt;li&gt;It solves the problem by adding little 1-byte backing fields (I'm calling them &amp;quot;Tags&amp;quot;) into the class.&amp;nbsp; They are never used for anything other than ActiveSharp's need to have a backing field to identify the property.&amp;nbsp; The actual get and set logic still delegates off to the other class.&amp;nbsp; This works because all ActiveSharp requires is that the property setter must use a field by ref (and that no other property may use the same field by ref).&amp;nbsp; The field doesn't have to store the actual value.&amp;nbsp; &lt;/li&gt;
    &lt;li&gt;The tags are &amp;quot;&lt;a href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=355187"&gt;empty&lt;/a&gt;&amp;quot; structs.&amp;nbsp; This is&amp;nbsp;one of the &lt;a href="http://bytes.com/forum/thread497013.html"&gt;few known uses &lt;/a&gt;for&amp;nbsp;&amp;quot;empty&amp;quot; structs.&lt;/li&gt;
    &lt;li&gt;It will always send the notification, even if the property has simply been set to its old (existing) value.&amp;nbsp; Contrast that with &amp;quot;normal&amp;quot; use of ActiveSharp, which&amp;nbsp;would not send the notification if the property has been set to its existing value.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>johnrusk</author><pubDate>Thu, 02 Oct 2008 07:52:29 GMT</pubDate><guid isPermaLink="false">New Post: What if I don't have a backing field? 20081002075229A</guid></item><item><title>New Post: Feedback Please...</title><link>http://www.codeplex.com/ActiveSharp/Thread/View.aspx?ThreadId=22315</link><description>&lt;div style="line-height: normal;"&gt;Hi again Steve,&lt;br&gt;
&lt;br&gt;
Glad to hear its working well for you.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
I agree about the issue with overridden members.&amp;nbsp; I've logged it here in the project issue tracker too&amp;nbsp;&lt;a href="http://www.codeplex.com/ActiveSharp/WorkItem/View.aspx?WorkItemId=1188"&gt;http://www.codeplex.com/ActiveSharp/WorkItem/View.aspx?WorkItemId=1188&lt;/a&gt;&amp;nbsp; I'm leaning towards using FieldInfos rather than names, and writing an equality comparer for the dictionaries which store them.&amp;nbsp; (Ditto for dictionaries where properties are keys).&amp;nbsp; Something like this:&amp;nbsp;&lt;a href="http://blogs.msdn.com/kingces/"&gt;http://blogs.msdn.com/kingces/&lt;/a&gt;&amp;nbsp;&amp;nbsp; I don't have an ETA on coding it just yet tho, sorry.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
Thanks also for your comments about the new project.&amp;nbsp; The challenge for me is in finding the time to take it from proof-of-concept to production status.&amp;nbsp; I'm partcularly interested in writing a small set of tools which would allow people to round-trip between existing LINQ generated entities and the Close2Poco style ones.&amp;nbsp; E.g. point the tool at an assembly containing LINQ entities, and it spits out the source code for a functionally-equivalent set of Close2Poco entities; point it at an assembly containing Close2Poco entities and it spits our the DMBL for a standard mapping, from which MS's generator can then re-generate code that should match your original generated source.&amp;nbsp; Nice for testing, and a nice way for people to get their feet wet with the product (just convert your existing entities and try it out.&amp;nbsp; If you don't like it; don't check the change into your source repository)&lt;br&gt;
&lt;br&gt;
John&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;</description><author>johnrusk</author><pubDate>Sun, 27 Jul 2008 00:16:46 GMT</pubDate><guid isPermaLink="false">New Post: Feedback Please... 20080727121646A</guid></item><item><title>New Post: Feedback Please...</title><link>http://www.codeplex.com/ActiveSharp/Thread/View.aspx?ThreadId=22315</link><description>&lt;div style="line-height: normal;"&gt;Hi John, thanks for the update, that sounds like an interesting use for activesharp.&amp;nbsp; I am still using the library in my pet project with great results, unfortunately haven't had any time to work on it recently but hopefully I can get back in the swing of things soon.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
Really the only issue I have run into with ActiveSharp is some base class overriding members as is mentioned in the code comments.&amp;nbsp; I toyed with the idea of adding that functionality to the library but decided that it was probably better to just refactor my code as after looking at it again I noticed it was kind of a code smell.&amp;nbsp; I still might make a patch to add that into the library some day if you don't get around to it first, seems like it could be useful in some cases.&lt;br&gt;
&lt;br&gt;
I will definitely have to check out your new project, I do a lot of codegen mapping between different entities or entities and DTO, never thought of using activesharp for that but it does sound like a great idea now that you mention it.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;</description><author>sefstrat</author><pubDate>Fri, 25 Jul 2008 18:15:11 GMT</pubDate><guid isPermaLink="false">New Post: Feedback Please... 20080725061511P</guid></item><item><title>New Post: Feedback Please...</title><link>http://www.codeplex.com/ActiveSharp/Thread/View.aspx?ThreadId=22315</link><description>&lt;div style="line-height: normal;"&gt;Here's the project I've been working on, which uses ActiveSharp to do some interesting stuff (namely bi-directional relationships between LINQ entities without codegen): http://www.codeplex.com/Close2Poco&lt;br&gt;
&lt;/div&gt;</description><author>johnrusk</author><pubDate>Tue, 15 Jul 2008 10:04:25 GMT</pubDate><guid isPermaLink="false">New Post: Feedback Please... 20080715100425A</guid></item><item><title>NEW POST: Feedback Please...</title><link>http://www.codeplex.com/ActiveSharp/Thread/View.aspx?ThreadId=22315</link><description>&lt;div class="wikidoc"&gt;
John, &lt;br /&gt; &lt;br /&gt;Thanks for the reply, I suspected you might be using this library for such scenarios.  The other similar approach I have seen used delegates and reflection to do essentially the same thing (but with horrible performance), I believe it was in an OR mapping toolkit on googlecode that I saw this.  &lt;br /&gt; &lt;br /&gt;My implementation of Property&amp;lt;&amp;gt; wrapper is similar to the way it is done in 'DejaVu' on codeplex, which is also very similar to the method JetBrains uses in Resharper.  I originally came across the technique while developing a Resharper plugin, their public API is worth taking a look at even if you aren't developing a plugin, they have some really good ideas.  Speaking of Jetbrains, they just open sourced Omea also, some great stuff in there too.  I am finding their setup/deployment scripts very useful!&lt;br /&gt; &lt;br /&gt;I think your method is cleaner though, having the property definition be verbose is definitely preferable to having the extra syntax during consumption.  It would be nice if MS listened to your suggestion and allowed for the cleaner syntax, I can see how that would come in handy in a number of situations.  &lt;br /&gt; &lt;br /&gt;One other possibility would be to use regular auto properties and then use PostSharp or another compile time weaver to rewrite the compiler generated get/set methods to call GetValue and SetValue methods, provided you can tolerate the use of attributes.  ; )&lt;br /&gt;
&lt;/div&gt;</description><author>sefstrat</author><pubDate>Tue, 25 Mar 2008 02:43:31 GMT</pubDate><guid isPermaLink="false">NEW POST: Feedback Please... 20080325024331A</guid></item><item><title>NEW POST: Feedback Please...</title><link>http://www.codeplex.com/ActiveSharp/Thread/View.aspx?ThreadId=22315</link><description>&lt;div class="wikidoc"&gt;
Hi Steve,&lt;br /&gt; &lt;br /&gt;Thanks for your comments.  &lt;br /&gt; &lt;br /&gt;Just out of curiosity, do you recall any details of the similar approach that you've seen before?  I've heard of some that inspect the call stack (resulting in problems with inlining and possibly performance) but have not heard of any others yet.&lt;br /&gt; &lt;br /&gt;Yes, it is definitely intended to be used for things other than property changed.  All the things you mention, and more, are possibilities.  (In fact, some of the code dates back to an earlier project of mine which focussed on validation).  There's a surprisingly wide range of property-related functionality which can benefit from code that &amp;quot;knows&amp;quot; which property it has been called from.  I'm hoping to blog about some possibilities in the future.&lt;br /&gt; &lt;br /&gt;Interesting to hear about your &amp;quot;Property&amp;quot; generic wrapper.  I presume that it has implicit casts to and from the type it wraps, right?  I toyed with something similar myself some time ago. I vaguely recall striking some kind of issue with it, although I don't recall whether the issue related to my specific implementation or to the approach in general (i.e. exposing an &amp;quot;int&amp;quot; property as something which, technically speaking, is not an &amp;quot;int&amp;quot;).  It may have been the latter, with regard to nullable types and lifted operators, but can't remember for sure.&lt;br /&gt; &lt;br /&gt;Yes, my code is intended to do the same things without the wrapper.  e.g. &lt;br /&gt; &lt;br /&gt;int MyInteger&lt;br /&gt;{&lt;br /&gt;     get { return GetValue(ref _myInteger); }&lt;br /&gt;     set { SetValue( ref _myInteger, value);}&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;private int _myInteger;&lt;br /&gt; &lt;br /&gt;where GetValue and SetValue are generic methods that handle all the undo/redo, validation etc, calling ActiveSharp when they need to know which property they are working on.  &lt;br /&gt; &lt;br /&gt;This approach makes for a nicer experience for consumers of the objects (int's are exposed as ints, rather than Property&amp;lt;int&amp;gt;).  However, its not so nice for authors of the property, because each property is more verbose than in the approach you use.  I've submitted a suggestion to Microsoft to deal with the verbosity. If they were to accept it, the above could be written like this:&lt;br /&gt; &lt;br /&gt;int MyInteger { get GetValue; set SetValue; }&lt;br /&gt; &lt;br /&gt;I see this as potentially very useful -- and not just for ActiveSharp -- so hopefully people will show their support for the suggestion here: &lt;a href="http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=332659" class="externalLink"&gt;http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=332659&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>johnrusk</author><pubDate>Mon, 24 Mar 2008 05:44:01 GMT</pubDate><guid isPermaLink="false">NEW POST: Feedback Please... 20080324054401A</guid></item><item><title>NEW POST: Feedback Please...</title><link>http://www.codeplex.com/ActiveSharp/Thread/View.aspx?ThreadId=22315</link><description>&lt;div class="wikidoc"&gt;
Interesting.  I have seen a similar approach before but dismissed it, however your implementation appears to be much more robust.  I need to find some more time to look into it but I am interested to see how well this can extend beyond the simple case of implementing INotifyPropertyChanged.&lt;br /&gt; &lt;br /&gt;Currently I wrap all of my properties using generics to implement property change events as well as other things like undo/redo support, validation, etc..&lt;br /&gt;ie. Property&amp;lt;int&amp;gt; MyInteger { get; set; }&lt;br /&gt; &lt;br /&gt;Theoretically it seems that the same things should be possible using the technique you use here, without the ugly syntax burden of the Property&amp;lt;&amp;gt; wrapper.   I will have to do some more research to see if this is viable, do you have any thoughts on the matter John?&lt;br /&gt; &lt;br /&gt;Regards and thanks for sharing your code,&lt;br /&gt;Steve&lt;br /&gt;
&lt;/div&gt;</description><author>sefstrat</author><pubDate>Mon, 24 Mar 2008 00:55:47 GMT</pubDate><guid isPermaLink="false">NEW POST: Feedback Please... 20080324125547A</guid></item><item><title>NEW POST: Changed to MIT Licence</title><link>http://www.codeplex.com/ActiveSharp/Thread/View.aspx?ThreadId=23014</link><description>&lt;div class="wikidoc"&gt;
I've decided to change to a more permissive licence, namely the MIT one (which is very similar to the BSD licence), to make it easier for the widest possible audience to make use of the code.&lt;br /&gt;
&lt;/div&gt;</description><author>johnrusk</author><pubDate>Thu, 28 Feb 2008 06:31:17 GMT</pubDate><guid isPermaLink="false">NEW POST: Changed to MIT Licence 20080228063117A</guid></item><item><title>NEW POST: Feedback Please...</title><link>http://www.codeplex.com/ActiveSharp/Thread/View.aspx?ThreadId=22315</link><description>&lt;div class="wikidoc"&gt;
Hi,&lt;br /&gt; &lt;br /&gt;Here's a question for the 35 or so people who have downloaded ActiveSharp so far: do you have any feedback on it? &lt;br /&gt; &lt;br /&gt;Would you use it? &lt;br /&gt;If not, why not? (How could it be improved?)&lt;br /&gt;Any suggestions about documentation?&lt;br /&gt;Does the licence suit you?  If not, what would suit better?&lt;br /&gt;What kind of documentation would you like to see?&lt;br /&gt; &lt;br /&gt;Regards&lt;br /&gt; &lt;br /&gt;John&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;
&lt;/div&gt;</description><author>johnrusk</author><pubDate>Sun, 17 Feb 2008 04:29:20 GMT</pubDate><guid isPermaLink="false">NEW POST: Feedback Please... 20080217042920A</guid></item></channel></rss>