One of the coolest things with XSLT (as an opinion from a .NET developer) is the ability to consume .NET methods and rich functionality from within your XSLT templates. In most cases you won't need this functionality if the XSLT template is only working with outputting published data from content or media. However, in other cases, you may need to access external data or gain access to transformations that are simply not possible to accomplish with XSLT 1.1 alone.
Enter XSLT extensions! As with most custom functionality, XSLT extensions require a bit of configuration and coding to get started. The short of it is this:
Sounds easy, right? It really is, because even the last item is done for you automatically when you create new XSLT templates from the backoffice (for ones that are created after you add an extension library). Roll up your sleeves and create a simple extension. Listing 12-14 covers the basics of the public class and has but one method in it for the purposes of this example. The use case for this example may be that you are trying to figure out how many days old a particular page is and display that in the footer of each page.
LISTING 12-14: XsltExtensions.cs ...