Linq to CSLA
We are approaching release for CSLA 3.5, which includes what Rocky and I are calling "Linq to CSLA".
Of course, there is nothing much new about this - I have talked about a lot of these same ideas before. That said, it is notable to point out that Linq to CSLA, which is implemented as a custom IQueryable, allows you to query across CSLA collections (BusinessListBase and ReadOnlyListBase derived objects), and get in return objects that you can do bi-directional binding with. This is, of course, opposed to the normal results of a Linq to Objects query, which will typically result in a sequence which, while allowing for bi-directional binding on the items within the collection, does not result in collection level changes making it back (i.e. add an item to a grid bound to a Linq to objects resultset).
The details around this are that when you do a query that uses an "identity projection" - that is, project the same object you are querying for, rather than getting back a sequence, you get back a LinqBindingList which reflects collection level changes back to the collection that you performed the query on.
In addition to this, which frankly, was a key to make Linq work with CSLA as most would expect it to, we went ahead and added i4o style indexing to CSLA as well, so you can use the [Indexable] attribute to your child classes and have CSLA index those both within BusinessListBase and ReadOnlyListBase.
Speaking of i4o, I do have a refresh of that project coming later in April, once I get back from MVP summit... some important performance updates and functionality coming to that as well, including much faster index creation that depends less on reflection that some readers have submitted... so stay tuned.
In the meantime, feel free to head to Rocky's website and download the beta of the new CSLA - feedback is certainly appreciated.