Keberhasilan aplikasi ASP biasanya tergantung pada pertukaran antara arsitektur dan desain. Mempertimbangkan berbagai teknologi ASP dan kompleksitas yang melekat dari aplikasi saat ini, trade-off ini sangat sulit. Berikut adalah pengantar singkat tentang prinsip -prinsip dan penggunaan ASP di saluran teknologi baru yang salah.
Membangun konvensi penamaan dan menstandarkan struktur direktori dapat membantu Anda meningkatkan keterbacaan dan pemeliharaan aplikasi ASP Anda. Meskipun saat ini tidak ada standar formal untuk aplikasi ASP, banyak pengembang telah menetapkan beberapa cara umum. Di sini, saya akan berbagi dengan Anda beberapa cara yang lebih umum.
Karena teknologi ASP bergantung pada mesin skrip untuk bekerja, dan skrip memiliki sifat tidak ketat dalam jenis, konvensi penamaan juga tidak jelas. Dalam bahasa dengan tipe yang sangat ketat, variabel akan dinyatakan sesuai dengan tipe sebenarnya. Saat menggunakan teknologi ASP, variabel biasanya dinyatakan dalam kode ASP dalam cara mereka memproses variabel, daripada tipe data aktualnya. Misalnya, saat menggunakan "Visual Basic (R) Scripting Edition (VBScript)", meskipun semua variabel VBScript adalah varian, Anda menyatakan bendera keberhasilan sebagai bsuccess (b untuk boolean) alih -alih vSuccess (v untuk varian).
Tabel berikut adalah beberapa konvensi penamaan yang umum.
Awalan variabel:
| Awalan | Variabel digunakan | Contoh variabel |
|---|---|---|
| b atau bln | Boolean | Bsuccess |
| c atau cur | Mata uang | Camount |
| D atau DBL | Dobel | DblQuantity |
| dt atau dat | Tanggal dan waktu | dtdate |
| f atau flt | Mengambang | FRATIO |
| L atau LNG | Panjang | lmilliseconds |
| i atau int | Bilangan bulat | icounter |
| s atau str | Rangkaian | nama S |
| A atau ARR | Array | ausers () |
| o atau obj | Com objek | Opipeline |
Awalan variabel untuk objek basis data:
| Awalan | Variabel digunakan | Contoh variabel |
|---|---|---|
| CNN | Koneksi | CNNPUBS |
| pertama | Recordset | rsstauthors |
| cmd | Memerintah | CMDEPOM |
| fld | Bidang | FLDLASTNAME |
Penggunaan jangkauan dan awalan:
| Awalan | menjelaskan |
|---|---|
| G_ | Dibuat di global.asa. |
| M_ | Untuk halaman ASP atau dalam file termasuk, itu lokal. |
| (Tidak ada awalan) | Variabel non-statis, awalan adalah lokal untuk proses tersebut |
Pos di basis pengetahuan (KB) "Q110264 Info: Layanan Konsultasi Microsoft Konvensi penamaan untuk Visual Basic" (dalam bahasa Inggris) memberikan wawasan tentang konvensi penamaan.
Gunakan struktur direktori jika memungkinkan untuk menyediakan lokasi yang konsisten untuk berbagai komponen aplikasi Anda. Struktur direktori sebenarnya dari aplikasi Anda tentu saja terserah Anda, tetapi biasanya untuk menempatkan gambar, dokumen, termasuk file, dan komponen dalam direktori terpisah. Berikut ini adalah contoh struktur direktori aplikasi ASP sederhana.
Contoh Struktur Direktori:
/Simpleaspapp /docs /gambar /termasuk
Struktur direktori yang baik memungkinkan Anda untuk secara selektif menerapkan izin NTFS. Anda juga dapat menggunakan jalur relatif dari dalam aplikasi ASP. Misalnya, Anda dapat menggunakan kode berikut untuk merujuk file certer top.asp di direktori termasuk dari halaman default.asp yang terletak di direktori Simpleaspapp:
./includes/top.asp
Perhatikan bahwa perpanjangan file include saya adalah .asp, bukan .inc. Ini dilakukan untuk alasan keamanan, dan menggunakan ekstensi .asp (bukan .inc), dan juga memungkinkan pengkodean warna dalam visual interdev (r).
Untuk beberapa tips dan tips lain tentang aplikasi ASP terstruktur, lihat artikel "Konvensi ASP" (dalam bahasa Inggris).
ASP akan berjalan di bawah layanan. Saat merancang aplikasi ASP, Anda akan segera menghadapi lingkungan keamanan dan masalah -masalah yang tidak akan Anda temui di aplikasi desktop Anda. Dalam lingkungan desktop, hanya eksekusi utamanya yang dijalankan sebagai pengguna interaktif biasanya ditangani dan memiliki akses ke sistem desktop saat ini. Dalam Layanan Informasi Internet (IIS), beberapa utas klien di lingkungan pengguna yang berbeda disimulasikan untuk menghubungi aplikasi Anda, dan aplikasi Anda terbatas pada desktop "sistem".
Apa artinya ini bagi Anda? Silakan pelajari mode keamanan IIS. Juga mengingatkan Anda: hanya karena sesuatu dapat berjalan dengan baik di bawah IDE Visual Basic tidak berarti dapat berjalan dengan aman dalam teknologi ASP. Visual Basic IDE tidak secara akurat mensimulasikan lingkungan runtime. Kesalahan desain umum termasuk menggunakan kontrol .OCX yang memerlukan antarmuka pengguna dalam teknologi ASP, menggunakan komponen yang tidak aman untuk utas, dan menggunakan komponen yang memerlukan konteks pengguna khusus. Salah satu masalah termudah yang harus dihindari adalah mencoba mengakses kunci registri HKEY_CURRENT_USER (HKCU) dari aplikasi (misalnya, jangan sebut fungsi Visual Basic Getsetting dan SaveSetting , yang keduanya bergantung pada HKCU). Demikian pula, jangan muncul kotak pesan atau kotak dialog lain yang mengharuskan pengguna untuk berinteraksi dengan komputer manusia.
Artikel -artikel berikut adalah buku pengantar yang cukup bagus tentang masalah keamanan dan verifikasi dalam teknologi ASP:
Teknologi ASP menyediakan layanan representasi dengan menghasilkan output HTML. Singkatnya, ini menghasilkan antarmuka pengguna. Anda perlu memisahkan logika bisnis dari skrip representasi ASP. Bahkan jika Anda tidak menggunakan komponen COM untuk memisahkan logika bisnis dari kode ASP, setidaknya memisahkan logika bisnis ke dalam fungsi dan menyertakan file untuk meningkatkan pemeliharaan, keterbacaan, dan reusabilitas. Anda juga dapat menghargai manfaat dari metode desain modular saat pemecahan masalah dan isolasi diperlukan.
Fungsi dan metode panggilan di dalam skrip dapat menghindari mengacaukan kode dan menambahkan struktur ke aplikasi ASP. Contoh berikut menunjukkan cara memisahkan logika menjadi panggilan metode dari kode ASP:
lt;% main () mybizmethod () ... sub main () getData () displayData () end sub%>
Prinsip ini dapat diterapkan saat menggunakan teknik yang mencakup fungsionalitas ASP. Berikut adalah contoh cara menggunakan prinsip ini saat menggunakan Visual Basic WebClass:
Masalah umum adalah transisi dari sistem desktop ke server. Banyak pengembang dengan latar belakang sistem desktop tidak pernah khawatir tentang beberapa masalah server dan berbagi sumber daya. Dalam aplikasi desktop tradisional, menghubungkan ke server adalah proses yang memakan waktu. Untuk meningkatkan pengalaman pengguna, biasanya digunakan untuk memperoleh sumber daya lebih awal dan menunda pelepasan sumber daya. Misalnya, banyak aplikasi akan selalu terhubung ke database sepanjang waktu yang dijalankan.
Metode ini berfungsi dengan baik dalam aplikasi desktop tradisional. Alasannya adalah bahwa jumlah pengguna sangat jelas, mudah dikendalikan, dan backend dan frontend terhubung erat. Namun, untuk aplikasi web saat ini, pendekatan ini tidak lagi layak karena sumber daya server terbatas akan menghadapi semakin banyak pengguna. Agar aplikasi Anda dapat mengatasi peningkatan pengguna, Anda perlu mendapatkan sumber daya selambat -lambatnya dan melepaskan sumber daya sedini mungkin.
Berbagi membantu meningkatkan efektivitas pendekatan ini. Melalui berbagi, banyak pengguna dapat berbagi sumber daya, dengan waktu tunggu minimum dan dampak minimal pada server. Misalnya, ketika bekerja dengan database, berbagi koneksi ODBC dan berbagi sumber daya OLEDB dapat memungkinkan pemilihan koneksi dari kumpulan bersama, meminimalkan overhead menghubungkan ke database.
Untuk informasi lebih lanjut tentang berbagi ADO, lihat "Pooling di Komponen Akses Data Microsoft".
Meskipun protokol HTTP adalah stateless, pengembang ASP sering menggunakan mekanisme pemegang negara yang dibangun ke dalam fungsi ASP. Misalnya, menggunakan objek aplikasi yang dibangun ke dalam teknologi ASP, sumber daya yang disimpan oleh pengembang dapat dibagikan oleh semua pengguna aplikasi. Dengan menggunakan objek sesi bawaan ASP, pengembang menyimpan sumber daya hanya untuk satu pengguna.
Meskipun kedengarannya seperti menyimpan informasi dalam objek sesi teknologi ASP adalah cara yang sangat nyaman untuk menjaga keadaan, pendekatan ini terlalu mahal dan juga bisa menjadi salah satu faktor pembatas terbesar pada skalabilitas. Skalabilitas suatu aplikasi pada dasarnya adalah kemampuan untuk terus mempertahankan kinerjanya seiring dengan meningkatnya jumlah pengguna. Untuk setiap pengguna, objek sesi mengkonsumsi sumber daya server sebelum sesi habis atau ditinggalkan. Sesi juga mengikat Anda ke server, membatasi kemampuan Anda untuk memanfaatkan cluster web. Tolong jangan gunakan objek sesi ASP untuk manajemen negara sebanyak mungkin. Jika Anda tidak menggunakan sesi sama sekali, Anda dapat menonaktifkan status sesi aplikasi web Anda (lihat dokumentasi IIS). Jika tidak, Anda dapat menonaktifkan status sesi untuk setiap halaman menggunakan pernyataan berikut:
< %@EnableSessionState = false %>
Untuk beberapa data sederhana, Anda dapat menggunakan cookie QueryString atau domain bentuk tersembunyi untuk mempertahankan keadaan antara permintaan ASP. Kemudian, untuk informasi yang lebih kompleks, biasanya disarankan agar Anda menggunakan database. Pendekatan umum adalah untuk menghasilkan pengidentifikasi yang unik, kemudian mengirimkannya ke setiap klien yang meminta, dan menyimpannya sebagai bidang formulir tersembunyi. Dalam permintaan selanjutnya, pengidentifikasi unik ini digunakan untuk mencari informasi status yang terkait dengan pengguna dalam database. Pendekatan ini memberikan skalabilitas yang lebih tinggi dan kode yang lebih ringkas dan jelas.
Untuk informasi lebih lanjut tentang penggunaan cookie QueryString dan bidang bentuk tersembunyi, lihat "Q175167 Howto: Nilai yang Bertahan tanpa Sesi".
Saat membuat objek teknologi ASP, Anda dapat memilih
Berikut ini adalah pengecualian yang mungkin: ketika Anda melakukan panggilan melalui firewall, Anda mungkin perlu menelepon createObject alih -alih server.createObject . Untuk informasi lebih lanjut, lihat "Q193230 - PRB: Server.CreateObject gagal saat objek di belakang firewall" (bahasa Inggris).
Pastikan bahwa penanganan kesalahan sudah termasuk dalam semua aplikasi ASP Anda. Dan, pastikan Anda memberikan informasi diagnostik yang bermanfaat. Saya belum pernah bertemu siapa pun yang mengeluh bahwa pesan kesalahan terlalu jelas. Pastikan untuk memasukkan informasi berikut dalam log kesalahan:
Karena akan berjalan di bawah ASP, Anda mungkin ingin menulis informasi ini ke file atau log acara NT. Anda juga dapat membuat log acara aplikasi yang mencatat acara aplikasi kritis untuk digunakan saat mendiagnosis kesalahan aplikasi.
Artikel berikut memberikan informasi terperinci tentang teknik penanganan kesalahan:
Browser bukan cara yang tepat untuk mengujinya, itu hanya dapat menunjukkan kepada Anda kemungkinan penggunaan aplikasi. Harap atur tujuan kinerja spesifik untuk aplikasi Anda dan gunakan alat pemuatan seperti alat stres aplikasi web untuk pengujian stres. Anda perlu memutuskan sendiri apa yang dapat diterima lingkungan Anda, dan berikut adalah beberapa pedoman umum untuk membantu Anda memulai proses pengujian Anda:
Cocokkan lingkungan uji dengan lingkungan lari yang sebenarnya, dan bahkan firewall tidak terkecuali. Ini kedengarannya mahal, tetapi saya pernah mendengar pengembang kehilangan pekerjaan karena mereka tidak mempertimbangkan firewall.
Untuk informasi lebih lanjut tentang pengujian aplikasi ASP menggunakan alat stres aplikasi web, lihat "Saya tidak bisa cukup menekankannya - muat uji aplikasi ASP Anda".
Melindungi proses aplikasi Anda dengan isolasi dapat sangat meningkatkan stabilitas server. Ketika datang ke aplikasi internet, konsekuensi penggunaan isolasi dapat sangat bervariasi: satu adalah crash aplikasi dan yang lainnya adalah server crash. Melindungi proses IIS primer (inetinfo.exe) biasanya berada pada daftar prioritas yang lebih tinggi. Ini sangat menonjol ketika Anda menggunakan komponen.
Teknik yang umum digunakan untuk melindungi proses ISS utama adalah dengan memungkinkan aplikasi web berjalan di ruang memori masing -masing. Di Internet Services Manager, Anda dapat mengatur opsi ini untuk setiap web. Meskipun sumber daya sistem yang kewalahan oleh proses marshalling akan memiliki sedikit dampak pada kinerja, efek perlindungan pada aplikasi sepadan dengan biayanya. Di bawah IIS 4.0, Anda dapat menjalankan aplikasi dalam proses dan out-of-process (OOP). Aplikasi OOP berjalan dalam instance mtx.exe baru. Di bawah IIS 5.0, Anda dapat menggunakan opsi isolasi lainnya. Tingkat isolasi dapat diatur ke "rendah" (aplikasi dalam proses untuk inetinfo.exe), "medium" (instance bersama Dllhost.exe), atau "tinggi" (contoh yang tidak dibesarkan dari dllhost.exe).
Selain mengisolasi aplikasi web di ruang memori mereka sendiri, Anda mungkin juga ingin mengisolasi komponen yang tidak dipercaya. Komponen yang tidak dipercaya biasanya komponen yang tidak melewati waktu tes di lingkungan yang sebenarnya. Anda dapat menjalankan komponen -komponen ini dalam paket server sehingga mereka berjalan di instance DLLHost.exe baru.
Secara umum, jika Anda ingin mengambil pendekatan moderat antara kinerja dan perlindungan, berikut ini adalah jalannya: jalankan aplikasi web dalam keadaan isolasi "tinggi" dan jalankan komponen dalam paket perpustakaan. Pendekatan ini meminimalkan biaya marshalling sambil memberikan perlindungan terkuat antara proses.
Untuk informasi lebih lanjut, lihat artikel "Keandalan Server melalui isolasi proses".
Di bawah IIS 4.0, kelompok umum default ASP adalah 10 utas untuk setiap prosesor yang dikelola MTS. Di IIS 5.0, nilai default adalah 20. Ini berarti bahwa setiap utas adalah sumber daya yang berpotensi berharga yang dapat menangani banyak permintaan klien. Anda juga perlu menghindari metode pemblokiran yang mungkin terjadi, seperti membuat panggilan basis data yang besar. Jika Anda memiliki pekerjaan untuk melakukan ini, itu akan mencegah aplikasi ASP mengembalikan respons ke klien dengan cepat, pertimbangkan untuk menggunakan fitur antrian. Misalnya, di NT 4.0, MSMQ dapat digunakan. Di Windows 2000, komponen antrian dapat digunakan.
Salah satu kelemahan umum dari tidak menyimpan komponen apartemen tunggal (STA) dalam sesi ini adalah bahwa mereka mengisi objek dasar visual dalam ruang lingkup sesi. Ini akan mengunci pengguna ke utas, yang akan berjalan bertentangan dengan tujuan berbagi grup berdasarkan utas. Pengguna potensial akan diblokir di belakang pengguna lain, menunggu utas yang membuat komponen mereka menjadi valid. Anda harus menggunakan cara lain untuk merancang komponen tanpa kewarganegaraan yang dapat dibuat dan dihancurkan berdasarkan setiap halaman.
Kiat cepat: Pastikan fitur debugging skrip ASP dinonaktifkan di server (menggunakan Internet Services Manager). Jika debugging skrip ASP diaktifkan, eksekusi ASP akan dikunci ke utas.
Untuk informasi lebih lanjut, silakan merujuk ke artikel berikut:
Membuat aplikasi ASP membutuhkan berbagai pengetahuan. Salah satu tantangan untuk aplikasi ASP adalah bahwa saat ini tidak ada aturan umum (yang juga merupakan bagian dari kesenangan). Masalah lain adalah bahwa banyak pengembang telah terlibat dalam pengembangan sistem desktop sebelum mereka bersentuhan dengan pengembangan internet. Dengan menerapkan aturan di atas dalam upaya pengembangan ASP Anda, Anda memiliki harapan untuk menghindari kesalahan yang mahal dan dapat mengembangkan aplikasi ASP yang cukup baik.
JD Meier lahir dan besar di pantai timur Amerika Serikat. Mengikuti saran Horace Greeley, ia menjadi insinyur pendukung pengembang, dengan fokus pada komponen sisi server termasuk MTS dan teknologi ASP serta aplikasi Windows DNA.
Melalui konten yang diperkenalkan oleh editor 未分 saluran teknologi baru, saya percaya setiap orang memiliki pemahaman tertentu. Jika Anda ingin mengetahui lebih banyak konten teknis, silakan terus perhatikan 未分 saluran teknologi baru!