---
title: Choosing the right development model
---

> 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 provides three basic development models. You can choose the model that best suits your needs:

- **[Portal Engine](https://docs.kentico.com/k10/developing-websites/developing-websites-using-the-portal-engine.md)** – allows you to build websites in a **browser-based interface** using components called web parts. Only requires programming in Visual Studio when creating custom components.
- **[ASPX Templates](https://docs.kentico.com/k10/developing-websites/developing-websites-using-aspx-templates.md)** – can be chosen by ASP.NET developers who prefer to create websites using standard ASP.NET architecture and standard development tools, such as **Visual Studio**. This model requires you to be familiar with ASP.NET web form development and have at least basic programming knowledge of C# or VB.NET.
- **[MVC](https://docs.kentico.com/k10/developing-websites/developing-sites-using-asp-net-mvc.md)** – allows developers to create websites using the Model-View-Controller architectural pattern (based on the ASP.NET MVC framework). Working with this model requires knowledge of programming and ASP.NET MVC. Note that not all features are supported for MVC development; see [Supported and unsupported Kentico features on MVC sites](https://docs.kentico.com/k10/developing-websites/developing-sites-using-asp-net-mvc/supported-and-unsupported-kentico-features-on-mvc-sites.md) for more details.

If required, the _Portal Engine_ and _ASPX Templates_ models can be [combined on a single website](https://docs.kentico.com/k10/developing-websites/developing-websites-using-aspx-templates/using-both-aspx-and-portal-templates-on-a-single-site.md). For example, you can place pages using ASPX templates onto a portal engine website, and even insert custom ASPX pages implementing your own applications. On the other hand, you can create ASPX page templates with [areas that can be edited through the portal engine](https://docs.kentico.com/k10/developing-websites/developing-websites-using-aspx-templates/adding-portal-engine-functionality-to-aspx-page-templates.md).

|                                               | Portal Engine                                                                                                                                                                                                                                  | ASPX Templates                                                                                                                                                                                                                                                                                                      | MVC                                                                                                                                                                                                                                                                                                                                                                                                                         |
| --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **How you work**                              | You build the website and design pages using a browser-based interface.<br>No programming knowledge is required for common tasks.                                                                                                              | You build ASPX pages (web forms) that are used to display content from Kentico .<br>At least basic programming knowledge of ASP.NET and either C# or VB.NET is required.                                                                                                                                            | You implement models, controllers and views for rendering pages rendering content retrieved from the Kentico database.<br>Requires knowledge of MVC architecture, ASP.NET and C# or VB.NET.                                                                                                                                                                                                                                 |
| **How you assemble pages**                    | You use built-in or custom web parts that you place into customizable page layouts (HTML code with placeholder zones for web parts).                                                                                                           | You use built-in or custom ASP.NET server controls and place them onto the ASPX pages. These are standard web forms that are part of the web project, so you can also work with code behind files.<br>It is also possible to place web parts on the page templates if the required server control is not available. | The appearance of the content you display is defined completely through MVC views, which are composed of HTML and inline code.<br>The content structure in Kentico is represented by [content only pages](https://docs.kentico.com/k10/developing-websites/defining-website-content-structure/page-types/creating-content-only-page-types.md), which do not have page templates as they serve as content repositories only. |
| **Master pages and visual inheritance**       | Subpages can nest within any ancestor pages. You can break the nesting on any level.                                                                                                                                                           | Page templates may inherit content from a master page, which works just like a standard ASP.NET master page (.master file).<br>Pages do not inherit content from their parents in the website content hierarchy.                                                                                                    | Visual representation is handled by the MVC application completely.                                                                                                                                                                                                                                                                                                                                                         |
| **Custom code integration and extensibility** | You can create your own user controls (ASCX files) or web parts (ASCX files with a portal engine interface) if you need to integrate custom functionality.<br>Any custom controls or code can be added to the web parts placed on the website. | You build standard ASPX pages with code behind files, which means you can place any custom controls and code onto the page.                                                                                                                                                                                         | You prepare the content of the MVC views and the functionality of the controller and model classes in Visual Studio, so have full control over customization.                                                                                                                                                                                                                                                               |
| **Advantages**                                | Easier and faster way to build websites.<br>ASP.NET programming knowledge is not required for common tasks.<br>You can build the whole website very quickly, using only a web browser.                                                         | Standard ASP.NET architecture.<br>You can use your favorite development tools, such as Visual Studio.                                                                                                                                                                                                               | Model-View-Controller architecture.<br>The option of using the [Razor](http://msdn.microsoft.com/en-us/VS2010TrainingCourse_ASPNETMVC3Razor) view engine<br>Development via standard tools (Visual Studio).                                                                                                                                                                                                                 |
| **Disadvantages**                             | Proprietary architecture and development process.                                                                                                                                                                                              | Requires ASP.NET programming knowledge.<br>The design of the web pages cannot be fully managed via the browser‑based administration interface.                                                                                                                                                                      | Development tasks require knowledge of ASP.NET MVC and programming.<br>The design of the web pages cannot be managed via the browser‑based administration interface.                                                                                                                                                                                                                                                        |
