Bagikan melalui


Gambaran Umum MVC ASP.NET

oleh Microsoft

Pelajari tentang perbedaan antara aplikasi MVC ASP.NET dan aplikasi ASP.NET Web Forms. Pelajari cara memutuskan kapan harus membangun aplikasi MVC ASP.NET.

Pola arsitektur Model-View-Controller (MVC) memisahkan aplikasi menjadi tiga komponen utama: model, tampilan, dan pengontrol. Kerangka kerja MVC ASP.NET menyediakan alternatif untuk pola ASP.NET Web Forms untuk membuat aplikasi Web berbasis MVC. Kerangka kerja MVC ASP.NET adalah kerangka kerja presentasi yang ringan dan sangat dapat diuji yang (seperti halnya aplikasi berbasis Formulir Web) terintegrasi dengan fitur ASP.NET yang ada, seperti halaman master dan autentikasi berbasis keanggotaan. Kerangka kerja MVC didefinisikan dalam namespace System.Web.Mvc dan merupakan bagian mendasar yang didukung dari namespace System.Web .

MVC adalah pola desain standar yang sudah dikenal banyak pengembang. Beberapa jenis aplikasi Web akan mendapat manfaat dari kerangka kerja MVC. Yang lain akan terus menggunakan pola aplikasi ASP.NET tradisional yang didasarkan pada Formulir Web dan postback. Jenis aplikasi Web lainnya akan menggabungkan dua pendekatan; tidak ada pendekatan yang mengecualikan yang lain.

Kerangka kerja MVC mencakup komponen-komponen berikut:

Memanggil tindakan pengontrol yang mengharapkan nilai parameter

Gambar 01: Memanggil tindakan pengontrol yang mengharapkan nilai parameter (Klik untuk melihat gambar ukuran penuh)

  • Model. Objek model adalah bagian dari aplikasi yang mengimplementasikan logika untuk domain data aplikasi. Seringkali, objek model mengambil dan menyimpan status model dalam database. Misalnya, objek Produk mungkin mengambil informasi dari database, mengoperasikannya, lalu menulis informasi yang diperbarui kembali ke tabel Produk di SQL Server.

Dalam aplikasi kecil, model sering kali merupakan pemisahan konseptual alih-alih yang fisik. Misalnya, jika aplikasi hanya membaca himpunan data dan mengirimkannya ke tampilan, aplikasi tidak memiliki lapisan model fisik dan kelas terkait. Dalam hal ini, himpunan data mengambil peran objek model.

  • Tampilan. Tampilan adalah komponen yang menampilkan antarmuka pengguna (UI) aplikasi. Biasanya, UI ini dibuat dari data model. Contohnya adalah tampilan edit tabel Produk yang menampilkan kotak teks, daftar turun bawah, dan kotak centang berdasarkan status objek Produk saat ini.

  • Pengontrol. Pengontrol adalah komponen yang menangani interaksi pengguna, bekerja dengan model, dan pada akhirnya memilih tampilan untuk merender yang menampilkan UI. Dalam aplikasi MVC, tampilan hanya menampilkan informasi; pengontrol menangani dan merespons input dan interaksi pengguna. Misalnya, pengontrol menangani nilai string kueri, dan meneruskan nilai-nilai ini ke model, yang pada gilirannya mengkueri database dengan menggunakan nilai .

Pola MVC membantu Anda membuat aplikasi yang memisahkan berbagai aspek aplikasi (logika input, logika bisnis, dan logika UI), sekaligus memberikan konektivasi longgar antara elemen-elemen ini. Pola menentukan di mana setiap jenis logika harus berada dalam aplikasi. Logika UI berada dalam tampilan. Logika input termasuk dalam pengontrol. Logika bisnis termasuk dalam model. Pemisahan ini membantu Anda mengelola kompleksitas saat membuat aplikasi, karena memungkinkan Anda untuk fokus pada satu aspek implementasi pada satu waktu. Misalnya, Anda dapat fokus pada tampilan tanpa bergantung pada logika bisnis.

Selain mengelola kompleksitas, pola MVC memudahkan pengujian aplikasi daripada menguji aplikasi Web Forms berbasis ASP.NET Web. Misalnya, dalam aplikasi Web ASP.NET berbasis Formulir Web, satu kelas digunakan baik untuk menampilkan output maupun merespons input pengguna. Menulis pengujian otomatis untuk aplikasi ASP.NET berbasis Web Forms bisa rumit, karena untuk menguji halaman individual, Anda harus membuat instans kelas halaman, semua kontrol turunannya, dan kelas dependen tambahan dalam aplikasi. Karena begitu banyak kelas yang dibuat untuk menjalankan halaman, mungkin sulit untuk menulis tes yang berfokus secara eksklusif pada bagian individual aplikasi. Oleh karena itu, pengujian untuk aplikasi ASP.NET berbasis Formulir Web dapat lebih sulit diterapkan daripada pengujian dalam aplikasi MVC. Selain itu, pengujian dalam aplikasi ASP.NET berbasis Formulir Web memerlukan server Web. Kerangka kerja MVC memisahkan komponen dan memanfaatkan antarmuka yang berat, yang memungkinkan untuk menguji komponen individual dalam isolasi dari sisa kerangka kerja.

Konektor longgar antara tiga komponen utama aplikasi MVC juga mempromosikan pengembangan paralel. Misalnya, satu pengembang dapat mengerjakan tampilan, pengembang kedua dapat mengerjakan logika pengontrol, dan pengembang ketiga dapat fokus pada logika bisnis dalam model.

Memutuskan Kapan Membuat Aplikasi MVC

