Gambar diambil dari sini |
Microsoft telah memiliki model pemrograman web yang sudah matang dan banyak digunakan untuk mengembangkan berbagai macam aplikasi web. Model pemrograman ini lebih dikenal dengan nama Web Form. Lalu kenapa Microsoft mengeluarkan model pemrograman baru yaitu ASP.NET MVC?
Jawabannya terletak kepada perbedaan-perbedaan mendasar yang terdapat antara keduanya. Masing-masing memiliki keunggulan dan kelemahan. Dan yang jelas masing-masing memiliki pendukung dalam komunitas pemrograman web. Tabel berikut ini menjabarkan perbedaan- perbedaan antara Web Form dan ASP.NET MVC secara rinci.
Web
Form
|
ASP
.NET MCV
|
Web Form
menggunakan page- controller , dimana setiap request akan
di-handle oleh sebuah page yang filenya ada secara fisik.
|
ASP.NET MVC
menggunakan central-controller , dimana setiap request akan
di-handle oleh sebuah objek logical berupa Controller.
|
Form
server-side dalam Web Form secara default akan melakukan post-back
terhadap page itu sendiri.
|
Skenario
posting sebuah form selalu ditujukan kepada Controller.
|
Page bisa
digunakan untuk menampilkan informasi kepada user, sekaligus juga
mengerjakan logic proses bisnis.
|
Tampilan dan
logic proses bisnis terpisah dengan jelas dalam dua komponen View
dan Model.
|
Web Form
mengemulasikan sifat statefull ke dalam model pemrograman web agar
bisa menerapkan rich client behavior . View-state diperlukan untuk
mendukung mekanisme ini.
|
ASP.NET MVC
menerima apa adanya protokol HTTP yang stateless dan menjadikan
model pemrogramannya menyesuaikan terhadap hal ini. View-state pun
tidak diperlukan lagi.
|
Web Form
menerapkan abstraksi component-model dimana mekanisme pemrograman
web dibungkus dalam komponen- komponen yang bisa mempercepat
pengembangan aplikasi.
|
ASP.NET MVC
lebih dekat kepada pemrograman web yang native seperti yang
terdapat dalam ASP klasik, PHP, dan Ruby on Rails. Developer
memiliki keleluasaan untuk melakukan sesuatu dalam model
pemrograman yang bersifat native
|
Web Form bisa
di-test menggunakan berbagai macam metode testing yang ada seperti
unit testing maupun web testing. Walaupun Web Form bisa digunakan
dalam Test Driven Development (TDD), namun dalam pelaksanaannya
akan terasa lebih sulit.
|
ASP.NET MVC
lebih cocok untuk TDD karena kejelasan tugas dan tanggung jawab
masing-masing komponennya disamping telah dirancang untuk lebih
mudah dilakukan unit testing terhadapnya.
|
Keberadaan Web
Form yang sudah lama menyebabkan banyak komponen, control, tool,
dan sub-framework yang telah dibuat di atasnya. Hal ini tentu saja
sangat bagus untuk mengembangkan program web yang bersifat Rapid
Application Development (RAD).
|
Kemunculan
ASP.NET MVC yang belum lama menyebabkan belum banyak komponen,
tool, dan sub- framework yang bisa bekerja di atasnya. Hal ini
bisa menjadi salah satu tantangan untuk mengembangkan aplikasi RAD
terutama dalam aplikasi-aplikasi Line of Business (LOB).
|
Seperti yang kita lihat dalam tabel di atas, baik Web Form maupun ASP.NET MVC memiliki kelebihan dan kekurangan masing-masing yang mendukung kecocokannya untuk diterapkan terhadap program web tertentu. Banyak developer yang menyukai Web Form, namun banyak juga yang lebih memilih arsitektur MVC.
Sebelum kemunculan ASP.NET MVC, arsitektur MVC telah diterapkan dalam framework Ruby on Rails dan Django. Popularitas arsitektur MVC mulai mendapatkan perhatian besar terutama sejak munculnya Ruby on Rails. ASP.NET MVC muncul sebagai solusi yang disediakan Microsoft bagi para developer yang menyukai arsitektur MVC dan juga scripting, termasuk bagi para developer PHP, Ruby on Rails, dan Django.
Sebagai kesimpulan, Web Form dan ASP.NET MVC memiliki beberapa perbedaan mendasar yang membuat masing-masing lebih cocok untuk diterapkan dalam skenario tertentu. ASP.NET MVC juga merupakan dukungan Microsoft terhadap arsitektur MVC yang disediakan bagi para developer yang lebih menyukai arsitektur ini dan juga scripting, seperti para developer PHP, Ruby on Rails, dan Django.
Sumber :
Suhanto, Agus. ebook : Mengenal ASP.NET MVC Edisi Beta
Mumet.. Ada penjelasan yang lebih sederhana?
ReplyDeleteGak udah coding bro. Kasih vendor aja kalo mau simple. Haha
DeleteMungkin simple nya begini, oop belum tentu mvc , tapi mvc sudah pasti oop ..webform menurut saya lebih ke implementasi oop saja, tapi asp dot net mvc sudah implementasi oop dan mvc..tapi yg masih aneh buat saya sampe sekarang kenapa para developer dot net lebih suka pakai web form dari pada mvc ?? #CMIIW
Delete