Ideas from other projects

57 views
Skip to first unread message

Matthew Bonner

unread,
May 12, 2015, 8:34:23 AM5/12/15
to silverst...@googlegroups.com
As some of you know I've been working with ASP.NET 5 and C# and as a result I've been building websites using Kentico so I was wanting to share some bits from what I like about Kentico.

First off, Kentico works in a very similar way to SilverStripe when it comes to routing, however one thing I like about Kentico is that when you create pages within the CMS you don't just have the ability to specify which controller you would like to use, you can also specify the action and the rendering engine to use for that particular node of the tree.

You also have the option to check in and check out pages out the box, this is disabled by default but it is quick and easy to turn this on.

The one thing I dislike about Kentico is that it is trying to work towards being able to build a website without ever having to write any code, while Kentico is fast and scalable, from an enterprise point of view it would be better to code some of changes that you can make by clicking around in the Kentico CMS.

With working on ASP.NET 5 the team are moving away from scanning all directories (and assemblies) and moving towards specifying where to look for things such as controllers and views. I think for the bigger websites, it would be much better to register where to search for controllers and views, which would make the dev build and rendering much faster, this isn't a huge breaking change as you can still register all paths if you wish by specifying the document root if you wish.

I'm wondering if we can look at what other solutions are doing and implement some of what they are doing into SilverStripe?

If you have any questions regarding Kentico, ASP.NET 5 or anything such feel free to ask.

Ingo Schommer

unread,
May 13, 2015, 6:15:46 AM5/13/15
to silverst...@googlegroups.com
Hey Matthew,

Thanks for sharing your insight from another product!

- Routing directly to controller actions: I think that'll weaken the current convention of "method name = routing path", and complicate the already complex $allowed_actions logic. Why do you think that level of control in routing is an advantage?
- Checking out pages: I'd rather see "optimistic locking" where you're made aware that another author has started editing a page (there's modules for that already). Did you find content authors to like this checkout feature?
- Registering controller and view directories explicitly: Did you have trouble with the template inheritance chain in SilverStripe? Or is this mainly motivated by performance needs? I think in terms of directory structure, convention trumps configuration - you want other SilverStripe devs to be able to jump into any SilverStripe codebase quickly, and that's a key aspect for me.

Ingo


--
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to silverstripe-d...@googlegroups.com.
To post to this group, send email to silverst...@googlegroups.com.
Visit this group at http://groups.google.com/group/silverstripe-dev.
For more options, visit https://groups.google.com/d/optout.



--
Ingo Schommer | Solutions Architect
SilverStripe (http://silverstripe.com)
Mobile: 0221601782
Skype: chillu23

Matthew Bonner

unread,
May 13, 2015, 6:27:49 PM5/13/15
to silverst...@googlegroups.com
Kentico can be set to inherit the default action from the parent, so if the top level page is set to use the action Index then the children under it which don't override the action will use the default action of Index.

This means when you add a new page, it will use the action Index by default. However, if you want to change the functionality of that page without changing the URL you can simply select a different action.

Not only that, it makes for cleaner URL's too, as the action does not need to be in the URL, so you can give your actions sensible names that match the naming convention used within your API and the URL can remain user-friendly and consistent.

It is hard to see the benefit of such a system until you use it, Kentico is a really powerful and customisable CMS and it makes very few assumptions on what you will want to do with it.

One of the biggest clients we work with have a structure in place which allows for pages to be locked out, and if the page is not checked back in within a number of days the page is automatically checked in again, but the checked in page does not get published because it goes through a workflow. Not only that, you can assign priviledges to force check in a page so that if someone is off ill an administrator can check in the page so that you can work on it. We find most of our multinational clients prefer to have a facility which allows for checking out content to avoid people working on the same content at the same time.

Don't get me wrong I love the way SS finds controllers and views, I just find the performance is a real drag.To give you an idea of the size of one of the websites I'm working with (which is typical in size for the websites I'm working with), this particular website contains over 22,000 files, and the whole thing grinds to a hault. We have split out the models into their own web application despite there only being 249 models, we did this for a number of reasons and performance was one of them. We have around 300 controllers and around 600 templates, so when you combine all of this together SilverStripe takes around 30 minutes to complete a dev build and around 8 seconds a page load on Windows. We use caching heavily, but there are some pages which are not practical to cache such as the news search results. Having the ability to register where to look for controllers and where to look for views would be a huge performance gain when building websites of this size.

Another website I work with has over 100,000 files in it, the problem with this website is that the uploads are stored in the website, but the previous example I mentioned doesn't even support uploading files, and both these websites grow on a daily basis. One of our websites databases grows by around 1 million rows a week, and again SS is not scaling very well so to make it a more robust solution as much as I like scanning all directories we have to move away from scanning every file and folder because it is not futureproof.
Message has been deleted

Matthew Bonner

unread,
May 13, 2015, 7:10:13 PM5/13/15
to silverst...@googlegroups.com
I should probably stress that we shouldn't all now rush out and buy Kentico because it is damn expensive and isn't written in PHP.

One thing I hate about Kentico is the scaffolding, you either have a massive starter project or nothing at all, this is where SilverStripe shines I think because it isn't overwhelming when you first download SilverStripe and you can jump right in with ease.
Reply all
Reply to author
Forward
0 new messages