2.2. Picking a project type and development model

We often see developers choose the most familiar model, ignoring that certain features are not supported in that model or forgetting the needs of business users. This section explains the basics of each development model to help you choose the best fit for your project based on the needs of both developers and business users.

Picking a project type and development model

Choosing the right project type for Kentico

If you are deploying a portal engine project we recommend reading "Kentico Web App vs Website: Which One Is Best?" to decide what's right for you.

Choosing the right development model

The documentation on development models provides an excellent summary of the main differences, advantages, and disadvantages of the two approaches Kentico offers. We highly recommend reviewing that documentation, but here are some key takeaways for each of the supported development models:


When it is crucial:

  • You need full control over the rendered output.
  • You need to highly automate the testing.
  • You need to decouple presentation and data layers.

When it is beneficial:

  • You need high performance.
  • Your developers are familiar with MVC development and not with web forms development.

Other considerations:

  • This is the direction most of .NET web site development is heading.

Portal engine

When it is crucial:

When it is beneficial:

  • You can develop sites very quickly.
  • You can modify templates directly in the browser in the administration interface.
  • You enable business users to use dynamic functionality with minimal technical training.

Other considerations:

  • Most projects are currently built with this model.
  • Utilizes a proprietary architecture and development process.
  • Support for portal engine projects will end in 2022.

Finding the right component

When using the Portal Engine development model, use the table below to get an idea of how to convert static HTML into Kentico components:

Structured data displayrepeater, datalist, grid, universal viewer etc.
Unstructured data displayeditable region, static html, static text etc.
User inputonline-form, rating, poll, forum etc.
Interactionlogin form, search, newsletter subscription etc.
Layoutcolumns, tabbed, collapsible panel etc.

Analyzing HTML templates

Follow these steps to break an HTML template into something that you can build in Kentico:

  1. Identify common components for the master page (e.g. header footer).
  2. Identify common layouts (e.g. sub-pages with navigation, single column, two-column, etc.).
  3. Identify common templates (e.g. pages with the same components on them).
  4. Identify components of a template (e.g. menu, list of content etc.).
  5. Identify component behavior: 
    1. Reusable
    2. Content driven
    3. User editable
    4. Personalization