|
||
Kentico CMS provides three basic development models and you can choose the one that suits your needs best:
•Portal Engine - this model allows you to build websites using a portal engine. It is the recommended approach for most developers since it doesn't require programming in Visual Studio. Instead, you can simply build websites using web parts in the browser-based user interface.
•ASPX Templates - this model can be chosen by advanced ASP.NET developers who prefer to create websites using standard ASP.NET architecture and using 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 - this option allows developers to create websites or specific pages 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.
We recommend using the portal engine, but if you are an advanced .NET developer or wish to integrate existing functionality built on standard ASP.NET architecture, you may want to use ASPX templates or the MVC development model.
If required, the models can be combined on a single website. For example, you can place documents using ASPX or MVC page templates onto a portal engine website, and even insert custom ASPX pages implementing your own applications. On the other hand, special areas can be defined on ASPX templates which you can edit through the portal engine.
The following table compares the available development models:
|
Portal Engine |
ASPX Templates |
MVC |
How you work |
You build the website and design pages using a browser-based interface.
No programming knowledge is required for common tasks. |
You build ASPX pages (web forms) that are used to display content from Kentico CMS.
At least basic programming knowledge of ASP.NET and either C# or VB.NET is required. |
You implement model objects, MVC controller classes and views for rendering pages.
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 ASPX pages that are part of the web project, so you can also work with their code behind files.
It is also possible to place web parts (which are actually ASCX user controls) on the page templates if the required server control is not available. |
The appearance of pages is defined through MVC views, which are composed of HTML and inline code. The overall logic of pages and interaction with Kentico CMS data can be ensured through the controller and model classes.
The controller and action used when a page is viewed are determined by the corresponding document's MVC page template or its specific URL pattern. |
Master pages and visual inheritance |
Sub-pages inherit content from their parent pages by default (so called "visual inheritance"). The inheritance can optionally be broken if you want to create a page without parent content. |
Page templates may inherit content from a master page, which works just like a standard ASP.NET master page (.master file).
Pages do not inherit content from their parents in the website content hierarchy, they only inherit from the master page (if it is used). |
Content inheritance can be ensured through standard MVC master pages for views (master pages that inherit from the ViewMasterPage class). Nested views and Razor layouts are also supported.
Pages do not inherit content from parents in the website content hierarchy, only from their specific master page or view. |
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.
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 a website. •ASP.NET programming knowledge is not required for common tasks. •You can build the whole website very quickly, using only a web browser. |
•Standard ASP.NET architecture. •You can use your favorite development tools, such as Visual Studio. |
•Model-View-Controller architecture. •The option of using the Razor view engine •Development via standard tools (Visual Studio). |
Disadvantages |
•Proprietary architecture and development process. |
•Requires ASP.NET programming knowledge. •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. •The design of the web pages cannot be managed via the browser‑based administration interface. •Kentico CMS itself is not an MVC application, so you cannot use the built-in set of components and web parts while fully maintaining MVC architecture. |