Saya mencoba untuk membangun sebuah "mikro-webapp" yang sangat, sangat sederhana yang saya curigai akan menarik bagi beberapa Stack Overflow jika saya bisa menyelesaikannya. Saya menghostingnya di situs C # in Depth saya, yaitu vanilla ASP.NET 3.5 (bukan MVC).
Alurnya sangat sederhana:
- Jika pengguna memasuki aplikasi dengan URL yang tidak menentukan semua parameter (atau jika ada yang tidak valid) saya hanya ingin menampilkan kontrol masukan pengguna. (Hanya ada dua.)
- Jika pengguna memasukkan app dengan URL yang tidak memiliki semua parameter yang diperlukan, saya ingin menampilkan hasil dan kontrol input (sehingga mereka dapat mengubah parameter)
Berikut adalah persyaratan yang saya tetapkan sendiri (campuran desain dan implementasi):
- Saya ingin kiriman menggunakan GET daripada POST, sebagian besar agar pengguna dapat menandai halaman dengan mudah.
- Saya tidak ingin URL-nya terlihat konyol setelah dikirimkan, dengan potongan dan potongan yang tidak relevan. Tolong hanya URL utama dan parameter aslinya.
- Idealnya saya sama sekali tidak ingin meminta JavaScript. Tidak ada alasan bagus untuk itu di aplikasi ini.
- Saya ingin dapat mengakses kontrol selama waktu render dan mengatur nilai, dll. Secara khusus, saya ingin dapat mengatur nilai default kontrol ke nilai parameter yang diteruskan, jika ASP.NET tidak dapat melakukan ini secara otomatis untuk saya (dalam batasan lain).
- Saya senang bisa melakukan sendiri semua validasi parameter, dan saya tidak membutuhkan banyak hal terkait peristiwa sisi server. Sangat mudah untuk mengatur semuanya pada pemuatan halaman daripada melampirkan acara ke tombol dll.
Sebagian besar tidak apa-apa, tetapi saya belum menemukan cara apa pun untuk sepenuhnya menghapus kondisi tampilan dan menjaga fungsionalitas berguna lainnya. Dengan menggunakan postingan dari postingan blog ini, saya berhasil menghindari mendapatkan nilai aktual apa pun untuk kondisi tampilan - tetapi itu masih berakhir sebagai parameter pada URL, yang terlihat sangat jelek.
Jika saya membuatnya menjadi bentuk HTML biasa daripada bentuk ASP.NET (yaitu mengambil runat="server"
) maka saya tidak mendapatkan kondisi tampilan ajaib - tetapi kemudian saya tidak dapat mengakses kontrol secara terprogram.
Saya bisa melakukan semua ini dengan mengabaikan sebagian besar ASP.NET dan membangun dokumen XML dengan LINQ ke XML, dan menerapkannya IHttpHandler
. Itu terasa level yang agak rendah.
Saya menyadari bahwa masalah saya dapat diselesaikan dengan merilekskan kendala saya (misalnya menggunakan POST dan tidak peduli dengan parameter surplus) atau dengan menggunakan ASP.NET MVC, tetapi apakah persyaratan saya benar-benar tidak masuk akal?
Mungkin ASP.NET tidak menurunkan skala ke aplikasi semacam ini? Namun ada alternatif yang sangat mungkin: Saya hanya bersikap bodoh, dan ada cara yang sangat sederhana untuk melakukannya yang belum saya temukan.
Ada pemikiran, siapa? (Isyarat komentar tentang bagaimana yang perkasa jatuh, dll. Tidak apa-apa - Saya harap saya tidak pernah mengklaim sebagai pakar ASP.NET, karena kenyataannya justru sebaliknya ...)