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.
The new HTTP protocol, HTTP2 is here. You can see it being used on the web if you know where to look. It is something we need to be aware of, understand how it works and how to take advantage of it. For Sitefinity projects we need to consider what we may change in our project structure and processes to address and take advantage of the protocol. First things first, lets briefly discuss what the protocol is, how do we implement it and finally what we need to change to take advantage of it.
When creating a multi-lingual site in Sitefinity it isn't just a matter of adding a language and creating the alternative content. To be truly multi-lingual there are many design considerations you need to consider. As a developer, one of your first considerations is how to set up multiple URLs so that your site will render in different languages.
Recently I had a need to perform some actions after a user had logged out of Sitefinity. Checking the Sitefinity Event Hub list of events I noticed that this event didn't exist. I decided to go looking to see if I could find a way to handle the event and to my surprise I found an undocumented feature.