---
title: Developing sites using ASP.NET MVC
related:
  - https://docs.kentico.com/k11/developing-websites/defining-website-content-structure/page-types/creating-content-only-page-types.md
  - https://docs.kentico.com/k11/developing-websites/developing-sites-using-asp-net-mvc/developing-mvc-applications.md
  - https://docs.kentico.com/k11/developing-websites/defining-website-content-structure/page-types/advanced-content-modeling.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

Kentico supports website development using [ASP.NET MVC 5](http://www.asp.net/mvc). The support is based on a separate MVC application while Kentico functions as separate application that you use as a content platform.

Both Kentico and the MVC application access data from the same database and use the Kentico API. Content synchronization of, for example, [smart search](https://docs.kentico.com/k11/configuring-kentico/setting-up-search-on-your-website.md) indexes, is handled by web farms. This approach allows you to separate the live site (MVC application) and the administration (Kentico).

This means that you use Kentico to store data and manage content (mostly via [pages](https://docs.kentico.com/k11/developing-websites/defining-website-content-structure/page-types.md)), and generate the entire design of the site using your own MVC controllers and views.

Kentico's **Pages** application is a repository for content consisting of content only pages. The content itself is entered and modeled by content editors based on a [content structure](https://docs.kentico.com/k11/developing-websites/developing-sites-using-asp-net-mvc/defining-content-structure-on-mvc-sites.md) created by developers. Developers take care of how the content is displayed on the live site via the MVC application.

![](https://docs.kentico.com/docsassets/k11/developing-sites-using-asp-net-mvc/MVC_diagram.png)

### Requirements and limitations

You will need the following configuration for MVC projects:

- **.NET Framework**: .NET Framework 4.6 / 4.7
- **Visual Studio:** Visual Studio 2015 or 2017

#### License requirements

You only need to purchase a license for the MVC application. The extra license for the Kentico administration domain is provided for free. See [Kentico licensing for MVC applications](https://docs.kentico.com/k11/developing-websites/developing-sites-using-asp-net-mvc/kentico-licensing-for-mvc-applications.md) for further details.

> **Info:** **Supported Kentico features**
>
> For the list of currently supported Kentico features that you can use when developing sites using ASP.NET MVC, see [Supported and unsupported Kentico features on MVC sites](https://docs.kentico.com/k11/developing-websites/developing-sites-using-asp-net-mvc/supported-and-unsupported-kentico-features-on-mvc-sites.md).

## ASP.NET MVC development process in Kentico

The following section contains a brief overview to get you started with site development using ASP.NET MVC. You can find a more detailed explanation of the covered areas in the linked pages.

1. **Create and set up an MVC application**
   - [Start with MVC development](https://docs.kentico.com/k11/developing-websites/developing-sites-using-asp-net-mvc/starting-with-mvc-development.md) by setting up your Kentico instance and the MVC application.
2. **Define site content structure**
   - In Kentico's **Pages** application, [create a content structure](https://docs.kentico.com/k11/developing-websites/developing-sites-using-asp-net-mvc/defining-content-structure-on-mvc-sites.md) based on the individual content only page types you are using in your MVC application.
3. **Develop the MVC application**
   - Use [generated code](https://docs.kentico.com/k11/developing-websites/developing-sites-using-asp-net-mvc/developing-mvc-applications/generating-classes-for-kentico-objects.md) for working with objects such as pages in the MVC application.
   - Load page content using the Kentico API. See [Retrieving content on MVC sites](https://docs.kentico.com/k11/developing-websites/developing-sites-using-asp-net-mvc/developing-mvc-applications/retrieving-content-on-mvc-sites.md) for more information.
   - Provide additional functionality on your MVC site. See [Developing MVC applications](https://docs.kentico.com/k11/developing-websites/developing-sites-using-asp-net-mvc/developing-mvc-applications.md) for more information.
4. **Deploy your MVC application**
   - Learn how to set up staging or [deploy your MVC application](https://docs.kentico.com/k11/developing-websites/developing-sites-using-asp-net-mvc/deploying-mvc-applications.md) to Microsoft Azure.
