Anthony Moore
Microsoft Corporation
Oktober 2000
Ringkasan: Penjelasan terperinci tentang penggunaan ASP+ untuk memverifikasi kontrol web
Perkenalan
Artikel ini menjelaskan secara rinci cara kerja kontrol verifikasi ASP+. Jika Anda ingin menghasilkan halaman yang kompleks dengan kontrol verifikasi, atau Anda ingin memperluas kerangka kerja verifikasi, Anda disarankan untuk membaca artikel ini. Jika Anda ingin belajar menggunakan kontrol verifikasi, atau memutuskan apakah akan menggunakan kontrol verifikasi, lihat "Verifikasi Input Pengguna di ASP+ (Bahasa Inggris)".
Memulai
Kita tahu bahwa sepanjang proses pengembangan ASP+, penting untuk memahami verifikasi. Melihat sebagian besar situs web komersial hari ini, Anda akan melihat bahwa ada banyak bentuk di situs -situs ini yang jelas divalidasi dengan mengeksekusi banyak kode tulisan tangan. Menulis kode verifikasi bukanlah pekerjaan yang menarik. Mungkin menarik jika Anda ingin menulis kode untuk menampilkan tabel data atau menghasilkan grafik dengan cepat, tetapi tidak ada yang dapat mengkonfirmasi kepada rekan -rekannya bahwa pendekatan "keren" ini dapat melarang nilai nol ke dalam bidang nama.
Karena alasan lain, verifikasi aplikasi web juga sangat merepotkan. HTML 3.2 memiliki banyak batasan pada konten yang dapat Anda kendalikan atau umpan balik yang dapat Anda dapatkan dari pengguna, sehingga tidak dapat menerapkan teknik yang dapat digunakan pada klien yang lebih fungsional, seperti melarang pengguna untuk memasukkan karakter atau bip tertentu. Menggunakan skrip browser dapat menghasilkan verifikasi yang lebih kuat. Namun, metode ini sulit dibuktikan karena belum tentu ada skrip di browser klien, dan pengguna jahat dapat memotongnya. Oleh karena itu, untuk memastikan keamanan situs, perlu melakukan inspeksi yang sama di server.
Saat mengembangkan ASP+, niat asli kami adalah hanya menggunakan satu kontrol untuk menangani verifikasi, yang mungkin merupakan kontrol kotak teks yang dapat menampilkan kesalahan. Tetapi ketika saya merancang kontrol, saya menemukan bahwa keinginan ini tidak dapat diwujudkan. Kami melihat sejumlah besar formulir entri data, mencoba menemukan solusi yang dapat bekerja dengan sebanyak mungkin bentuk. Kami menemukan bahwa formulir entri data memiliki banyak fitur menarik:
Meskipun pesan atau ikon kesalahan sering berdekatan dengan elemen input, mereka hampir selalu terletak di sel yang berbeda dari tabel.
Seringkali ada area di halaman untuk merangkum semua kesalahan.
Banyak situs termasuk skrip klien untuk memberikan umpan balik yang lebih cepat sambil mencegah sia -sia dari bolak -balik dengan server.
Banyak situs yang berisi skrip klien menampilkan kotak informasi saat terjadi kesalahan.
Tidak hanya input teks yang divalidasi, tetapi juga daftar drop-down dan tombol radio.
Jika bidang kosong, situs biasanya akan menampilkan pesan atau ikon yang berbeda dari saat entri tidak valid.
Banyak pemeriksaan validitas adalah penggantian yang baik untuk ekspresi yang umum digunakan.
Verifikasi biasanya didasarkan pada perbandingan antara dua input.
90% atau lebih dari tugas verifikasi adalah operasi umum seperti memeriksa nama atau kode pos. Sebagian besar situs tampaknya masih melakukan pekerjaan ini berulang kali.
Karena perbedaan antar situs seringkali terlalu besar untuk mendapatkan solusi sempurna untuk menangani semua tugas verifikasi untuk setiap situs.
Dengan mempertimbangkan semua hal di atas, solusi akhir termasuk lima kontrol validator, kontrol validasi, dan integrasi dengan objek halaman. Juga jelas bahwa solusi perlu diperpanjang, dan API diperlukan pada klien dan server untuk bekerja sama.
Kami menemukan melalui berbagai validasi yang dilakukan dalam penelitian kami bahwa kami tampaknya membutuhkan kotak alat yang lebih besar. Di sebagian besar lingkungan komponen, seperti Microsoft® ActiveX®, kami mungkin telah berusaha untuk mengintegrasikan semua fungsionalitas kontrol verifikasi ke dalam satu kontrol, menangani sifat yang berbeda dalam mode yang berbeda. Untungnya, bagaimanapun, ada warisan magis di Microsoft® .NET Framework, yang menyediakan serangkaian kontrol untuk melakukan validasi spesifik dari properti spesifik, karena upaya tambahan yang diperlukan untuk memperoleh setiap kontrol baru sangat kecil.
Sebagian besar pekerjaan yang dilakukan oleh kontrol ini diimplementasikan dalam basevalidator orang tua yang umum. Anda juga dapat berasal dari Basevalidator atau kontrol lain untuk melakukan semua pekerjaan. Faktanya, bahkan Basevalidator terlalu malas untuk mengimplementasikan properti teksnya sendiri, tetapi mewarisi dari properti label.
Kapan dan apa yang terjadi?
Memahami urutan peristiwa sangat efektif ketika bekerja dengan halaman yang berisi kontrol web validasi. Jika kondisi verifikasi adalah opsional, Anda perlu tahu persis kapan verifikasi dilakukan pada klien dan server. Jika Anda ingin menulis rutinitas verifikasi Anda sendiri, itu bisa sangat memakan waktu atau memiliki efek samping. Pada saat yang sama, penting juga untuk memahami waktu memanggil rutin verifikasi.
Pertama, mari kita lihat server.