How do you find the resources that your development team will need to get up and running with Kentico Kontent in .NET?
Working with a headless CMS provides a number of benefits, one of which is the freedom to choose the technology stack that suits you. You might be making a choice based on your channel or perhaps based upon your in-house team's skillset. If you're heading into a new Kentico Kontent project with a .NET team, where do you start?
Kontent Learning Resources
Kentico Kontent has provided a good set of resources available to help you along your way. Most of this content can be accessed from either the Kentico Kontent site or from Kentico’s GitHub pages.
The resource centre is a great place to get started, with a plethora of webinars, white papers, ebooks, guides, videos, and more to set your team on the right path. Here you can look at things like approaches to content modelling, transitioning to microservices, or perhaps just seeing how others are getting on with things. It's not .NET focussed but looks at the wider product.
This is more of a developer-focused resource in my mind. It is not restricted to Kentico Kontent as it also contains Kentico Xperience resources. You need to join this community through GitHub to get access.
In my opinion, this is the best of the .NET tutorials for developers who are just starting out. It is regularly updated as the platform updates, so by keeping the packages mentioned in this tutorial up to date, developers can very quickly create a simple application as a starting point to learn some of the basics and build up some core concepts.
Developer Resource Links
In 2020, the Kentico MVP program split into two groups: Kentico Kontent and Kentico Xperience. Before that happened, the MVPs put together a list of useful links about each of the products. It contains links to a multitude of resources including social media accounts, blogs, user groups etc. as well as links to Kentico documentation, and partners.
.NET Core Kontent Delivery API & SDKs
As mentioned, there are a few SDKs that wrap-up the APIs provided by the Kontent team. Broadly speaking there are three to consider:
The Delivery SDK
This is the most used SDK in .NET and provides the mechanisms for extracting information from Kentico Kontent to display in the application. You can also download the Delivery SDK form NuGet (this is preferred to pulling or forking from GitHub).
Content Management SDK
The Smart Recommendations SDK uses artificial intelligence (Recombee) to recommend relevant content to your visitors based on the content their content consumption and other similar journey's.
Best practices for Delivery SDK for .NET
There are some great tips here for not only working with Kentico Kontent in .NET, but also just working with .NET web apps in general. This is a resource that I don't believe many teams are aware of, but its full of some very useful practices that support a solid foundation for your projects. 💪
.NET Sample Applications
Dancing Goat MVC
If you know Kentico, then you know of Dancing Goat. 🐐 I think of it as Kentico's very on Contoso/Northwind. This is a more fully-formed Dancing Goat sample site. It goes further than the tutorials, though it's not e-commerce enabled unlike some of the Kentico Xperience Dancing Goat samples that Kentico have provided over the years.
Dancing Goat Razor Pages
Another .NET implementation of Dancing Goat, this time using Razor Pages as the approach rather than MVC. This implementation is less polished than the MVC implementation, and perhaps not quite as useful, but if you're up razor pages it is a starting point.
Kontent Development Tools
.NET Model Generator
The Kentico Kontent model generator is a key tool when working with Kontent and .NET. It was developed to map the content types in your project into .NET classes that can be used with the .NET Delivery SDK. You can see this in both of the code examples above.
The backup manager can provide the basis of the Kontent project migration; to import project structures and content via the Content Management API (CMAPI) and could possibly be used independently to create an internally managed/private set of project templates for Kentico Kontent.
Kontent Online Tools
Kontent Template Manager
The Kontent Template Manager allows for the import and export of a project from Kentico Kontent. Exports will take all the content type structure and data and export them to a single ZIP archive. This archive can then be imported into another project and used as a template.
As the name suggests, there are also templates here. A template is made up of application source files and a ZIP file containing the content for the application. There are a few to choose from, four of which are on the .NET stack.
To use this tool, the projects need to have the Management API enabled in the project settings.
Built by Ondřej Chrastina, the environment comparer is a great tool that will allow you to select two different environments to compare. The output is a git-styled diff of all of the content types in your project. This really useful when trying out changes quickly in Kontent using environments and provides a pointer to the scripts needed for the CLI in order to create a new migration.
What isn't in .NET?
- Custom Elements. These allow you to extend the Kontent user interface to add your own field type and integrations (i.e. a YouTube video selector). You require some JS to put these together as they need to interact with the DOM and the Kontent application.
So, what next?
If you need to get your team up to speed, then I hope the above has given you something useful to look at. If I were to suggest my top two things to look at, it would be Best practices for Delivery SDK for .NET, and the Resource Center. These two give a good balance between technical and more business-oriented knowledge, which can give you more confidence as you move forward.