Development Model Selecttion Feedback

Sharon Parry asked on May 11, 2015 03:46

I know that there have been lots of posts about the various Kentico development models over the years, so forgive that I’m repeating here, but looking for feedback once again from those who use portals and/or aspx.

As a long-experienced asp.net developer, I’ve always used aspx model. From those dark-old-days, I was originally a Visual Basic developer who transitioned across to asp.net c# when it was first introduced in 2002. So, when I first started developing with Kentico in 2004/5 (before the portals development model existed!), it was a much more natural method for me to use the aspx model. And I’ve basically stuck with that ever since. But over the years I’ve read lots of posts from other Kentico specialists who always recommend that the portals model is the best way to go.

I’ve tried out portals mode a couple of times in the past, but found in most cases (unless the site was to be stock-standard-no-customizations-of-any-kind) actual development time was much slower, from receiving the concept files from the designer to having a site ready for actual content creation. Perhaps because I’ve been using Visual Studio since 2002, I find creating the templates and relevant css styles MUCH faster directly in VS.

I’m talking here about a situation where the client NEVER wants to add widgets (or controls, except perhaps for user-controls) to their pages. They are expecting to simply select the relevant page template for the page they are wanting to create (or just “inherit” its page template), and everything is already there setup for them, with no special settings (entered by them) required. The client is expecting that if, in the future after a site is already live, they need some additional controls on a page, they contact the developer to set this up for them. Experience with my own clients has been that this is exactly what they want – ie, they simply want a fool-proof system that they can’t “break” accidentally.

During the last 6 months or so I’ve been working on some projects for another web development company on a contract basis, on existing Kentico websites that they have developed and deployed (all except one of them have been live for a number of years). The reason I was approached about this contract work in the first place was because the one-and-only .net developer they had on staff left the company. All of these sites have been developed using the recommended portals model. All of them have also required a considerable amount of customization – using (for example) a Custom*Provider or similar, which (unless I’m wildly mistaken) you can only do confidently through Visual Studio anyway.

So …

Am I right in assuming:

  1. If the website is unlikely to need any specialized customisation AND the relevant developer has no experience with Microsoft technologies (especially Visual Studio and asp.net), then the PORTALS model is the way to go
  2. HOWEVER, if the developer has enough experience with Microsoft asp.net development AND the client always contacts the developer to add any additional functionality to templates (such as adding widgets or controls to template zones) AND the project requires any sort of customization that is best done through Visual Studio, the ASPX model is the way to go.

Thanks, Sharon

Recent Answers


Charles Matvchuk answered on May 11, 2015 03:55 (last edited on May 11, 2015 04:01)

Sharon, I would not agree with your assumptions.

We do heavy customization and use the Portal Model Only. There is nothing you cannot accomplish in this mode with any customizations, and it makes it very modular. We are .NET Developer's minimum 7 years experience and have found through trial and error that the portals mode is the best way to go.

Once you get used to it and the nuances, making changes, deploying custom libraries and classes, custom modules and custom web parts is quite easy. There is no reason to create any .aspx pages from scratch. Develop .acsx controls and use them on pages, one or many.

Honestly I cannot think of any reason whatsoever to use .aspx templates, and believe me I have tried. You limit your functionality as well.

2 votesVote for this answer Mark as a Correct answer

Brenden Kehren answered on May 11, 2015 04:11

Sharon,

I couldn't agree with Charles more.

I've been working with Kentico since 2008 and being a .NET developer since about 2000, like you starting in VB and VB.net. What I've found is once you know the equivalent of what you're doing in ASPX in Portal mode you won't go back. For instance, I came across something as simple as this in an aspx template:

<cms:CMSRepeater ID="rptListing" runat="server" ClassNames="cms.event" WhereClause="EventDate >= GetDate()">
  <HeaderTemplate>
    <table>
  </HeaderTemplate>
  <ItemTemplate>
   <tr>
     <td><%# Eval("EventTitle") %></td>
     <td><%# Eval("EventDate") %></td>
   </tr>
 </ItemTemplate>
 <FooterTemplate>
   </table>
 </FooterTemplate>  
</cms:CMSRepeater>

