AI agents: the content index is at /llms.txt. Every page is also available as Markdown — send the request header Accept: text/markdown, or append .md to the page URL.
Xperience Docs

Cookie consent

We use necessary cookies (opens in a new tab) to run our website and improve your experience while browsing. Additional cookies are only used with your consent. You may revoke your consent on the Cookies Policy (opens in a new tab) page or in your browser at any time.

Configure (opens in a new tab)
  • Documentation
    InstallationUsing the Xperience interfaceDeveloping websitesConfiguring XperienceManaging usersSecuring websitesDeploying websitesManaging website contentMultilingual websitesMacro expressionsExternal utilitiesIntegrating 3rd party systemsCustom developmentE-commerce featuresOn-line marketing featuresRelease notes - Xperience 13Xperience terminology glossary
  • Tutorial
    Using the Xperience interfaceDeveloper tutorialBusiness tutorialResource hub for marketers
  • API Examples
    ConfigurationContent managementDevelopmentE-commerceOn-line marketingSocial media
  1. Home
  2. Developing websites
  3. MVC development overview

MVC development overview


Was this page helpful?

Send us feedback Go back to top

Related pages

  • Creating page types
  • Reusing existing page content
  • Community Questions & Answers (opens in a new tab)
  • Contact support (opens in a new tab)

Xperience supports website development using ASP.NET MVC 5⁠ (opens in a new tab). This development model is based on a separate MVC application that handles the presentation of the live site, while the Xperience application serves as a content and administration platform.

Both Xperience and the MVC application access data from the same database and use the Xperience API. Synchronization of cached content and most files is handled by web farms. This approach allows you to separate the live site (MVC application) and the administration (Xperience).

This means that you use Xperience to store data and manage content (mostly via pages), and generate the design of the site using your own MVC controllers and views.

Xperience's Pages application is a repository for content consisting of pages. The content itself is created and modeled by content editors based on a content structure defined by developers, who then manage its presentation on the live site via the MVC application.

Xperience MVC training

If you want to learn more about developing websites with Kentico Xperience, try our hands-on e-learning course⁠ (opens in a new tab) targeted for ASP.NET MVC developers.

Requirements and limitations

You need the following environment for developing MVC projects:

  • .NET Framework: .NET Framework 4.8
  • Visual Studio: Visual Studio 2019 or 2022

License requirements

You only need to purchase a license for the domain of the live site running on the MVC application. If you wish to run the Xperience administration interface on a different domain, an extra license is provided for free. See Licensing for Xperience applications for further details.

MVC development process

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 by setting up your Xperience instance and the MVC application.
  2. Define site content structure
    • In the Xperience administration interface, create a content structure based on pages.
  3. Develop the MVC application
    • Set up features that can help build your website:
      • Preview mode
      • Page builder
      • Form builder
      • Routing (handling of page URLs)
    • Use generated code to work with page content and other data in the MVC application.
    • Load page content using the Xperience API. See Retrieving content for more information.
    • Provide additional functionality on your MVC site using the Xperience API.
    • If necessary, customize or extend the system's functionality. See Applying customizations in the Xperience environment.
  4. Deploy your MVC application
    • Learn how to deploy your MVC website to a hosting server (production environment).

Automatic features for MVC projects

All Xperience MVC applications (i.e. projects with the Kentico.Xperience.AspNet.Mvc5 NuGet integration package installed) automatically use several features, which are not part of standard ASP.NET MVC 5. These features may modify how the application renders the output of pages or responds to certain types of requests.

  • Relative URL resolving – The system runs an output filter that automatically resolves all virtual relative URLs (~/<link path>) in page content. The resolving occurs on the side of the MVC live site application, based on the environment where the site is actually running. This filter prevents content editors from creating invalid links in cases where your MVC application does not explicitly resolve URLs (by processing content using the Html.Kentico().ResolveUrls method). If you wish to disable the output filter and resolve URLs manually in your code, set the CMSMVCResolveRelativeUrls key to false in the appSettings section of your MVC project's Web.config file:

    XML
    <add key="CMSMVCResolveRelativeUrls" value="false"/>
  • Resource sharing with the administration domain – When the MVC application processes requests sent from the domain of the connected Xperience administration application, it sends a response with the Access-Control-Allow-Origin header, which enables Cross-origin resource sharing⁠ (opens in a new tab) and prevents potential errors.