Since we now use ASP.NET routing exclusively on the front-end, the manner of generating links has changed from hard-coded strings to querying the route table. This behavior has been centralized in the ILinkBuilder interface and it's LinkBuilder implementation.
LinkBuilder contains a method for generating a link to common resources like products, entities, and topics. It was patterned after the old SE class.
Many of the LinkBuilder methods require an "seName" parameter. The behavior of this parameter has been retained from the SE class: if no value is provided, it will be read from the database. In either case, it will be guaranteed to be a valid SE Name.
If you need to generate SE Names for other reasons, that functionality is now provided via the injectable ISearchEngineNameProvider interface and its SearchEngineNameProvider implementation. Its two methods were taken from the old SE class.
Invoking a product with less than a complete URL
Invoking a product with less than a complete URL is possible as long as the minimum of entity identifier (p, c, s, m etc.) followed by -ID#.aspx are provided.