[This post is part of the developer's manual preview published on this blog. You can find temporary TOC here.]
The new backend architecture introduced in Sitefinity 3.6 introduced some rudimentary changes to the ways modules are being developed. In this topic we are going to discuss the ideas and approaches for transferring the modules built for prior versions of Sitefinity to the new backend architecture introduced in Sitefinity 3.6.
Before we go into any more details, it is important to note that:
Old modules are compatible with Sitefinity 3.6 and it is not necessary to port them.
Now, that we have cleared the backward compatibility issue, let us examine the two major changes that were introduced. Thinking on this higher level, we will be able to quickly devise a plan for module migration.
Knowing these two facts, we can see that we have two major tasks in front of ourselves if we are to migrate our old module to the new architecture.
- Modules are separated in Views. ControlPanel is only the top level View now, unlike in prior versions where it was the control which held all the UI elements and logic of a module
- We are navigating between Views through URLs, unlike in prior versions where we used postbacks and modes to show or hide particular piece of the ControlPanel
First, we will have to break up the ControlPanel into logical Views, where each View does one single thing.
Secondly, we will have to replace all the Button and LinkButton controls which used to switch the mode of the ControlPanel to HyperLinks and have them navigate among Views, as opposed to perform postbacks.
We will explain both tasks as well as the experiences we’ve had in regards to this task in the next two articles in this topic.