Anda harus mempertimbangkan dengan cermat apakah akan menerapkan aplikasi Web dengan menggunakan kerangka kerja MVC ASP.NET atau model ASP.NET Web Forms. Kerangka kerja MVC tidak menggantikan model Formulir Web; Anda dapat menggunakan salah satu kerangka kerja untuk aplikasi Web. (Jika Anda memiliki aplikasi berbasis Formulir Web yang ada, aplikasi ini terus berfungsi persis seperti yang selalu mereka miliki.)

Sebelum Anda memutuskan untuk menggunakan kerangka kerja MVC atau model Formulir Web untuk situs Web tertentu, imbang keuntungan dari setiap pendekatan.

Keuntungan dari Aplikasi Web MVC-Based

Kerangka kerja MVC ASP.NET menawarkan keuntungan berikut:

  • Ini membuatnya lebih mudah untuk mengelola kompleksitas dengan membalikkan aplikasi ke dalam model, tampilan, dan pengontrol.
  • Ini tidak menggunakan tampilan formulir berbasis status atau server. Ini membuat kerangka kerja MVC ideal untuk pengembang yang menginginkan kontrol penuh atas perilaku aplikasi.
  • Ini menggunakan pola Pengontrol Depan yang memproses permintaan aplikasi Web melalui satu pengontrol. Ini memungkinkan Anda merancang aplikasi yang mendukung infrastruktur perutean yang kaya. Untuk informasi selengkapnya, lihat Pengontrol Depan.
  • Ini memberikan dukungan yang lebih baik untuk pengembangan berbasis pengujian (TDD).
  • Ini berfungsi dengan baik untuk aplikasi Web yang didukung oleh tim pengembang besar dan perancang Web yang membutuhkan kontrol tingkat tinggi atas perilaku aplikasi.

Keuntungan dari Aplikasi Web Forms-Based Web

Kerangka kerja berbasis Web Forms menawarkan keuntungan berikut:

  • Ini mendukung model peristiwa yang mempertahankan status melalui HTTP, yang menguntungkan pengembangan aplikasi Web lini bisnis. Aplikasi berbasis Web Forms menyediakan puluhan peristiwa yang didukung dalam ratusan kontrol server.
  • Ini menggunakan pola Pengontrol Halaman yang menambahkan fungsionalitas ke halaman individual. Untuk informasi selengkapnya, lihat Pengontrol Halaman.
  • Ini menggunakan tampilan formulir berbasis status atau server, yang dapat mempermudah pengelolaan informasi status.
  • Ini berfungsi dengan baik untuk tim kecil pengembang web dan desainer yang ingin memanfaatkan sejumlah besar komponen yang tersedia untuk pengembangan aplikasi yang cepat.
  • Secara umum, kurang kompleks untuk pengembangan aplikasi, karena komponen (kelas Halaman , kontrol, dan sebagainya) terintegrasi erat dan biasanya membutuhkan lebih sedikit kode daripada model MVC.

Fitur ASP.NET MVC Framework

Kerangka kerja MVC ASP.NET menyediakan fitur-fitur berikut:

  • Pemisahan tugas aplikasi (logika input, logika bisnis, dan logika UI), kemampuan pengujian, dan pengembangan berbasis pengujian (TDD) secara default. Semua kontrak inti dalam kerangka kerja MVC berbasis antarmuka dan dapat diuji dengan menggunakan objek tiruan, yang merupakan objek simulasi yang meniru perilaku objek aktual dalam aplikasi. Anda dapat menguji unit aplikasi tanpa harus menjalankan pengontrol dalam proses ASP.NET, yang membuat pengujian unit cepat dan fleksibel. Anda dapat menggunakan kerangka kerja pengujian unit apa pun yang kompatibel dengan .NET Framework.
  • Kerangka kerja yang dapat diperluas dan dapat dicolokkan. Komponen kerangka kerja MVC ASP.NET dirancang agar dapat dengan mudah diganti atau disesuaikan. Anda dapat menyambungkan mesin tampilan Anda sendiri, kebijakan perutean URL, serialisasi parameter metode tindakan, dan komponen lainnya. Kerangka kerja MVC ASP.NET juga mendukung penggunaan model kontainer Dependency Injection (DI) dan Inversion of Control (IOC). DI memungkinkan Anda untuk menyuntikkan objek ke dalam kelas, alih-alih mengandalkan kelas untuk membuat objek itu sendiri. IOC menentukan bahwa jika objek memerlukan objek lain, objek pertama harus mendapatkan objek kedua dari sumber luar seperti file konfigurasi. Ini membuat pengujian lebih mudah.
  • Komponen pemetaan URL canggih yang memungkinkan Anda membangun aplikasi yang memiliki URL yang dapat dipahami dan dapat dicari. URL tidak harus menyertakan ekstensi nama file, dan dirancang untuk mendukung pola penamaan URL yang berfungsi dengan baik untuk pengoptimalan mesin pencari (SEO) dan alamat transfer status representasional (REST).
  • Dukungan untuk menggunakan markup di halaman ASP.NET yang ada (file .aspx), kontrol pengguna (file.ascx), dan file markup halaman master (.master files) sebagai templat tampilan. Anda dapat menggunakan fitur ASP.NET yang ada dengan kerangka kerja MVC ASP.NET, seperti halaman master berlapis, ekspresi sebaris (<%= %>), kontrol server deklaratif, templat, pengikatan data, pelokalan, dan sebagainya.
  • Dukungan untuk fitur ASP.NET yang ada. ASP.NET MVC memungkinkan Anda menggunakan fitur seperti autentikasi formulir dan autentikasi Windows, otorisasi URL, keanggotaan dan peran, pembuatan cache output dan data, manajemen status sesi dan profil, pemantauan kesehatan, sistem konfigurasi, dan arsitektur penyedia.