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.
  • Rapid-build, e-commerce site with personalization

    A partner was building an online store that needed to go live in only 2 months. Given the short time-frame, they opted to use as much built-in functionality as possible to minimize the effort.

    The client's marketing team needed to be able to understand the customer journey from first visit to first purchase. In order to streamline lead identification and simplify the marketing efforts, the client wanted to automate common tasks like processing abandoned shopping carts. Additionally, the client wanted to test multiple versions of a page to determine which versions performed better. The client also wanted to personalize the experience for each visitor based on their site activity.

    These requirements all point to using the portal engine.

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.
  • Mobile application

    A partner was building a highly scalable web application designed primarily to deliver content to a lightweight mobile web site. The frontend required fast response times. The project timeline allowed them to build the frontend from scratch, and the design required the use of the latest frameworks.

    As the client was highly sensitive to security, they wanted the frontend to be hosted separately. In this instance, the business users didn't need to be able to add dynamic features to pages themselves.

    Finally, the partner's developers preferred MVC and were excited to have an opportunity to build a Kentico site with MVC, so they elected to do so.

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.
  • Re-platform a legacy site

    A partner received a project that the client had previously developed internally. The old site was built using ASPX templates because the in-house developer only knew that way of building things.

    It was not feasible to bring all the templates into Kentico, since the client had a low budget and was just trying to get a better interface for managing their content. As such, the partner opted to modify the existing templates to pull content from Kentico using the ASPX development model.

ASPX + PE (mixed mode)

When it is crucial:

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

    A partner inherited a website that was initially developed by another vendor and which was developed with the ASPX development model. The client wanted to let business users modify some parts of the pages and add personalization to the web site.

    Therefore, rather than rebuilding the necessary templates in the portal engine, the partner updated the necessary templates to have portal engine zones that allowed the business users to make the required changes.

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:

Functionality Component examples
Structured data display repeater, datalist, grid, universal viewer etc. 
Unstructured data display editable region, static html, static text etc.
User input online-form, rating, poll, forum etc.
Interaction login form, search, newsletter subscription etc.
Layout  columns, 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