I have promised to keep delivering the documentation as it is ready here on the blog, so the most obvious way to start is with an outline. The new topic in our developer manual will cover following subjects. If you think we are lacking something, don't hesitate to leave a comment.
I have got burned last time by publishing the roadmap before everything was done, but... let's just say I didn't learn anything from it. On the more serious note, I prefer to keep you up to date as much as possible and in the loop, even if it means an avalanche of the "hurry up" comments and emails. So, we'll be publishing the topics from the outline below as soon as we can here on the blog. The developer manual updates will happen a bit less frequently, but we'll make sure we update the actual manual as well.
Sitefinity 3.6 - new backend architecture
- Introduction
- The motivation behind the new architecture - what’s in it for you?
- What has changed, what hasn’t
- Architectural overview
- What are Views?
- How to navigate among Views?
- Overview
- What are commands? [UPDATED]
- What are routes?
- How do I pass parameters between views?
- How do I work with routes directly? [POSTPONED UNTIL SP1]
- Control Panel
- Command Panel
- Views hierarchy
- Sample modules:
- Sample intra site module: Contacts intra site module
- Sample pluggable module: Contacts pluggable module
- Using embedded templates
- Preparing embedded templates for exporting [merged with the "Using embedded templates" article]
- Implementing client-side data binding for RadGrid
- Sample Generic Content based module: Products module
- Overview
- Reusing views
- Adding and removing meta fields
- Client side data binding custom metafields
- Implementing permissions
- Removing unneeded Generic Content features (e.g. comments)
- Adding new features to Generic Content module
- Products module: Insert / Edit templates control guidance [NEW]
- IContentCategoriesField interface (merged into controls guidance article)
- IContentTagEditor interface (merged into controls guidance article)
- Configuring backend Views and Controls with ControlsConfig file
- Introduction to ControlsConfig file
- Mapping a control to use external template
- Mapping multiple templates of a control
- Mapping to different templates based on the provider name
- Mapping Content View Designers and working with Presentation Modes [NEW]
- Adding child views to the View
- Removing child views from the view
- Replacing a child view with another one
- Example: Replacing NewsItemNew view with a custom implementation [Merged with previous article]
- Sitefinity template parser
- What is it?
- The differences
- What are advantages of Sitefinity template parser? [Merged into "The differences" article.]
- Sitefinity parser peculiarities [Merged into "The differences" article.]
- How to use standard ASP.NET template parser?
- Designing extensible modules - best practices
- Overview
- Designing reusable Views
- Host ambivalence
- Hierarchy ambivalence [Merged with previous topic - "Specializing generic host" section]
- Child control ambivalence
- Following single responsibility principle
- Sample code [NEW]
- Transferring modules built prior to Sitefinity 3.6 to the new backend architecture
- Reference : Most important base classes
- ViewModeControl class
- ViewModeUserControl class
- ControlPanel class
- ProviderControlPanel class
- CommandPanel class
- CommandItem class[since 3.6 Service Pack 1 this class should not be used directly, but rather through CommandPanel AddCommand methods]