CSLA and Indexing
Rocky has just posted a nice summary of some of the new things coming in the next version of CSLA, including a rendition of my indexing concept from i4o into CSLA.
What makes CSLA a great candidate for indexing is the fact that BusinessListBase derived classes have property change notification built in for child classes. This helps avoid a problem that Anders Hejlsberg pointed out when I was lucky enough to have my idea of indexing in collections floated by some people at Microsoft - that is - there is no way for a general IEnumerable, or for that matter, most of the .NET framework collections, to know when a property in one of it's contained objects changes, and therefore, requires reindexing.
As well, Rocky points out that we are going to need a solution for making it such that the result of a LINQ query over BLB returns something that points to the original collection, not a projection of same. To that end, there is a good chance we will implement a solution like I proposed some time ago, that intercepts the select method when the query is that of the identity child class (that is, you are selecting the same child as the collection is a collection of). Exactly how this takes place is a little less clear - as we have not seen how such a solution will exactly look in CSLA... but at least we have a starting point for the concept.
On top of all that - we have some cool ideas for indexing coming to CSLA, notably, we are going to likely implement an adaptive indexing scheme that allows for the programmer to specify that indexes are only created when needed - that is - adaptive indexing. Using the indexing features of CSLA will give you a great deal of control over how and when indexes are created.
By the way... i4o isn't going away, nor is it on hiatus. i4o will continue to be supported as an indexing solution applicable to anyone doing C# code - numerous people have written me with ideas that I am going to implement in my next round of edits, most of which I am targeting for completion in January.