This can easily be done by configuring the site using the Repeater web part and a simple transformation vs. writing code. The whole point of web parts is to be reusable.

I've done heavy integration with several systems and have found there really is no need to use ASPX as it just complicates things. One of the most frequent calls I receive is to do upgrades. In most Portal modes, things are pretty smooth. When you add any kind of ASPX development into the mix, it only complicates matters and more opportunity for failure.

Ask any one of the MVP's who work for some great Kentico Partners, they will tell you as well, Portal all the way. Some of them have been working with Kentico since v1 or 2.

If you're looking for some additional reasoning, look me up and I'd be glad to share more with you. I'm all about client experience and using ASPX, really limits their possibilities and makes them more dependent on a developer, which ultimately isn't a good thing for the client.

2 votesVote for this answer Mark as a Correct answer

Chetan Sharma answered on May 26, 2015 11:09

Hi Sharon,

I started developing websites on Kentico two years back. I was back then a Python developer. I had a lot of exposure to web development back then when I started with Zero ".NET" background.

In last two years, we were able to deliver around 15 websites, big and small. Few are that large that they are still under development.

I thank that I didn't know anything when I started due to which I picked Portal Engine as a preferred development model.

95% of the development we are able to achieve is using Out of the box web parts and components.

Now I am convinced that 80% of the functionality on your websites can be straight away achieved using Repeaters and rest with Hierarchical/Universal Viewers.

My team compromise of UI designers/developers and we are able to achieve almost everything. We have not done more than 5% of custom development in last 2 years.

I hope this write-up helps in the smallest possible way to get started with Portal Engine development model.

Regards Chetan

0 votesVote for this answer Mark as a Correct answer

Sharon Parry answered on May 26, 2015 22:46

Thanks to Charles, Brenden and Chetan for your input.

Charles and Brenden, not really sure what you mean by "limit your functionality as well", but I take your points. As a matter of fact, in the past I've been able to demonstrate to potential clients that the advantage of a Kentico system over many other systems is that it is a standard asp.net application, and that any competent .net developer would be able to pick up the Visual Studio project and "run with it". On the other hand, a project (site) that is purely Portals mode will require quite a bit of Kentico-specific knowledge to manage and implement any future modifications.

And Brenden, that is the strangest CMSRepeater I've ever seen! No transformations? You can use web parts in aspx files with transformations exactly as you do in portal files. As a matter of fact, I try to use custom web parts with transformations for custom functionality wherever possible - the power and simplicity of transformations is second-to-none! Perhaps that repeater is an example of something implemented by a .net developer who had no Kentico-specific knowledge, but it also shows that - even though it's a "bad" way to go about things - it IS possible to implement something that your client wants immediately into their .net Kentico project using your standard .net skills.

I agree with your sentiment, Brenden, about forcing clients to become dependent on the developer, but the situation I'm describing here is really where a client WANTS the developer to do everything for them (except actual content creation/editing) - and if the relationship with the client breaks down and they want to move on to another developer, they can simply find a developer with adequate .net skills who can take over the project.

Upgrades - I've upgraded many aspx projects over the years, one or two of them from a version such as 3.1a right the way through to version 7 all at one time, and the only problems I've ever encountered were related to the changes in the Kentico API than to any customizations that I had been implemented. So I'm not sure why you believe upgrading an aspx site is more difficult than upgrading a portals site.

Nevertheless, only last week I've discovered that, when a site/project has been originally developed in portals mode and you want to "upgrade" it, you can just export it from it's current version and then import it into the higher version. There are still a few things you've got to fix up manually, but the whole process was much less time-consuming and painful than having to step through all those "upgrade" procedures - which includes having to have individual VS projects for each version along the way, and "run" the site at each version step to complete the relevant upgrade. I did this with a version 5.5R2 portals site, importing it into the latest version 8.2. The project also has a complex custom module, which required some modifications to the c# code to update various classes and procedures, but as I said, much less time-consuming and painful than actually "upgrading" the original site. AND all the content comes with the import, including all the database records created by the custom module.

0 votesVote for this answer Mark as a Correct answer

Mohamed Rashed answered on July 7, 2015 00:26

I recommend this blog post

0 votesVote for this answer Mark as a Correct answer

   Please, sign in to be able to submit a new answer.