Episerver architecture was designed to allow programmers to easily modify the CMS to include components that help the administrator or content author reduce the time it takes to complete their job. These components can be reused in multiple projects by downloading them from the app marketplace or installing them through a Nuget package. Verndale has created some add-ons for Marketplace such as Redirect Manager, Cache Buster, Sitemap and Robots generator, and so on. During the creation process, many challenges were overcome and in the end, we managed to understand the best practices that should be followed to build them, the same ones that we want to share in this blog.
All the modules were tested using the Alloy demo website. In the beginning, we created a single project within the solution that contained both Alloy and the add-on files. Everything went smoothly until we had to create a NuGet package.
It was a little daunting because we had to build a new solution and migrate the files. We understood that this should not happen again in the next module. Then, we used a different approach. We created two solutions, one for Alloy and the other for the add-on. This alternative was difficult to maintain because debugging the module became a challenge.
Next, we decided to have only one solution but with two projects. It was definitely the smartest decision we made. We were able to access to the add-on project files by adding an entry in the virtual path in the web.config file, and the Alloy website could recognize the add-on controllers. Apart from this, we took advantage of the Episerver classes and styles to build the presentation. An excellent guide can be found at http://ux.episerver.com/. It helped to build very intuitive modules. Building modules is an easy task and should be considered as a must to accelerate the development process in software teams.
To conclude, Episerver promotes the use of add-ons and encourages developers to upload them to the market. In this way, developers can benefit and make their work easier and easier. In addition, the modules that are on the market place have gone through a rigorous testing process that guarantees quality and stability.
No model set
at Glass.Mapper.Sc.GlassHtml.MakeEditable[T](Expression`1 field, Expression`1 standardOutput, T model, Object parameters, Context context, Database database, TextWriter writer) in c:\TeamCity\buildAgent\work\8567e2ba106d3992\Source\Glass.Mapper.Sc\GlassHtml.cs:line 589