Sitefinity CMS 13.0+ brings the .NET Core Renderer, a standalone presentation layer that you develop separately.
Sitefinity has been on the market for almost 15 years. That’s right: the product predates services like Twitter, which we take for granted today. Over these years, the team has continued to improve the product to help you – the developers, marketers, and content creators do your job effectively.
The technological landscape has changed, and with it, your expectations of the product. You care about more flexible deployment, easier integration with your existing infrastructure and the lowest possible infrastructure cost. The Sitefinity team has provided various features to meet your needs.
On the backend, the Sitefinity content management system (CMS) supports various database engines – SQL Server, Oracle and MySQL. And you can even host your database on a separate Linux machine, further reducing your costs.
On the front end, Sitefinity has always kept the content and the layout separately. The team built on this and introduced layout services in Sitefinity 12.2. In this scenario, Sitefinity is serving your data through a REST service. You create the interface in any technology and infrastructure you need. This approach is useful if you are creating specialized web or mobile applications. You can use our angular sample to get started.
Introducing Sitefinity CMS ASP.NET .NET Core Renderer
Building on the work accomplished to date, the Sitefinity team is releasing the first preview version of Sitefinity .NET Core Renderer. In this blog post we will give you information about what it is and how it affects you.
There are many advantages to using a separate rendering engine.
As a developer, you benefit by:
- Continue using your existing .Net and .Net Core skills to extend Sitefinity.
- Gain efficiency—you work only on the presentation layer of Sitefinity. The rest of Sitefinity can be deployed on another machine or in the cloud. This speeds up iterations because you do not wait for Sitefinity to start and configure. You only need to connect to an already running instance.
- Your project based on .Net Core has less code and simpler structure than the full Sitefinity one. Among other benefits, this brings almost instantaneous startup time when you debug it, and the entire write-compile-debug cycle is significantly improved due to the speed of the underlying .Net Core.
- Work on any OS—Windows, macOS, Linux; and create code with any editor you like.
- Create standard Asp.Net Core ViewComponents, which the content editors can use as widgets when they build their sites.
As a bonus, you don’t need to use the .NET Core rendering engine at all. Since the .NET Core Renderer and Sitefinity communicate through REST API calls, you can build your rendering engine with the front stack, which gives you the best, for example, an Angular application.
As an administrator, you benefit by:
- Host the renderer on machine separately from the rest of Sitefinity which reduces the CPU time and memory pressure on the Sitefinity node.
- Quickly scale horizontally—when the demand to your sites increases, you add just more renderer machines.
- Need load balancing for Sitefinity less often, leading do simpler, easier to maintain infrastructure.
- Switch from self-hosted to cloud deployment much easier.
Sounds Great, but How Does It Affect Me as a Developer?
The .NET Core Renderer is a separate application from the rest of Sitefinity. When you use it, you don’t have access to all Sitefinity C # APIs. Instead, you access content using the Sitefinity ODATA APIs. You can extend Sitefinity with additional REST services and consume them from the .NET Core rendering engine.
An additional consideration is that the .NET Core rendering engine is based on the ASP.NET Core framework. You must use the ASP.NET Core APIs if you plan to extend the .NET Core Renderer with custom code.
What Is Included in the First Release?
This is the first preview release of the .NET Core Renderer, and it ships with a focused set of features. We did this intentionally to get your early feedback. With this release, you can use:
- Content blocks to host the content from Sitefinity CMS
- Custom widgets to extend the functionality of the .NET Core Renderer
- Single sign-on is also available to let you use authentication on your sites
However, we have something up our sleeve. The .NET Core rendering engine has additional features: it also functions as a proxy for the Sitefinity CMS. This means that if it can serve a resource, it will, but if not, it will pass it on to Sitefinity. Using this approach, we were able to serve the full Sitefinity Quantum demo site, although the .NET Core rendering engine does not yet have all of the existing WebForms and MVC rendering widgets. This feature allows you to gradually migrate your sites from full Sitefinity to .NET Core Renderer.
What Do We Plan for Future Releases?
The Sitefinity team has a very aggressive track record. For example, some of the important features that the team is focusing on are the output cache feature, to speed up site rendering and personalization, so you can use the power of Sitefinity Insight. We will be adding more functionality in future releases. Our goal is to achieve functionality parity with Sitefinity for frontend development.
In the long run, we know .NET Core is the future, and we’re rebuilding Sitefinity on it. We do this in a very measured manner and we strive to ensure interoperability between the .NET Core Renderer and the Classic Sitefinity CMS. And, of course, we will support Classic Sitefinity CMS for the foreseeable future. We know you have built your critical assets on it, and we want to give you the ultimate flexibility and predictability.
using the .NET Core renderer and proxy the Classic Sitefinity CMS, and you can port the content and representation from the Classic Sitefinity.