Arsip

Archive for Juni, 2010

ASP .NET MVC

8 Juni 2010 2 komentar

Model-View-Controller (MVC) merupakan pola arsitektur yang memisahkan aplikasi menjadi tiga komponen utama yaitu: model, view(tampilan), dan controller. Framework ASP.NET MVC menyediakan pola alternatif untuk ASP.NET Web Form dalam menciptakan aplikasi Web berbasis MVC. Framework ASP.NET MVC ini sangat ringan dan telah teruji dengan baik (seperti pada aplikasi berbasis Web Form) serta terintegrasi dengan fitur ASP.NET yang ada, seperti halaman induk(Master-Page) dan otentikasi berbasis keanggotaan(Membership). Kerangka MVC didefinisikan dengan nama System.Web.Mvc dan merupakan fundamental serta nerupakan bagian dari namespace System.Web.

MVC adalah pola desain standar yang banyak digunakan dan cukup dikenal dikalangan developer. Beberapa jenis aplikasi Web akan mendapatkan keuntungan dari Framework MVC ini. Orang lain akan terus menggunakan pola aplikasi ASP.NET tradisional yang didasarkan pada Web Form dan Postbacks. Dan jenis lain dari aplikasi Web akan menggabungkan dua pendekatan, pendekatan tidak mengecualikan yang lain.

Kerangka MVC mencakup komponen-komponen berikut:

Model-View-Controller

  • Model. Model objek merupakan bagian dari aplikasi yang mengimplementasikan logika untuk aplikasi dan domain data. Sering kali, objek model ini merupakan struktur dari model yang terdapat dalam database. Sebagai contoh, sebuah objek Produk bisa mengambil informasi dari database, memanipulasinya, dan kemudian menulis informasi yang diperbarui kembali ke tabel Produk di SQL Server. Dalam aplikasi kecil, model sering merupakan pemisahan konseptual daripada sebuah fisik. Sebagai contoh, jika aplikasi hanya membaca data menetapkan dan mengirimkannya untuk melihat, aplikasi tidak memiliki lapisan model fisik dan kelas-kelas yang terkait. Dalam hal itu, himpunan data mengambil peran objek model.
  • View. View(Tampilan) merupakan komponen yang menampilkan aplikasi antarmuka pengguna (UI). Biasanya, UI diciptakan dari model data. Sebuah contoh akan menjadi mengedit tampilan dari sebuah tabel Produk yang menampilkan kotak teks, drop-down daftar, dan kotak cek berdasarkan kondisi saat ini dari obyek Produk.
  • Controllers. Controller merupakan komponen yang menangani interaksi pengguna, bekerja dengan model, dan akhirnya pilih tujuan untuk membuat yang menampilkan UI. Dalam aplikasi MVC, melihat hanya menampilkan informasi; controller menangani dan merespon input pengguna dan interaksi. Sebagai contoh, controller menangani query-string nilai-nilai, dan melewati nilai-nilai ke model, yang pada gilirannya query database dengan menggunakan nilai-nilai tersebut.

Pola MVC ini akan sangat membantu Anda dalam membuat aplikasi yang memisahkan berbagai aspek aplikasi meliputi(logika input, logika bisnis, dan logika UI), dan memberikan kopling longgar antara unsur-unsur tersebut. Pola ini menentukan di mana masing-masing jenis logika harus ditempatkan dalam aplikasi. Logika UI termasuk dalam view. Input logika termasuk dalam controller. Bisnis logika termasuk dalam model. Pemisahan ini akan membantu Anda dalam mengelola kompleksitas ketika Anda membangun aplikasi, karena memungkinkan Anda untuk tetap fokus pada satu aspek dari pelaksanaan pada satu waktu. Sebagai contoh, Anda dapat fokus pada tampilan tanpa tergantung pada logika bisnis.

Selain mengelola kompleksitas sebuah aplikasi, Framework MVC juga dapat membuat arsitektur applikasi dan pengujian applikasi menjadi lebih mudah dibandingkan dengan pola Web Form yang berbasis pada Web ASP.NET. Sebagai contoh, dalam aplikasi Web berbasis ASP.NET Web Form, sebuah kelas tunggal digunakan baik untuk menampilkan output maupun untuk merespon input pengguna. Menulis tes otomatis untuk aplikasi ASP.NET Web Form dapat menjadi kompleks, karena untuk menguji setiap halaman, Anda harus instantiate kelas halaman, semua kontrol anaknya, dan tergantung kelas tambahan dalam aplikasi. Karena begitu banyak kelas yang dipakai untuk menjalankan halaman, akan sulit untuk menulis tes yang secara eksklusif memfokuskan pada bagian-bagian individual aplikasi. Pengujian aplikasi ASP.NET Web Form dapat lebih sulit diterapkan daripada tes dalam aplikasi MVC. Selain itu, tes dalam aplikasi Web Form ASP.NET memerlukan server Web. Framework MVC memisahkan komponen dan memanfaatkan antarmuka dengan baik, yang memungkinkan untuk menguji komponen individu di isolasi dari sisa Framework.

Pemisahan antara tiga komponen utama aplikasi MVC juga mempromosikan pembangunan secara paralel. Misalnya, programmer pertama dapat bekerja pada sisi tampilan(View), dan programmer kedua dapat bekerja pada logika controller, dan programmer ketiga dapat fokus pada logika bisnis dalam model.

Memutuskan Kapan Buat Aplikasi MVC

