Versão em inglês: http://dflying.dflying.net/1/archive/101_prefer_overrides_to_event_handlers_in_aspnet_page.html
Este é o método Page_Load() com o qual estamos familiarizados. Na verdade, é um Event Handler, que começa a ser executado quando o evento Load definido em System.Web.UI.Page é acionado.
//usa manipulador de eventos
protegido void Page_Load (remetente do objeto, EventArgs e)
{
// lógica aqui
}
Esta é a substituição do método OnLoad() na classe System.Web.UI.Page. //usa substituição
substituição protegida void OnLoad (EventArgs e)
{
// lógica aqui
base.OnLoad(e);
}
Embora ambos os métodos acima possam realizar a mesma função, recomendo usar o método Override.
Primeiro de tudo, o mecanismo de tratamento de eventos é usado para implementar a comunicação entre objetos independentes. Por exemplo, quando um botão é clicado, a página pode aprender esta mensagem através do mecanismo de manipulação de eventos e processá-la. Mas neste exemplo, o evento Load é definido em System.Web.UI.Page e faz parte de nossa página. Seria estranho emitir um evento de dentro de uma classe e depois tratar o evento em si.
Em segundo lugar, em termos de eficiência, o tratamento de eventos não é tão bom quanto o Override. Isto é determinado pela implementação do .NET Framework e todos nós sabemos disso.
Além disso, dois locais precisam ser mantidos ao usar eventos: o anexo do método de manipulação de eventos e a definição da própria função de manipulação de eventos. Embora o ASP.NET 2.0 já forneça alguns nomes de métodos de manipulação de eventos predefinidos, ainda existem muitos desenvolvedores usando o ASP.NET 1.1. Ao usar Override, você só precisa manter a própria função Override.
É claro que o mecanismo de processamento de eventos tem seus próprios benefícios. Por exemplo, é fácil especificar métodos de processamento de eventos em tempo de execução, permitindo que vários métodos de processamento de eventos distribuídos em todos os lugares sejam executados em sequência. Mas não usaremos esses recursos em páginas ASP.NET. Sempre teremos um método para definir o comportamento da página que está sendo carregada e não teremos vários métodos Page_Load() aparecendo em uma página.
Para ser mais geral, não apenas em páginas ASP.NET, também devemos usar Override em vez de Event em outras situações, tanto quanto possível.
Ao usar Override, tome cuidado para não esquecer de chamar o método da classe base (o Visual Studio fará isso para você).
Fonte: Dflying Chen BLOG