Recent Posts

Apa sih ASP.NET MVC? Part 1

Ketika Microsoft pertama kali memperkenalkan ASP.NET pada tahun 2002, ia memiliki satu model pemrograman yang disebut Web Forms yang memungkinkan pengembang dengan cepat membangun aplikasi web dengan cara yang sudah biasa (bagi mereka yang membangun aplikasi dengan Visual Studio) dan intuitif. Pada saat itu, model Web Forms adalah sebuah terobosan. Meski dalam banyak hal modelnya adalah sebuah Kotak hitam, pasti dipindah-pindahkan keadaan pengembangan web ke depan.

Dalam Formulir Web, halaman web (biasanya) diwakili oleh dua file, satu dengan ekstensi .aspx yang mendefinisikan pengguna antarmuka, dan yang lainnya dengan ekstensi aspx.cs atau aspx.vb (tergantung bahasa server, C # atau VB.NET) yaitu biasa menulis kode untuk menerapkan penangan acara (mis., klik tombol, pilihan daftar item, dll.) dan fungsi lainnya. Selain itu, aplikasi biasanya memiliki halaman bernama Default.aspx yang mewakili home page untuk situs web.

Masalah inheren yang dihasilkan kotak hitam ini (pemisahan kekhawatiran yang buruk, sangat sulit dilakukan secara otomatis pengujian, kontrol minimal pada kontrol server yang diberikan HTML, dll.) telah dikritik selama bertahun-tahun, dan itu dibuka pintu menuju pola dan teknologi pembangunan baru. Sementara MVC bukanlah konsep baru, namun MVC tetap segar hidup untuk ASP.NET bersama dengan kemampuan yang sangat sulit, jika tidak mustahil, dalam Formulir Web.
Bab ini mengenalkan ASP.NET secara umum, model pemrograman Web Forms, ASP.NET Web Pages model, dan ASP.NET MVC itu sendiri, termasuk pola MVC dan ASP.NET MVC 4 history, benefits, features, dan Arsitektur.

Apa itu ASP.NET?

Ada tiga teknologi untuk membangun aplikasi web di ASP.NET:
• ASP.NET Web Forms (model pemrograman asli)
• Halaman Web ASP.NET
• ASP.NET MVC

Kita akan melihat masing-masing dari tiga teknologi ini pada bagian selanjutnya, tapi mari kita bahas dulu ASP.NET platform-yaitu, teknologi substrat yang digunakan oleh semua aplikasi ASP.NET.
Menurut dokumentasi Microsoft (http://bit.ly/ASPNETOverview):

ASP.NET adalah platform Web yang menyediakan semua layanan yang Anda butuhkan untuk membangun kelas enterprise aplikasi web berbasis server ASP.NET dibangun di atas .NET Framework, jadi semua .NET Framework fitur tersedia untuk aplikasi ASP.NET. Aplikasi Anda bisa ditulis dalam bahasa apa saja yang kompatibel dengan runtime bahasa umum (CLR), termasuk Visual Basic dan C #.

Untuk membuat aplikasi ASP.NET Web, Anda dapat menggunakan Visual Studio. Alat dan pilihan dalam Visual Studio yang dirancang untuk membuat aplikasi Web disebut secara kolektif sebagai Visual Web Pengembang Selain itu, produk mandiri gratis - Visual Web Developer Express - tersedia
yang mencakup serangkaian fitur desain Web dari Visual Studio.

ASP.NET menyertakan beberapa fitur berikut:
  • Kerangka kerja halaman dan kontrol
  • Kompilator ASP.NET
  • Infrastruktur keamanan
  • Fasilitas State Management
  • Konfigurasi aplikasi
  • Pemantauan kesehatan dan fitur kinerja
  • Dukungan Debugging
  • Kerangka kerja layanan web XML, yang kemudian digantikan oleh Windows Communication Foundation (WCF)
  • Lingkungan hosting yang dapat diperluas dan manajemen Application Life Cycle
  • Lingkungan perancang yang dapat diperluas
Jadi, kita memiliki lingkungan yang kaya dan kuat dimana kita bisa membangun aplikasi web kita dengan menggunakan bahasa pilihan kita-dan gratis. Di lingkungan ini, kita bisa membangun aplikasi bahkan dengan Notepad, tapi lebih Alat canggih akan meningkatkan produktivitas kita dengan melakukan banyak pekerjaan untuk kita; ya, saya sedang berbicara tentang Microsoft Visual Studio. Ada versi berbayar dari Visual Studio, namun jika uang menjadi masalah, maka Anda bisa menggunakan Web Visual gratis Ekspres pengembang Salah satu manfaat utama ASP.NET adalah perubahan dari kode yang diinterpretasikan, sebelumnya digunakan untuk Classic ASP (model pemrograman sebelum ASP.NET), untuk mengkompilasi kode, memungkinkan aplikasi web  memiliki kinerja yang lebih baik.

Ketika kode kita dalam aplikasi pertama kali disusun oleh compiler bahasa tingkat tinggi (C #, VB.NET, dll), ia menghasilkan Common Intermediate Language (CIL), yang biasa disebut Microsoft Intermediate Language (MSIL) kode (bahasa assembly supercharged dengan banyak vitamin dan mineral). Kode MSIL kemudian diambil oleh .NET runtime untuk menghasilkan kode mesin asli. Aplikasi web yang dibuat dengan ASP.NET dieksekusi oleh .NET Framework, bukan sistem operasi.

Hal ini membuat aplikasi kita aman jenis dan memiliki kelebihan dari pengumpulan sampah memori otomatis. Selain itu, NET Framework menyediakan penanganan error terstruktur dan dukungan multithreading. Akhirnya, informasi tentang kelas, anggota, dan semua kode kita pada umumnya disimpan sebagai metadata di majelis yang dihasilkan pada waktu kompilasi.

Untuk menerapkan aplikasi ASP.NET, Anda dapat menggunakan salah satu teknik berbeda yang tersedia, seperti Web Deploy atau, Metode yang paling sederhana, file copy ke server. Menyebarkan aplikasi ASP.NET adalah proses yang cukup sederhana mengingat itu biasanya .NET Framework sudah terinstal di server (dan jika tidak, itu bisa digabungkan dengan aplikasi kita).

Setelah aplikasi kita berada di server, kita perlu mensetup server web Microsoft, Internet Information Services (IIS), yang akan menghosting semua aplikasi ASP.NET dan melayani aplikasi ke pengguna akhir.

Penting untuk dicatat bahwa ASP.NET sepenuhnya berorientasi objek (OO), artinya tidak hanya kode yang kita tulis tapi juga kode yang mendukung ASP.NET adalah OO. Kode Anda akan memiliki akses penuh ke semua objek di .NET Framework, dan Anda juga dapat menerapkan semua barang dari lingkungan OO (pewarisan, polimorfisme, dan enkapsulasi).

ASP.NET dan .NET Framework telah berjalan jauh sejak rilis pertama ASP.NET, versi 1.0, dan rilis update minor 1.1. Versi 2.0, dirilis pada tahun 2005, menambahkan fungsionalitas yang lebih kaya dengan kontrol baru, halaman utama, tema dan kulit, bagian web, kompilasi lengkap, dan masih banyak lagi fitur lainnya. Setahun kemudian, versi 3.0 menambahkan Windows Communication Foundation (WCF), Windows Presentasi Foundation (WPF), Windows Workflow Foundation (WF), dan Windows CardSpace. Di .NET 3.5 Microsoft menambahkan lebih banyak kontrol dan ASP.NET AJAX sudah terpasang Kerangka kerja, WCF menambahkan dukungan untuk RSS, JSON, POX dan kepercayaan parsial. .NET 3.5 Paket Layanan 1 diperkenalkan Dinamis Data bersama dengan peningkatan untuk AJAX, JavaScript menggabungkan dan ruang nama baru. Versi 4.0, dirilis pada tahun 2010, menambahkan seperangkat fitur baru, seperti caching keluaran yang dapat diperluas, jQuery sebagai pustaka JavaScript default, perutean di kerangka kerja, kontrol ViewState yang jauh lebih baik, dan banyak perbaikan pada fungsi yang ada. Akhirnya yang terbaru versi, 4.5, dirilis pada bulan Agustus 2012, mencakup operasi asynchronous pada permintaan HTTP, tanggapan, modul, dan penangan, kontrol data yang sangat diketik, pengikatan model, validasi yang tidak mencolok, dan HTML5, di antara fitur lainnya.

ASP.NET Web Form

ASP.NET Web Forms memungkinkan Anda membuat aplikasi web dengan cara yang sama seperti membuat Windows tradisional Formulir aplikasi Ini berarti bahwa Anda memiliki antarmuka berbasis kontrol dan dua file berikut untuk setiap halaman:
  • File antarmuka pengguna (UI): Mencakup markup dan merupakan tempat Anda merancang tampilan halaman Anda dan kontrol mana yang akan digunakannya. File ini memiliki ekstensi .aspx.
  • File di balik kode: Meliputi kode yang menangani kejadian dan interaksi semua objek di halaman (kode ini bisa disertakan di halaman .aspx sebelumnya, tapi biasanya ada difile terpisah). File ini memiliki ekstensi yang terkait dengan bahasa pemrogramannya aspx.cs untuk C # atau aspx.vb untuk VB.NET.
Setiap kali ASP.NET memproses halaman, halaman melewati beberapa tahap, yang masing-masing menimbulkan kejadian yang berbeda untuk menangani pemrosesan halaman dan kontrolnya. Anda menulis kode untuk menangani kejadian ini dan meresponsnya berbagai tindakan yang berkaitan dengan pengolahan halaman. Misalnya, Anda mungkin menulis kode yang dipanggil saat pengguna klik sebuah tombol Saat halaman pertama kali diminta, Anda harus menginisialisasi data dan kontrol. Namun, saat halaman posting kembali, Anda tidak perlu menjalankan kode ini Sebuah postback terjadi saat kontrol pada halaman memunculkan sebuah event yang harus ditangani oleh server. Lihat status adalah informasi tentang status kontrol halaman. Setelah setiap postback, status tampilan halaman diubah dengan yang baru status semua kontrol di halaman. Sebagai default, status tampilan halaman disimpan di bidang tersembunyi di dalam setiap halaman (lihat Gambar 1-1), dan ruang lingkup dan umurnya terbatas pada halaman itu miliknya.
Gambar 1-1. Bidang tersembunyi view state

Penggunaan utama view state adalah melestarikan informasi bentuk di postback. Status tampilan dinyalakan secara default dan biasanya serializes data di setiap kontrol pada halaman terlepas dari apakah itu benar-benar digunakan selama postback. Perilaku ini dapat dimodifikasi, bagaimanapun, karena keadaan tampilan dapat dinonaktifkan pada basis per-kontrol, per-halaman, atau keseluruhan server. Selain itu, sebagai tindakan pengamanan, tidak ada informasi sensitif yang harus disimpan dalam keadaan terbuka karena string serial dapat terjadi mudah deserialized.

Untuk bekerja secara efektif dengan Formulir Web, sangat penting untuk memahami peristiwa siklus hidup halaman dan bagaimana mereka melakukannya diproses Tabel 1-1 mencantumkan kejadian ini dan efek yang mereka miliki pada halaman dan kontrolnya.

Table 1-1. Page Life-cycle Events

PreInit Ini adalah kejadian nyata pertama yang mungkin Anda tangani untuk sebuah halaman. Anda biasanya menggunakan acara ini hanya jika Anda perlu secara dinamis (dari kode) menetapkan nilai seperti halaman utama atau tema. Acara ini juga berguna saat Anda bekerja dengan kontrol yang dibuat secara dinamis untuk sebuah halaman. Anda ingin membuat kontrol di dalam acara ini.
 
Init Peristiwa ini menyala setelah setiap kontrol diinisialisasi. Anda dapat menggunakan acara ini untuk berubah nilai inisialisasi untuk kontrol 

InitComplete event ini dinaikkan setelah semua inisialisasi halaman dan kontrolnya telah selesai.
 
PreLoad Peristiwa ini menyala sebelum status tampilan dimuat untuk halaman dan kontrolnya dan sebelumnya pengolahan postback

Load Halaman stabil pada saat ini; itu telah diinisialisasi dan negara telah direkonstruksi.
Kode di dalam acara pemuatan halaman biasanya memeriksa PostBack dan kemudian mengatur kontrol sifat yang tepat Peristiwa muat halaman disebut pertama, diikuti oleh acara beban untuk semua kontrol di halaman web.

Control (PostBack)
event ASP.NET sekarang memanggil acara apapun di halaman atau kontrolnya yang menyebabkan postback terjadi. Ini mungkin acara klik tombol, misalnya.

LoadComplete Event ini terjadi setelah semua data postback dan melihat data negara dimasukkan ke dalam halaman dan setelah metode Load dipanggil untuk semua kontrol pada halaman.

PreRender Gunakan acara ini untuk melakukan pembaruan sebelum kontrol server diberikan ke halaman. Karena semua kontrol server tahu bagaimana membuat dirinya sendiri, peristiwa ini akan terjadi begitu saja Anda dapat mengubah perilaku default.

Render Ini adalah metode objek halaman dan kontrolnya (dan bukan sebuah event). Pada saat ini, ASP.NET memanggil metode ini pada masing-masing kontrol halaman. Metode Render menghasilkan HTML sisi klien, HTML Dinamis (DHTML), dan skrip yang diperlukan dengan benar tampilkan kontrol di browser. Metode ini berguna jika Anda menulis kebiasaan Anda sendiri kontrol. Anda dapat mengganti metode ini untuk mempengaruhi HTML yang dihasilkan untuk kontrol.

UnLoad event ini digunakan untuk kode pembersihan. Anda menggunakannya untuk melepaskan sumber daya terkelola dalam hal ini tahap. Sumber daya yang dikelola adalah sumber daya yang ditangani oleh runtime, seperti contoh kelas yang dibuat oleh .NET CLR.

Aplikasi web ASP.NET berisi beberapa jenis file, dan setiap jenis melayani tujuan tertentu di dalam aplikasi. Tabel 1-2 berisi daftar dan menggambarkan file yang paling penting dalam aplikasi web ASP.NET.

.aspx File ASP.NET Web Forms ini berisi markup (atau UI) dari halaman web dan, secara opsional, kode aplikasi yang mendasarinya aspx.cs atau aspx.vb Ini adalah file di balik kode.

.cs atau .vb Ini adalah file untuk kelas kode umum.

web.config Ini adalah file konfigurasi umum aplikasi. Ini adalah file XML yang berisi semua pengaturan untuk menyesuaikan string koneksi, pengaturan aplikasi, keamanan, rakitan eksternal, memori, manajemen negara, dan sebagainya.

global.asax Dalam file ini, Anda dapat menambahkan kode untuk event handler pada tingkat aplikasi. Acara adalah untuk saat aplikasi mulai atau diakhiri atau saat kesalahan dilempar. Anda juga dapat menentukan Sesi Peristiwa negara untuk saat sesi dimulai atau berakhir.

.ascx Ini adalah file kontrol pengguna. Dalam file ini, Anda bisa membuat potongan kecil dari keadaan sebenarnya UI (misalnya panel alamat yang dapat digunakan kembali) dengan cara yang sama seperti halaman penuh .aspx, namun bedanya adalah bahwa mereka tidak dapat diakses secara langsung dan harus di-host di dalam halaman .aspx. Anda dapat menggunakan kembali kontrol pengguna ini di halaman aplikasi Anda.

.asmxor .svc File ASMX adalah layanan web ASP.NET, perkenalkan di .NET 2.0. File-file ini menyediakan layanan untuk halaman dalam aplikasi atau program lain yang bisa mengaksesnya. Layanan web ASMX adalah sekarang digantikan oleh layanan Windows Communication Foundation (WCF) (diperkenalkan di .NET 3.0), yang memiliki ekstensi .svc dan menawarkan keamanan yang jauh lebih baik dan keamanan fitur skalabilitas.

.master
Halaman Mastermaster seperti halaman ASPX namun digunakan sebagai template untuk halaman lain, memiliki tampilan dan nuansa dan fungsi dasar.

Kita bisa membuat dua jenis aplikasi web ASP.NET di Visual Studio:
  • Situs web ASP.NET
  • Aplikasi web ASP.NET

Situs web lebih disukai dalam skenario tertentu, termasuk yang berikut ini:
  • Anda ingin memasukkan kode C # dan Visual Basic dalam satu proyek web. (Secara default, sebuah web Aplikasi dikompilasi berdasarkan pengaturan bahasa dalam berkas proyek. Pengecualian bisa dilakukan, tapi membuat pengecualian relatif sulit.)
  • Anda ingin membuka situs produksi di Visual Studio dan memperbaruinya secara real time dengan menggunakan FTP.
  • Anda tidak ingin secara eksplisit menyusun proyek untuk menyebarkannya.
  • Jika Anda melakukan precompile situs, Anda ingin compiler membuat beberapa majelis untuk situs ini, yang dapat mencakup satu perakitan per halaman atau kontrol pengguna, atau satu atau lebih majelis per folder.
  • Anda ingin dapat memperbarui file individual dalam produksi hanya dengan menyalin versi baru ke server produksi, atau dengan mengedit file langsung di server produksi.
  • Jika Anda mengkompilasi ulang situs, Anda ingin dapat memperbarui halaman web ASP.NET individual (File ASPX) tanpa harus mengkompilasi ulang keseluruhan situs.
  • Anda ingin menyimpan kode sumber Anda di server produksi karena dapat berfungsi sebagai salinan cadangan tambahan Aplikasi web, di sisi lain, menawarkan fungsionalitas yang lebih baik jika 
  • Anda ingin bisa menggunakan fitur Edit dan Continue dari debugger Visual Studio.
    Anda ingin menjalankan tes unit pada kode yang ada di file kelas yang terkait dengan ASP.NET halaman.
  • Anda ingin merujuk ke kelas yang terkait dengan halaman dan kontrol pengguna
    kelas yang berdiri sendiri
  • Anda ingin membangun ketergantungan proyek antara beberapa proyek web.
  • Anda ingin kompiler membuat satu majelis untuk keseluruhan situs.
  • Anda menginginkan kontrol atas nama perakitan dan nomor versi yang dihasilkan untuk situs ini.
  • Anda ingin menggunakan MSBuild atau Team Foundation Build untuk mengkompilasi proyek. Sebagai contoh, Anda mungkin ingin menambahkan langkah prebuild dan postbuild.
  • Anda ingin menghindari memasukkan kode sumber ke server produksi.
Pilihan penting lain yang harus dilakukan adalah jenis kontrol yang akan kita dapatkan di aplikasi kita. Kita bisa memilih Kontrol HTML atau web server, atau keduanya. Secara umum, halaman Web Forms dapat berisi kontrol dasar seperti <input type = "text" ../>, yang merupakan standar untuk HTML, dan / atau kontrol server web yang lebih hebat seperti <asp: TextBox . . />. Perbedaan antara dua jenis kontrol adalah fungsionalitas. Kontrol HTML terbatas fungsionalitas karena hanya bekerja pada klien (browser), sementara kontrol server web bekerja pada klien dan server Kontrol server web adalah satu-satunya yang dapat diakses di file kode belakang dari halaman web, dan mereka menghasilkan markup HTML yang sesuai saat diberikan ke klien.

Pertimbangkan untuk menggunakan kontrol HTML bila ada kondisi berikut:
  • Anda bermigrasi existing, halaman ASP klasik ke ASP.NET.
  • Kontrol harus memiliki JavaScript sisi klien khusus yang terpasang pada acara kontrol.
  • Halaman web memiliki banyak JavaScript sisi klien yang mereferensikan kontrol.
Dalam hampir semua kasus lainnya, Anda harus mempertimbangkan untuk menggunakan kontrol server web yang lebih kuat, yang mengikuti sebuah Model pemrograman dan standar penamaan mirip dengan Windows Forms. Kontrol web server bisa menghasilkan sangat banyak markup HTML kompleks Misalnya, <asp: Calendar> membuat <table> dengan beberapa elemen <tr> dan <td>.

Kontrol ini juga memiliki manfaat lain, seperti dukungan rendering multi browser, model pemrograman yang hebat, kontrol tata letak, dan dukungan tema.

ASP.NET Web Pages

Halaman Web ASP.NET (sekarang di versi 2) adalah kerangka kerja untuk membangun aplikasi web di mana halaman menggunakan Sintaks Razor.
ASP.NET Razor menggunakan sintaks pemrograman sederhana yang memungkinkan Anda menanamkan kode berbasis server ke dalam halaman web. Pisau cukur halaman menggunakan ekstensi .cshtml atau .vbhtml tergantung pada bahasa pilihannya (C # atau VB.NET). Karena kodenya Disematkan di halaman web, gagasan tentang file di balik kode tidak ada di Razor. Konten di halaman Razor dibuat dengan HTML, dan tidak ada kontrol web server seperti <asp: Button />.

Anda bisa menggunakan Visual Studio untuk membuat ASP.NET Web Pages, namun tool utama yang digunakan adalah Microsoft WebMatrix 2. Dengan WebMatrix 2, Anda memiliki akses ke pembantu web, yang memungkinkan aplikasi Anda menggunakan layanan umum seperti Twitter, reCAPTCHA, Gravatars, Bing Maps, dan banyak lagi. Selain itu, aplikasi Anda bisa diperpanjang dengan menggunakan paket dari Galeri NuGet. Anda menggunakan antarmuka grafis NuGet atau jendela command line untuk meminta paket yang Anda inginkan dan maka mereka akan didownload, diinstal, dan dikonfigurasi dalam aplikasi Anda secara otomatis.

WebMatrix 2 juga mencakup SQL Server Compact Edition (SQL CE), database ringan dan gratis larutan. Anda dapat membuat, mengedit, dan menghapus skema database dan data secara langsung di WebMatrix. Anda bisa menjalankan web aplikasi di WebMatrix menggunakan IIS Express, yang disertakan saat Anda menginstalnya; Dengan begitu, Anda tidak perlu khawatir tentang mengkonfigurasi IIS penuh hanya untuk menguji aplikasi Anda.

Dukungan untuk Windows Azure juga dipanggang ke WebMatrix 2. Anda bisa mempublikasikan aplikasi Anda langsung ke Windows Azure, tapi apa yang benar-benar bagus adalah Anda bisa langsung membuka aplikasi Anda dari Windows Azure dan membuat perubahan itu.

ASP.NET MVC

ASP.NET MVC adalah framework gratis dan didukung penuh untuk membangun aplikasi web yang menggunakan model-view-controller pola. Seperti ASP.NET Web Forms, ASP.NET MVC dibangun di atas ASP.NET Framework. Ini berarti Anda bisa menggunakannya dalam aplikasi ASP.NET MVC API yang sama untuk keamanan, manajemen negara, keanggotaan, caching, dan sebagainya Anda bisa menggunakan aplikasi ASP.NET Web Forms tradisional.

Di dunia ASP.NET MVC, banyak perbaikan terhadap ASP.NET telah disertakan dalam framework itu sendiri. Tujuan utama dari pola desain ini adalah untuk mengisolasi logika bisnis dari user interface agar lebih fokus pada yang lebih baik rawatan, peningkatan kemampuan uji, dan struktur bersih pada aplikasi.

Setiap aplikasi ASP.NET MVC memiliki tiga bagian inti: model, views, dan controler. Singkatnya, modelnya terdiri dari semua kelas yang menangani data dan logika bisnis. Pengolahan data menggunakan kelas model diprakarsai oleh pengendali yang bertanggung jawab atas permintaan pengguna. Setelah pengolahan data selesai controller menciptakan respon ke pengguna dengan mengirimkan hasilnya ke View yang kemudian menghasilkan HTML yang akan diberikan di browser.

Pola MVC

Gambar 1-2 mengilustrasikan implementasi pola MVC sederhana. Panah lurus menunjukkan hubungan langsung sementara panah melengkung mengidentifikasi asosiasi tidak langsung.

Gambar 1-2. Implementasi Model-view-controller

Model dalam pola MVC mewakili bagian-bagian dari aplikasi yang menerapkan logika domain data. Operasi model mungkin berasal dari generasi kelas yang mewakili objek di penyimpanan data seperti sebuah Database (misalnya, kelas data Entity Framework).

Views adalah elemen yang terlihat dalam aplikasi. Mereka adalah komponen yang biasanya menampilkan data pengguna model. Halaman tampilan biasanya menerima objek model tampilan dari controller (tampilan tidak peduli bagaimana data ini diperoleh-itu tanggung jawab pengendali!). Halaman tampilan berisi HTML (dan mungkin beberapa UI-related kode) untuk menentukan bagaimana mengembalikan data model ke browser.

Controler adalah kelas yang mengumpulkan permintaan pengguna, bekerja dengan model, dan akhirnya memilih tampilan buat UI yang sesuai.


Ditaranslate dari Buku Beginning ASP.NET MVC 4 (Chapter 1)

Tidak ada komentar:

Posting Komentar