This post is a collection of ideas and options for you to pick from to help your Sitefinity projects run faster. Some are actualy Sitefinity specific. Some are for when developing. Some are for production. Most can be applied to any website. This post focuses around resource loading. A second post will look at a varity of things.
When creating your own widgets one thing you don't want is if it throws an error to 500 the whole page. Maybe you do? This post is for those that don't want that but prefer to display something a bit more friendly and are looking for help tracking those, 'only happens in production with a random customer', errors.
Upgrading Sitefinity continues to improve. Back in the day, it was best to upgrade by each major version. Then NuGet packages came along and support for upgrading multiple major versions was supported. Now we have CLI and as of 13.1 it is quite robust and the way going forward I think.
Capturing error information is an important requirement. Sitefinity puts these into log files by default but that is not so handy when you have to navigate to the server to get them. Worst when you are in a load balanced environment. Elmah is an option but has its downside. You can craft your own or you can use a little Sitefinity secert.
A decade or so ago we used to create a physically different website for mobile devices. Then media queries and responsive design came along and we were able to adjust our layouts to fit the screen in one site. A problem we can still come across though is around the performance of that site on devices with slower internet connections and less horsepower. At least for those few of us who can not afford a $1500 smart device.
The eCommerce module in Sitefinity has long been a bit of a bugbear for them. They never intended to move it to feather and got others to create integrations as a preference. I originally created MVC feather widgets for the module and used them on this site for a few years but now I have upgraded and done an integration with Snipcart.
Creating Sitefinity Add-ons is a great idea and feature. It allows you to bundle up parts of your Sitefinity development into a Nuget package and distrubite it. I had a feature that I was keen to export but I soon realised there was a big cavert which caused me a bit of dejection around it.
Spam, spam, spam. Something we have to deal with eventually when we allow people to make comments on our website. Akismet offers a good service for identifying spam comments for you. In this post I have a look at implementing it in Sitefinity and customising the comments module.
For as long as I have been using Sitefinity I have never come across this scenario. A custom or dynamic long text field where the selected Sitefinity page URL renders out as a GUID. Turns out, that I should have always had a utility function wrapping my fields before I render them out.
Recently I used the RelativeRoute attribute on my custom widget controller like I had many times before. But this time the functionality just did not work. I got 404 errors and it only worked if I hard coded the page name into my relative route. To make matters worse when I deployed it to my server it did work. If others got the project and tested it, it failed for them too. If I tested other projects where I used the RelativeRoute attribute they still worked. I racked my brain but really had no explanation.
Google reCaptcha is a popular tool to help secure our forms against spam bots. Often email services will check our forms to ensure we have one present and you may be asked for one to be added. That happened to me. Sitefinity has its own forms and reCaptcha tools but often I find myself creating my own custom form widgets to quickly get the requirement that I have been asked to develop. In this post I look at how to get one added to a custom form you may have created in Sitefinity.
Sitefinity has a few hidden gems and helpful utilities which are very handy to know about. It would be nice if they had a page listing these out. Recently I needed a list of countries. I knew the eCommerce module dealt with such a list so where was it? I went looking and found not only the list but a little bit extra.