Content ItemCollection
The ItemCollection I have been working on quite a bit, and decided to push it to the limits with its implementation.
The Typed Collection pattern is a way to completely strongly type implementations. This implementation includes optional events (with the ability to silence them when loading data), a complete IList implementation and additional convenience constructors and methods, such as AddRange and ToArray.
The intersting part, is that the Item has been simplified to some extent, as several aspects of an Item are abstracted into being a version, culture, or some other variant implementation.
With some advice from ace, I have been consolidating a few ideas on the workflow of the item and added a piece to the puzzel
MasterItemData (Shared accross versions, cultures and other incarnations.)
ItemData
ItemSettings and other Properties
the basic item is going to be a more simplified object of proteris and proepty change events, and the main item is going to implement the concept of versions, collections, etc to control a bunch of basic objecs.
Item type has not changed since last i spoke about it.
status and categories need a bit of help ive concluded from discussions with filip, either constraints need to be in the db, or some system of defaults would need to be in place to avoid the null issues he pointed out. i want to thank filip to for taking time to give me a lesson in sql, i think thats what my favorite part of rainbow is, there are always smarter people working on the project who want to help you succeed, so they help you learn and better your path if your patient. Remembering this open source, and everyone is volunteers its just pretty cool sometimes.
i really like how Filip described the module / events idea, although i think the module idea needs to be more evolved into the item idea... in any case, i am thinking events and subscirptions might go on hold till the api makes more progress, as its an easy extension later on.
i would like to get some progress going with manu on the DAL layer, and start implementing that in the api. i have made some inital tests on replacing core code with the api to see how it looks and feels, even thoguh it wouldnt actually work or do antyhing yet, there where things i liked, some i didnt, hence my major work over the collections sobjects mostly.
the boring but important piece will come with making the predefined types which other types cna inherit from, and a few nice built in objects with rainbow in mind.
- ItemType
- CustomSettings
- Application ( this would be purley to define root points in item collections )
- Portal
- Page
- Module
- Link
- Text
- HtmlDocument
- Announcment
- ArticlePage
- BlogEntry
- Comment
- Rating
- File
- ImageFile
- MediaFile (Probably not going to be built in any time soon)
- OfficeFile (Probably not going to be built in any time soon)
- FlashFile (Probably not going to be built in any time soon)
- Feed (Extension of link?)