Here are examples of built in Event Handlers you can extend Esite with:
// Application extensions
EApplication.ApplicationStart()
EApplication.ApplicationReset()
EApplication.ApplicationEnd()
EApplication.GetTransaction(String, String, EUser, Boolean, Boolean, ByRef ITransaction)
EApplication.HttpApplicationInit()
EApplication.HttpRequestBegin
EApplication.RequestEnd
EApplication.LoadedScope
EApplication.SessionEnd
EApplication.SessionStart
EApplication.ExceptionOccured
// Adminpage extensions
AdminPageExtension.AfterPreRender(e As IESiteAdminPage)
AdminPageExtension.AfterLoad(e As IESiteAdminPage)
AdminPageExtension.BeforePreRender(e As IESiteAdminPage)
AdminPageExtension.BeforeLoad(e As IESiteAdminPage)
AdminPageExtension.ExecuteCommand(args As ExecuteCommandEventArgs)
AdminPageExtension.AfterCreateChildControls(e As IESiteAdminPage)
AdminPageExtension.BeforeCreateChildControls(e As IESiteAdminPage)
// ESiteControlExtension
ESiteControlExtension.BeforeLoadPage(control As IESiteControlReference)
ESiteControlExtension.AfterLoadPage(control As IESiteControlReference)
ESiteControlExtension.BeforePreRender(control As IESiteControlReference)
ESiteControlExtension.AfterPreRender(control As IESiteControlReference)
ESiteControlExtension.BeforeRender(control As IESiteControlReference, writer As HtmlTextWriter)
ESiteControlExtension.AfterRender(control As IESiteControlReference, writer As HtmlTextWriter)
// MenuExtension
MenuExtension.AfterPopulateMenu(name As String, menuItems As IEMenuItemCollection, selected As DataObject)
MenuExtension.BeforePopulateMenu(name As String, menuItems As IEMenuItemCollection, selected As DataObject)
// WebAddressModuleExtension
WebAddressModuleExtension.RequestUrl(url As String, displayObject As DataObject)
WebAddressModuleExtension.PageNotFound(url As String)
WebAddressModuleExtension.DisplayUrl(url As String, displayObject As DataObject)