Dynamic Module Builder in Sitefinity 8.1


Telerik put this feature in Sitefinity CMS since SF4.2, but it wasn’t mature enough to a level that developers can leave their IDE and start using it. but with the improvement features and fields type in beside the model type inheritance and relational object types. Sitefinity built this feature as a Content Type builder since it was missing feature and a must feature that should be available with any respectable CMS platform.

So I decided to start my first project with SF8.1 by consuming this Content Type builder (Dynamic module builder).  and it was really amazing to how fast it is to get every piece in place and not only the dynamic model objects but also you get the back-end interface plus a front-end widgets (Views Razor based) as well. it is like a code generating tool.

in few hours I was able to build the following models structure:

1 – Job Description Role Object

2 – Training Course Object

3- A relation between Job Role and Training course , where each Job can be related to many Training courses,

4 – Training course can belong to one Job role or many.

5 – Categorizing all Job Roles using the Taxonomy feature.

The next day I had to re style the widgets and alter the razor views according to the website themes and html layout/styles.

one issue that i noticed it wrong with the Razor generated code which is accessing the DefaultUrl of the related Training course of a Job Role in the Job Role list view.

as the default generated code was

@foreach (var relatedItem in Model.Item.Fields.TrainingCourses)
{
<li>
<a href=’@relatedItem.DefaultUrl’>
@relatedItem.Identifier
</a>
</li>
}
</ul>

“@retalteditem.DefaultUrl” this value returns null string, so I got no href in the anchor.

so i replaced it with

@relatedItem.Fields.UrlName.ToString() which works with my case.

 

Thanks Telerik for the efforts you made. but the golden question is. would it possible to have an import/export tool that can export all data in order to import it again on another instance of Sitefinity (Live server for example), talking here about the data that will be stored and displayed using this dynamic modules we build in Sitefinity. ? I don’t need to upload the whole Database again everytime!?!

that would be a complete solution.