HappyNomad: Oh, and have you logged this with the NHibernate JIRA yet--? ( http://jira.nhibernate.org )
On Wed, Nov 26, 2008 at 10:22 AM, Stephen Bohlen <[EMAIL PROTECTED]> wrote: > HappyNomad: > > I will take a look @ the blog post you mention in your initial post and see > what we can consider doing that will support the GOAL you have of ensuring > that there is a way to observe changes to collections. The implementation > may (in the end) be something different than specifically what you are > proposing, but the intent of what you are after seems reasonable (to me). > > And for the record, I have to credit Gustavo for chiming-in > on UI-neutrality being a cornerstone of any implementation to address this > need. [?] > On Wed, Nov 26, 2008 at 10:15 AM, HappyNomad <[EMAIL PROTECTED]>wrote: > >> >> Stephen, we are definitely in agreement here. Your point about making >> the solution UI-neutral is a great one. And in fact the idea I >> already have in mind, to include my OnCollectionChanged() method, is >> in fact UI-neutral. In my original post I just offered to take it one >> step further by also implementing INotifyCollectionChanged. But if >> that isn't UI-neutral then I will gladly accept refraining from taking >> it that far. >> >> >> On Nov 26, 10:03 pm, "Stephen Bohlen" <[EMAIL PROTECTED]> wrote: >> > Actually, if you look really closely you will see that... >> > >> > 1) yes, .NET 3.5 supports these interfaces for change notification >> > 2) under 3.5 there are DIFFERENT notification interfaces that you need >> to >> > implement to properly participate in WPF than in winforms (the source of >> my >> > statement that several of these are 'UI specific' >> > >> > If you are building your own UI in a technology of your own design, then >> you >> > can choose which of the notification interfaces you are interested in >> > implementing in your objects and (presumably) your own UI technology >> would >> > be able to similarly 'choose' which of these events to subscribe to. >> But if >> > you are choosing WPF vs. WinForms, you DO have a different set of >> interfaces >> > that your objects must implement in order to 'participate' in the rest >> of >> > the UI environment that you have chosen. >> > >> > If you look very closely at the docs (even for 3.5) you will actually >> see >> > that while (of course) all of these interfaces are in the end 'just .NET >> 3.5 >> > interfaces', the ones your objects need to implement actually DO change >> > depending on which UI platform you are targeting with them. Again, I >> direct >> > you to Rocky's latest CSLA treatise where he explores at length the >> (subtle) >> > differences between the change-event-notification models in WPF, >> winforms, >> > and even Silverlight. >> > >> > Without getting of on a wild tangent here, I would just restate my >> opinion >> > that the answer (in my mind) is to ensure that the right extensibility >> > points and overridable behaviours are provided for so that anyone can >> > intercept and wire up any specific needed eventing points as they might >> need >> > to support ANY change-notification-model they my see fit to choose >> (which, I >> > think, is sort of what you were advocating in the first place, no?) >> > >> > On Wed, Nov 26, 2008 at 9:54 AM, HappyNomad <[EMAIL PROTECTED]> >> wrote: >> > >> > > I would like to point out that NH 2.1 itself targets .NET 3.5. And >> > > INotifyCollectionChanged is part of .NET 3.5. INotifyPropertyChanged >> > > and INotifyCollectionChanged is a general mechanism in .NET for making >> > > objects observable. It is NOT part of a "specific UI model". Sure, >> > > WPF uses these interfaces, but it could be used for other GUI >> > > frameworks as well. It could even be used for non-GUI frameworks >> > > which observe the domain model. >> > >> > > In any case, the bare minimum I am asking at the moment is add this >> > > template method to AbstractPersistentCollection: >> > > protected abstract void OnCollectionChanged >> > > ( NotifyCollectionChangedAction action, object changedItem, int >> > > index ); >> > > and then call it from all of its subclasses, whenever the collection's >> > > contents are modified. This wouldn't be adding observability per se >> > > (although it's not far from it I admit). >> > >> > > On Nov 26, 9:33 pm, "Gustavo Ringel" <[EMAIL PROTECTED]> >> wrote: >> > > > I think the task of the persistence layer is not to be bindable to >> an >> > > > specific UI model...or to inform about something to an specific UI >> model. >> > > > So for sure it is not part of the core. >> > > > It may be an extension to put in the contributions... >> > >> > > > Gustavo. >> > >> > > > On Wed, Nov 26, 2008 at 4:29 PM, Fabio Maulo <[EMAIL PROTECTED]> >> > > wrote: >> > > > > 2008/11/26 HappyNomad <[EMAIL PROTECTED]> >> > >> > > > >> NH 2.1 targets .NET 3.5, and >> > > > >> observability is a fundamental feature of .NET 3.x, so I think >> the >> > > > >> best way to solve this problem is to incorporate observability >> into >> > > > >> the NH core. >> > >> > > > > Sure... and sure we will add INotifyProperyChanged, and a base >> class to >> > > > > work with lazy-loading and INotifyCollectionChanged and probably >> > > > > IBindingList implementation. >> > > > > Be sure about that. >> > > > > -- >> > > > > Fabio Maulo >> > >> > >> > >
<<32A.png>>
