Siklus Hidup Halaman MVC Dijelaskan dalam Bahasa Sederhana
Diterbitkan: 2021-11-26Artikel ini akan fokus pada siklus hidup aplikasi MVC dan bagaimana aplikasi memproses permintaan melalui melewati komponen aplikasi. Dua siklus hidup hadir dalam siklus hidup MVC . Kedua siklus hidup ini adalah:
- Siklus hidup aplikasi
- Siklus hidup permintaan.
Daftar isi
Siklus hidup aplikasi
Siklus hidup aplikasi umumnya berarti waktu di mana proses aplikasi mulai berjalan. Untuk menunjukkan siklus hidup aplikasi MVC , awal dan akhir aplikasi ditandai.
Siklus hidup permintaan
Siklus hidup permintaan berarti rangkaian peristiwa yang terjadi setiap kali aplikasi menangani permintaan HTTP. Perutean adalah titik masuk untuk memulai aplikasi MVC apa pun. Ketika permintaan dibuat ke platform ASP.NET, keputusan diambil tentang bagaimana menangani permintaan melalui modul perutean. Istilah modul berarti komponen .NET, yang digunakan untuk menambahkan fungsionalitas ke dalam kode. Modul perutean bertanggung jawab untuk mencocokkan URL yang masuk ke masing-masing rute yang ditentukan dalam aplikasi. Handler rute dikaitkan dengan setiap rute, yang menandai titik masuk ke dalam kerangka MVC.
Kerangka kerja MVC bertanggung jawab untuk menangani konversi data rute menjadi pengontrol yang selanjutnya akan menangani permintaan. Setelah pembuatan Controller selesai, langkah selanjutnya adalah mengambil tindakan. Ini dilakukan melalui komponen pemanggil tindakan, yang memilih metode tindakan untuk memanggil Pengendali.
Setelah persiapan untuk hasil tindakan selesai, langkah selanjutnya adalah eksekusi hasil. Langkah pemisahan dibuat untuk hasil dari eksekusi hasil. Untuk hasil tipe tampilan, aplikasi akan memanggil mesin tampilan, dan itu akan menemukan dan membantu dalam merender tampilan. Jika hasilnya bukan tampilan, eksekusi tindakan akan berlangsung dengan sendirinya. Ini adalah hasil eksekusi yang menghasilkan respons aktual terhadap permintaan HTTP asli.
Sebagian besar komponen diketahui oleh pengembang bahwa mereka digunakan untuk memproses permintaan. Dalam kebanyakan kasus, metode dan pengontrol yang terkait dengan tindakan sedang dikerjakan. Juga, hasil tindakan dan pandangan yang berbeda sedang dikerjakan. Tetapi ada komponen lain juga dalam kerangka MVC. Mungkin ada banyak pertanyaan di benak seseorang tentang bagaimana aliran permintaan dilakukan melalui komponen yang berbeda atau peran modul HTTP dan handler saat memproses permintaan. Kerangka kerja MVC menjadi kerangka kerja pengembangan web, harus ada modul HHTP dan penangan HTTP dalam pipa kerangka kerja MVC.
Banyak komponen hadir dalam siklus hidup halaman MVC , selain dari Controller dan metode tindakan.
UrlRoutingModul
Ini adalah jenis modul HTTP. Setiap kali permintaan pertama kali dibuat, itu dicegat melalui UrlRoutingModule. Dalam modul ini, diputuskan apakah aplikasi MVC harus menangani permintaan tersebut. UrlRoutingModule memilih rute pertama yang cocok.
Bagaimana permintaan dicocokkan dengan rute yang ada di aplikasi MVC melalui UrlRoutingModule?
Melihat metode RegisterRoutes, yang dipanggil dari global.asax, rute yang ditambahkan ke RouteCollection dari rute dapat dilihat. Pemanggilan metode dilakukan dari event handler di application_start dari global.asax.
Sumber
Bagaimana rute di RouteHandler didefinisikan?
Rute didefinisikan sebagai metode ekstensi, seperti yang dapat dilihat pada metode maproute. Handler rute dikaitkan dengan semua rute.
Metode UrlRoutingModule didefinisikan dengan cara berikut.
Sumber
Melalui penjelasan di atas, dapat diketahui bahwa UrlRoutingModule mengetahui semua rute yang didefinisikan dalam aplikasi. Oleh karena itu, rute yang benar dapat dicocokkan dengan permintaan di aplikasi.
Poin penting untuk dicatat adalah bahwa modul UrlRoutingModule terlibat dalam memilih rute pencocokan pertama. Jadi setiap kali kecocokan terdeteksi, proses pemindaian berhenti. Jika kita meringkas hal yang terjadi pada tahap ini, pengendali rute dilampirkan ke rute melalui U RLRoutingModule.
RouteHandler
Melalui metode maproute, rute dilampirkan ke instance MvcRouteHandler. Antarmuka IRouteHandler diimplementasikan melalui MvcRouteHandler.
Oleh karena itu, objek MvcRouteHandler digunakan untuk mendapatkan referensi untuk objek MvcRouteHandler yaitu HTTPHandler aplikasi.
Pembuatan MvcRouteHandler, menuntut pemanggilan metode PostResolveRequestCache(). Metode PostResolveRequestCache() ini dapat didefinisikan dengan cara berikut:
Sumber
Oleh karena itu, kejadian berikut ini terjadi pada metode PostResolveRequestCache().
- Metode GetRouteData() hadir di properti RouteCollection. Metode ini dipanggil dan diteruskan melalui HttpContext.
- Objek RouteData dikembalikan melalui metode GetRouteData().
- properti RouteHandler terkandung oleh routeData yang mengembalikan handler IRouteHandler untuk permintaan, yang saat ini, yaitu, MvcRouteHandler.
- Metode G etHttpHandler() dikaitkan dengan MvcRouteHandler yang mengembalikan referensi untuk MvcHandler.
- Kontrol kemudian didelegasikan ke instance MvcHandler.
MvcHandler
MvcHandler adalah penangan normal HTTP. Karena merupakan handler HTTP, implementasi metode ProcessRequest() dilakukan. Metode ProcessRequest() ini dapat didefinisikan sebagai:
Sumber
Metode ProcessRequest() digunakan untuk memanggil metode ProcessRequestInit() seperti yang didefinisikan pada gambar di bawah ini:
Sumber
Peristiwa berikut terjadi pada metode ProcessRequest().
- ControllerFactory dibuat melalui pemanggilan metode ProcessRequestInit().
- ControllerFactory membuat Controller.
- Metode Execute() dari Controller dipanggil.
Pabrik Pengontrol
Seseorang dapat mengamati bahwa ControllerFactory diperoleh melalui metode ProcessRequest() . ControllerFactory kemudian digunakan untuk membuat objek dari objek Controller. Antarmuka IControllerFactory diimplementasikan oleh pabrik Controller.
OLEH DEFAULT, kerangka kerja MVC membuat tipe tipe DefaultControllerFactory ketika ControllerBuilder digunakan untuk membuat ControllerFactory.
Baris kode berikut membuat ControllerFactory dalam metode ProcessRequestInit().
Sumber
Pengontrol
Telah diamati bahwa objek Controller dibuat di ControllerFactory dalam metode ProcessRequest() dari MvcHandler. Kontroler yang dibuat berisi metode untuk tindakan yang akan diambil oleh kerangka kerja. Setiap kali permintaan URL dibuat di browser, ada pemanggilan metode untuk tindakan. Kontroler dibuat sehingga tidak ada implementasi eksplisit dari antarmuka IControlle. Class Controller digunakan untuk membuat controller yang menyediakan beberapa fitur. Kelas Controller dapat mewarisi kelas Controller lain yang disebut "ControllerBase" seperti yang didefinisikan dalam kode yang ditunjukkan di bawah ini:
Sumber
ActionInvoker digunakan untuk memanggil metode tindakan di Controller.
Peristiwa berikut terjadi setelah pembuatan Controller melalui controller factory:
- Memanggil metode Execute() dari controllerbase.
- Metode ExecuteCore() dipanggil oleh metode Execute() yang dideklarasikan sebagai abstrak dan kemudian didefinisikan melalui kelas Controller.
- Nama tindakan diambil dari RouteData melalui metode ExecuteCore() oleh Controller kelas.
- Metode InvokeAction() ActionInvoker dipanggil oleh metode ExecuteCore().
ActionInvoker
Ini digunakan untuk pemilihan tindakan.
Kelas ActionInvoker memiliki beberapa tanggung jawab penting yang mencakup menemukan metode tindakan dan kemudian memanggil metode tindakan di Controller.
Peristiwa yang terjadi saat metode ActionInvoker's InvokeAction() dipanggil adalah:
- Informasi mengenai Controller harus diperoleh oleh ActionInvoker dan tindakan yang diperlukan untuk melakukan.
- Objek deskriptor menyediakan informasi ini.
- Nama pengontrol dan nama tindakan disediakan oleh kelas deskriptor dari tindakan dan Pengendali.
- Ada yang memanggil ActionMethod .
Hasil Tindakan
ActionResult adalah jenis kelas abstrak. Menjadi metode abstrak, ada implementasi berbeda untuk metode ExecuteResult() yang disediakan oleh sub-kelas yang berbeda.
Peristiwa berikut terjadi di ActionResult
- Ada pemanggilan metode OnActionExecuting dari ActionFilters.
- Memanggil tindakan metode.
- Memanggil metode OnActionExecuted metode ActionFilters.
- Ada pengembalian ActionResult dari ActionMethod
- Memanggil metode ExecuteResult() dari ActionResult.
LihatMesin
Sebagian besar aplikasi menggunakan ViewResult sebagai tipe pengembaliannya. Tampilan diberikan melalui ViewEngine ke klien. Dari tampilan ini, HTML dapat dihasilkan. HTML dihasilkan dari tampilan melalui ViewEngine.
Kesimpulan
Memahami peran setiap komponen dalam aplikasi adalah langkah penting. Dengan cara ini, hubungan antara komponen dan cara kerjanya dapat dipahami. Jika Anda ingin menjadi developer yang berpengalaman, maka menguasai keterampilan Anda adalah salah satu caranya. Anda dapat melihat Kursus Rekayasa Perangkat Lunak Online dari upGrad yang akan memberi Anda sertifikasi dan pelatihan ahli di bidang pengembangan aplikasi dan perangkat lunak. Kursus ini dirancang untuk profesional pekerja pria dan wanita dan disertifikasi dari IIIT-B, dan Anda akan mendapatkan Status Alumni mereka.
Ketika MVC diterapkan, aplikasi dibagi menjadi tiga lapisan: Lapisan data atau Model, UI atau Tampilan dan Pengontrol. Setiap lapisan MVC memiliki fungsi yang berbeda. Pertama, Lapisan UI atau Tampilan adalah antarmuka pengguna. Ini adalah antarmuka utama antara pengguna dan aplikasi. Ini bertanggung jawab untuk menerima input pengguna dan menyajikan hasilnya. Kemudian controller terhubung ke semua komponen di lapisan tampilan, dan memproses input pengguna, mengirim data ke lapisan model, dan mengirimkan hasilnya kembali ke pengguna. Lapisan model adalah tempat data disimpan. Ini bertanggung jawab untuk mengontrol data. Selain itu, lapisan model juga bertanggung jawab untuk membaca dan menulis data ke penyimpanan. Kerangka kerja ASP.NET MVC menggunakan kekuatan Status Sesi ASP.NET. Status sesi adalah layanan web yang dibangun di platform ASP.NET. Ini bertanggung jawab untuk memelihara semua objek, data, dan informasi lain yang terkait dengan sesi tertentu. Objek SessionState mempertahankan nilai status sesi. Itu juga bertanggung jawab untuk mengisi dan memelihara nilai-nilai objek Sesi. Objek Sesi bertindak sebagai pintu gerbang ke status sesi. Ini adalah properti dari objek SessionState dan digunakan untuk menyimpan dan mengambil nilai untuk status sesi. Filter di MVC adalah filter yang berada di antara pengontrol dan model dan dapat digunakan untuk memvalidasi input pengguna atau memodifikasi output model. Berikut ini adalah beberapa filter di MVC. 1. Filter validasi - Filter validasi membantu memvalidasi input pengguna. 2. Filter tindakan - Filter tindakan membantu memodifikasi keluaran model. 3. Filter model - Filter model membantu memodifikasi keluaran model. 4. Filter keluaran - Filter keluaran digunakan untuk memodifikasi keluaran model.Bisakah Anda menjelaskan siklus hidup halaman MVC?
Bagaimana kita bisa mempertahankan sesi di MVC?
Ada berapa jenis filter di MVC?