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.

Choosing the right project type for Kentico

If you are deploying to Kentico Web App vs Website: Which One Is Best? article to decide what's right for you.

Choosing the right development model

We suggest using the portal engine or the MVC development models. The ASPX or ASPX + portal engine development models should only be used in special cases. If you decide to use them, make sure you understand their shortcomings. We highly recommend reading the Choosing the right development model documentation for more details, but here are some key takeaways for each of the supported development models:

Portal engine

When it is crucial:

  • You need functionality provided only by the portal engine (e.g., certain online marketing and e-commerce features).

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:

  • It is the best supported development model.
  • Most projects are currently built with this model.
  • Scenario: Rapid-build, e-commerce site with personalization

MVC

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 model broadly prevents business users from implementing dynamic features without developer assistance.
  • This is the direction most of .NET web site development is heading.
  • Scenario: Mobile application

ASPX Template

When it is crucial:

  • You have an existing ASPX site and time and cost considerations prevent you from redeveloping.

When it is beneficial:

  • You need better control over the HTML.
  • You need control over page template life-cycle.
  • Scenario: Re-platform a legacy site

ASPX + PE (mixed mode)

When it is crucial:

  • You need to add portal engine specific functionality to an existing ASPX template.
  • Scenario: Adding flexibility to traditional implementation

Finding the right component

To help you understand how to convert static HTML into Kentico components (for Portal Engine, ASPX Templates and PE+ASPX), take a look at this table with some examples:

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.).
    1. Reusable
    2. Content driven
    3. User editable
    4. Personalization