StructureCMS

April 14, 2015

Sitefinity First Thoughts

Filed under: .net, Programming — joel.cass @ 4:06 pm

I have been playing with Sitefinity for the last 2 weeks or so. Being from a Sitecore background I must say that it has been difficult to adjust, to say the least.

While not as slick, Sitefinity is a pretty capable content management system. It allows the website to be built from scratch without any HTML development, which is great, as long as you’re not working with a design company that is delivering HTML they want you to implement :)

So we enter the world of HTML rendering and development in Sitefinity, which unfortunately, is not so good.

There is basically no framework available for developing pages. It would be great if they copied the templates / sublayouts system in sitefinity, where placeholders could be used to define editable areas, and the areas configured in the parent template roll through to the children.

Sitefinity seems to take a “one size fits all approach”, which means that you have to use their modules, their styles, their naming conventions, their CSS.

So, what if:

  • You have an editable content area that appears in the navigation dropdown?
  • You have a responsive design that has been delivered with their own styles and contexts?
  • You only want to configure the navigation / css / and content that appears on all pages in one place?

None of these seem possible. Placeholders are only possible when put within master templates or using their bizarre patterns for layout widgets. It’s not as simple as putting an tag wherever you want.

Say that you have 3 templates – one for home, one for landing page, one for content. Essentially they all use the same outer elements – navigation, imagery, breadcrumbs. But the content layout changes – home is a complex layout, landing is one column with no side navigation, and the content page is two columns, with the left being a floating column.

I was hoping that I could either

  • Create a master page that has the outer elements configured and then implement the different layouts using nested master pages – not possible – even worse, the elements in the parent master page are no longer configurable
  • Use Layout Widgets to implement the different layouts – while this sort of worked I was unable to assign an ID to the element meaning the CSS would need hacking
  • Share configured ares between templates – I couldn’t find anything about it

So, what I’ve had to to is create 3 different master pages, that all need their own configuration. Not impressed so far.

Next, we’re onto integrating our Active Directory with Sitefinity. We were hoping that if the permissions were granted to certain roles, then they would be able to access the administration. But no, instead actual Sitefinity roles needed to be mapped to our equivalent roles and initialised upon startup, which was really frustrating.

And then we wanted to get onto creating our own role and membership providers because, surprise surprise, Sitefinity could not integrate with 2 different LDAP providers at the same time (which I admit is an edge case). We tried the ‘Data’ providers as recommended by Sitefinity and it was a living hell – because they were LINQ providers talking to a non-SQL platform, running a query to get a single user would get all (22,000+) records and then filter them down to one user – very ineffective. Furthermore only the membership provider was documented, the roles provider didn’t work and needed hacking, as discovered by other poor users.

In the end, implementing the standard ASP.net patterns for security providers worked, and it worked well. Heaven knows why the developers are recommending the implementation of data providers.

At any rate we have no choice but to keep rolling with the punches. I feel that choosing Sitefinity may not have been the best choice, but I’m hoping that this is just the usual sort of trouble that is experienced with new software and once we’re used to it, working with Sitefinity will be much easier than it is right now.