Sebelum anda memutuskan membuat arsitektur Applikasi Web, Anda harus mempertimbangkannya dengan hati-hati apakah untuk mengimplementasikannya menggunakan Framework ASP.NET Web Form atau ASP.NET MVC. Framework MVC tidak menggantikan model Web Form, Anda dapat menggunakan salah satu framework untuk aplikasi Web. (Jika Anda memiliki aplikasi yang ada berbasis Web Form, sebaiknya teruskan menggunakan model Web Form.)

Sebelum Anda memutuskan untuk menggunakan Framework MVC atau model Web Form untuk Applikasi Web anda, sebaiknya anda mempertimbangkan keuntungan dan kelemahan dari pendekatan masing-masing.

Keuntungan dari sebuah Aplikasi Web-Based MVC

Kerangka ASP.NET MVC menawarkan keuntungan sebagai berikut:

  • Mempermudah pengelolaan kompleksitas applikasi dengan membagi aplikasi ke dalam model, tampilan, dan controller.
  • Tidak menggunakan tampilan bentuk state atau form berbasis server. Hal ini membuat Framework MVC sangat ideal untuk programmer yang ingin kontrol penuh atas perilaku aplikasi.
  • Menggunakan pola Front Controller bahwa proses permintaan Web aplikasi melalui pengontrol tunggal. Hal ini memungkinkan Anda untuk merancang sebuah aplikasi yang mendukung infrastruktur routing.
  • Menyediakan dukungan yang lebih baik untuk pengembangan ujicoba langsung (TDD).
  • Bekerja dengan lebih baik untuk aplikasi Web yang didukung oleh tim besar pengembang dan desainer web yang membutuhkan tingkat kontrol yang tinggi terhadap perilaku aplikasi.

Keuntungan dari Aplikasi Web-Based ASP .NET Web Form

Framework berbasis Web Form menawarkan keuntungan sebagai berikut:

  • Mendukung model berbasis event yang disediakan dalam state melalui HTTP, yang menguntungkan line-of-bussiness pengembangan aplikasi Web. Penggunaan Framework berbasis Web Form jug menyediakan banyak event dan didukung oleh ratusan kontrol server.
  • Menggunakan pola Page Controller yang menambahkan fungsionalitas untuk setiap halaman.
  • Menggunakan view state atau server berbasis Form, yang dapat membuat informasi lebih mudah mengelola state.
  • Ia bekerja dengan baik untuk tim kecil dari pengembang dan perancang Web yang ingin mengambil keuntungan dari banyak komponen yang tersedia untuk pengembangan aplikasi yang cepat.
  • Secara umum, kurang kompleks untuk pengembangan aplikasi, karena komponen (kelas Page, kontrol, dan sebagainya) yang terintegrasi dan biasanya membutuhkan kode kurang dari model MVC.

Fitur dari ASP.NET MVC Framework

Framework ASP.NET MVC menyediakan fitur berikut:

  • Pemisahan tugas aplikasi secara default (logika input, logika bisnis, dan logika UI), testability, dan pengembangan ujicoba langsung (TDD). Semua core dalam Framework MVC adalah antarmuka terdesign dan dapat diuji dengan menggunakan objek tiruan, yang disimulasikan kedalam objek tiruan dari perilaku objek aktual dalam aplikasi. Anda dapat melakukan unit-test aplikasi tanpa harus menjalankan pengendali dalam suatu proses ASP.NET, yang membuat unit pengujian cepat dan fleksibel. Anda dapat menggunakan kerangka pengujian unit kerja yang kompatibel dengan .NET Framework.
  • Sebuah kerangka extensible dan pluggable. Komponen kerangka ASP.NET MVC dirancang sedemikian rupa sehingga dapat dengan mudah diganti atau disesuaikan. Anda dapat melihat plug di mesin Anda sendiri, kebijakan routing URL, tindakan-metode serialisasi parameter, dan komponen lainnya. Kerangka ASP.NET MVC juga mendukung penggunaan Dependensi Injection (DI) dan Inversi dari Control (IOC) model kontainer. DI memungkinkan Anda untuk menyuntikkan objek ke dalam kelas, bukan mengandalkan kelas untuk membuat obyek itu sendiri. IOC menetapkan bahwa jika objek memerlukan objek lain, objek pertama-tama harus mendapatkan obyek kedua dari sumber luar seperti file konfigurasi. Hal ini membuat pengujian mudah.
  • Sebuah komponen pemetaan URL yang kuat sehingga memungkinkan Anda membangun aplikasi yang mudah dipahami dan URL tidak perlu menyertakan ekstensi file-nama, dan dirancang untuk mendukung penamaan pola URL yang bekerja dengan baik untuk optimasi search engine (SEO) dan representational state transfer (REST) addressing.
  • Dukungan untuk menggunakan markup yang ada halaman ASP.NET (. ASPX file), pengguna kontrol (.ascx file), dan halaman master (.master file). File markup sebagai tampilan template. Anda dapat menggunakan fitur yang ada dengan Framework ASP.NET MVC, seperti halaman master bersarang, ekspresi di-line (<%= %>), kontrol server deklaratif, template, data-mengikat, lokalisasi, dan sebagainya.
  • Dukungan untuk fitur ASP.NET yang ada. ASP.NET MVC memungkinkan Anda menggunakan fitur seperti otentikasi bentuk dan otentikasi Windows, otorisasi URL, keanggotaan dan peran, output dan data caching, sesi dan manajemen negara profil, pemantauan kesehatan, sistem konfigurasi, dan arsitektur operator.
Kategori:.NET Framework, MVC