[This post is part of the developer's manual preview published on this blog. You can find temporary TOC here.]
Almost two years ago, when Sitefinity 3.0 was officially released, the modules that came with Sitefinity were rather simple in their nature. Lead by that thought, it has been decided to follow the YAGNI principle and not over engineer the backend architecture for some future possibilities, but rather to go for the simplicity and immediate benefits. Today, we are seeing very sophisticated and complex modules being built on Sitefinity, both here at Telerik as well by our clients. The old architecture was not able to answer the challenges put in front of it and the modules increasingly became hard to develop and maintain. Thus, for Sitefinity 3.6 new backend architecture has been designed and most important Sitefinity modules have been transferred to it.
This topic of Developers Manual will cover all aspects of the new Sitefinity backend architecture. We will start with the more theoretical approach and basically answer the “Why?” question before we answer the “How?”, since it is our belief that you will be able to gain most from the new architecture if we first explain you the motivation behind it and give you high level overview of the design.
Then, we will start decomposing the building parts of the new architecture. Along the way, we will be tying the concepts with the fundamental building parts, allowing us to see more and more of the big picture. The topics in this part will explain how the design ideas were transformed into an actual implementation and what does it mean for you and your development projects.
Once we have a good grasp of the building parts of the new architecture together with the main ideas behind it, we will be able to jump directly into samples, which should by that time make a lot of sense.
After samples, we will take a look at some of the additional features new backend architecture brings to the table, such as custom Sitefinity template parser or new ControlsConfig file. Knowing these topics is not crucial for you to develop modules, therefore they have been kind of pushed back, but once you get into the basics, you will surely find them useful for more advanced tasks.
Best practices and references
Finally, at the very end we will provide some advice on transferring your existing modules to the new architecture backend (if you choose to do so, because Sitefinity 3.6 is fully backward compatible) as well as give you some advice on building extensible modules (such as Generic Content, on which we have based News, Events, Blogs and Images & Documents modules). Even though we have commented extensively the newly added classes, we have also provided overview articles of most important base classes for your convenience at the end of this topic.