Versi Bahasa Inggris: http://dflying.dflying.net/1/archive/101_prefer_overrides_to_event_handlers_in_aspnet_page.html
Ini adalah metode Page_Load() yang kita kenal. Faktanya, ini adalah Event Handler, yang mulai dijalankan ketika peristiwa Load yang ditentukan di System.Web.UI.Page dipicu.
// gunakan pengendali kejadian
dilindungi kekosongan Page_Load (pengirim objek, EventArgs e)
{
// logika di sini
}
Ini adalah Override metode OnLoad() di kelas System.Web.UI.Page. // gunakan penggantian
penggantian yang dilindungi void OnLoad(EventArgs e)
{
// logika di sini
base.OnLoad(e);
}
Meskipun kedua metode di atas dapat mencapai fungsi yang sama, saya sarankan menggunakan metode Override.
Pertama-tama, mekanisme penanganan event digunakan untuk mengimplementasikan komunikasi antar objek independen. Misalnya, ketika sebuah Tombol diklik, halaman dapat mempelajari pesan ini melalui mekanisme penanganan kejadian dan memprosesnya. Namun dalam contoh ini, acara Load didefinisikan di System.Web.UI.Page dan merupakan bagian dari halaman kita. Ini akan menjadi aneh untuk mengeluarkan sebuah acara dari dalam kelas dan kemudian menangani acara itu sendiri.
Kedua, dari segi efisiensi, penanganan event tidak sebaik Override. Hal ini ditentukan oleh implementasi .NET Framework dan kita semua mengetahuinya.
Selain itu, ada dua hal yang perlu dipertahankan saat menggunakan event: lampiran metode penanganan event dan definisi fungsi penanganan event itu sendiri. Meskipun ASP.NET 2.0 sudah menyediakan beberapa nama metode penanganan kejadian yang telah ditentukan sebelumnya, masih banyak pengembang yang menggunakan ASP.NET 1.1. Saat menggunakan Override, Anda hanya perlu mempertahankan fungsi Override itu sendiri.
Tentu saja, mekanisme pemrosesan peristiwa memiliki kelebihannya sendiri. Misalnya, mudah untuk menentukan metode pemrosesan peristiwa saat runtime, sehingga beberapa metode pemrosesan peristiwa yang didistribusikan di mana pun dapat dieksekusi secara berurutan. Namun kami tidak akan menggunakan fitur ini di halaman ASP.NET. Kami akan selalu memiliki metode untuk menentukan perilaku halaman yang sedang dimuat, dan kami tidak akan memiliki beberapa metode Page_Load() yang muncul pada halaman.
Untuk lebih umum, tidak hanya di halaman ASP.NET, kita juga harus menggunakan Override daripada Event dalam situasi lain sebanyak mungkin.
Saat menggunakan Override, berhati-hatilah untuk tidak lupa memanggil metode kelas dasar (Visual Studio akan melakukannya untuk Anda).
Sumber: BLOG Dflying Chen