Prepared with what you need to succeed with Kontent in .NET?

Mar 22, 2021
.NET CoreKontent.ai

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 on 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. 

Resource Centre

https://kontent.ai/resources

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 focused but looks at the wider product.

GitHub Community

https://kontent-ai.github.io/ 

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. 

Tutorial

https://docs.kontent.ai/tutorials/develop-apps?tech=dotnet

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

https://kentico.github.io/Home/RESOURCES 

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

OK, so let's focus a little more on .NET. It's fair to say that the JavaScript world gets a lot of attention, but that does not mean to take anything away from the .NET stack. JavaScript has been the biggest uptake for Kentico Kontent for a while now, but there are still plenty of .NET resources that are available.

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

https://github.com/Kentico/kontent-delivery-sdk-net

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

https://github.com/Kentico/kontent-management-sdk-net

The Content Management SDK is used to manipulate data in Kontent using the Management API. As an example, this can be used to migrate data, or even import content models into the Kontent project. Project structures can be documented in JSON and imported via the API or imported via code. At the moment, this is a little behind the JavaScript version of this SDK, with things like content types missing.

Recommendations SDK

https://github.com/Kentico/kontent-recommendations-net/tree/vNext

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 journeys.  

Best practices for Delivery SDK for .NET

https://github.com/Kentico/kontent-delivery-sdk-net/wiki

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 it's full of some very useful practices that support a solid foundation for your projects. 💪  

.NET Sample Applications

Dancing Goat MVC

https://github.com/Kentico/kontent-sample-app-net

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

https://github.com/Kentico/kontent-sample-app-razorpages

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

https://www.nuget.org/packages/Kentico.Kontent.ModelGenerator/ 

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. 

Backup Manager

https://github.com/Kentico/kontent-backup-manager-js

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

https://kentico.github.io/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. 

Environment Comparer

https://github.com/Simply007/kontent-environments-comparer

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?

As I mentioned above, javascript especially has a lot of traction and support when it comes to Kentico Kontent. As a result, there are still a number of places where developers might need to brush up on their JavaScript. For me the two main areas here are:

  1. 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.
  2. Kontent CLI. Most developers will tell you that being able to script things makes them happy. This is because a script is less susceptible to typos and - more often than not - 100% repeatable. Being able to create and update a project on the command line is a must for any serious project of scale. If your team want this, then they'll need either JavaScript or TypeScript skills.  

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 business-oriented knowledge, which can give you more confidence as you move forward. 

(Cover Photo by Tim Mossholder on Unsplash)