Web Form dan ASP.NET MVC merupakan dua arsitektur berbeda yang disediakan oleh ASP.NET. Bagi programer yang sudah lama berpengalaman dalam Web Form mungkin bertanya apa perbedaan antara Web Form dan ASP.NET MVC. Sedangkan bagi programer yang baru mungkin dihadapkan kepada pilihan apakah akan menggunakan Web Form atau ASP.NET MVC. Berikut beberapa poin perbedaan antara keduanya.
Web Form menggunakan page-controller, dimana setiap request akan di-handle oleh sebuah page. Skenario post-back pada sebuah page akan di-handle oleh page itu sendiri. Page itu sendiri juga bertanggung jawab dalam menampilkan informasi kepada user.
ASP.NET MVC menggunakan central-controller, dimana setiap request akan di-handle oleh sebuah objek controller bukan berupa page. Controller ini akan memanipulasi model, kemudian akan memberikan model tersebut kepada objek view untuk ditampilkan kepada user.
Secara natural protokol HTTP yang digunakan dalam web bersifat sateless. Web Form mencoba mengemulasikan sifat statefull ke dalam model pemrogramannya agar bisa menerapkan rich client behavior. Emulasi ini membutuhkan mekanisme seperti view-state.
ASP.NET MVC mengadopsi sifat stateless dalam protokol HTTP, dan menjadikan model pemrogramannya aware terhadap hal ini. Oleh karena itu emulasi sifat statefull dalam ASP.NET MVC tidak ada, sehingga mekanisme pendukungnya seperti view-state pun tidak dijumpai lagi.
Test Driven Development (TDD) adalah salah satu proses yang saat ini sedang populer di kalangan IT, terutama oleh para pengadopsi metodologi agile. Oleh karena pembagian tugas dan tanggung jawab yang jelas antar komponennya, ASP.NET MVC telah dirancang untuk lebih mudah digunakan dalam TDD dibandingkan Web Form.
Web Form telah ada dan populer selama bertahun-tahun sebelum kemunculan ASP.NET MVC sehingga saat ini banyak komponen, control, tool, dan sub-framework yang dibuat di atasnya. Untuk aplikasi bisnis yang membutuhkan RAD (rapid application development), saat ini dukungan terhadap Web Form masih lebih banyak dibandingkan dengan ASP.NET MVC.
![Icon Mengenal ASP.NET MVC Edisi 1 [Icon: Mengenal ASP.NET MVC Edisi 1]](http://geeks.netindonesia.net/photos/suhanto/images/80208/original.aspx)
Note: posting ini adalah bagian dari content e-book "Mengenal ASP.NET MVC Edisi 1" yang akan terbit pertengahan Desember 2008. Silakan comment dan feedback untuk membuat content e-book tersebut lebih mudah dimengerti, mengena dan bermanfaat.