Kuliah ASP 10: Menulis Komponen Sendiri
Penulis:Eve Cole
Waktu Pembaruan:2009-05-30 19:54:53
Pada konten sebelumnya, kita telah mempelajari cara menggunakan komponen. Meskipun ada banyak komponen di Internet, seringkali komponen kecil mengharuskan Anda mengeluarkan dolar AS, dan komponen yang diproduksi di dalam negeri terlalu sedikit. Anda tidak dapat menemukan tempatnya. Gampang, lupakan saja, tulis saja sendiri. Sebenarnya menulis komponen itu tidak sulit, hanya soal mulai menulis komponen tingkat rendah dan perlahan mulai menulis komponen tingkat tinggi. Untuk menulis Komponen Server ActiveX, ada banyak alat yang dapat dipilih: Visual Basic, C++, Java, dll. Di sini kami memilih VB6.0 yang paling sederhana Selama Anda pernah menggunakan VB sebelumnya, Anda dapat membuatnya dalam waktu kurang dari 1 jam .Widgetnya keluar.
1. Penulisan komponen cepat - langkah paling dasar untuk menulis komponen. Bagian ini terutama menjelaskan langkah-langkah dasar untuk menulis komponen. Jika Anda ingin mempelajari lebih lanjut, silakan lihat bagian "Membuat DLL ActiveX" di bantuan VB6.0. dokumen (dokumentasi di Perpustakaan MSDN Nama filenya adalah Vbcon98.chm).
Tujuan: Menulis komponen penambah yang paling sederhana. Komponen ini memiliki dua properti dan satu metode. Mari kita mulai dari tempat yang paling familiar, yaitu berasumsi bahwa komponen ini sudah ada dan lihat kode yang menggunakan komponen ini di ASP:
<%
Redupkan objek
'Buat komponennya terlebih dahulu, pengenal komponennya adalah TestDll.Sum
Setel objSum = Server.CreateObject("TestDll.Sum")
'Ingat "TestDll", "Sum" di TestDll.Sum.
objSum.augend = 10.52 'augend atribut adalah summand
objSum.addend = 382.41 'atribut tambahan adalah tambahan
Hasil = objSum.Plus 'Ditambah jumlah metode
Respon. Tulis Hasil
Tetapkan objSum = Tidak Ada
%>
Harap pastikan untuk mengingat kata kunci berikut: TestDll, Sum, augend, addend, Plus, yang akan terkait erat dengan pekerjaan selanjutnya. Berikut langkah detailnya:
1. Jalankan VB6.0, di menu "File", klik "New Project" → di kotak dialog "New Project", klik dua kali ikon "ActiveX DLL" → Visual Basic akan secara otomatis menambahkan modul kelas ke yang baru project Class1 (dapat dilihat pada “Project Explorer”, seperti terlihat pada Gambar 1).
2. Tekan tombol F4 untuk membuka jendela Properties. Klik dua kali atribut "Nama" dan ubah "Kelas1" menjadi Jumlah.
3. Pada menu Proyek, klik Properti Proyek 1 untuk membuka kotak dialog Properti Proyek. Isikan TestDll pada "Project Name" dan "Create ActiveX DLL Contoh" pada "Project Description". Seperti yang ditunjukkan pada Gambar 2.
Tip: Apakah Anda memahami arti dari dua pengidentifikasi TestDLL.Sum dalam komponen pembuatan ASP?
4. Di menu "File", klik "Simpan Proyek" dan simpan file proyek dengan nama berikut: SetupDll.cls dan SetupDll.vbp.
5. Buat properti untuk kelas Sum:
(1) Pada menu "Alat", pilih "Tambahkan Proses" untuk membuka kotak dialog "Tambahkan Proses". Di kotak "Nama", masukkan augend, klik "Properti", lalu klik "OK", seperti yang ditunjukkan pada Gambar 3 (Catatan: Fokus saat ini harus berada pada jendela kode, jika tidak, menu "Tambahkan Prosedur" tidak akan valid ).
(2) Pada menu "Alat", pilih "Tambahkan Proses" untuk membuka kotak dialog "Tambahkan Proses". Di kotak Nama, masukkan tambahan, klik Properti, lalu klik OK.
6. Buat metode untuk kelas Sum:
Pada menu Alat, klik Tambah Prosedur untuk membuka kotak dialog Tambah Prosedur. Di kotak "Nama", masukkan Plus. Pada tipenya, Anda dapat memilih "Subrutin" atau "Fungsi". Dalam contoh ini, karena Anda ingin mengembalikan jumlah penjumlahan dan penjumlahan, klik "Fungsi" lalu klik "Fungsi". Klik Oke.
Sekarang lima kata kunci pada kode ASP sebelumnya telah digunakan, jadi sekarang Anda memahami banyak hal.
7. Semua kode di jendela kode Sum modul kelas adalah sebagai berikut:
Opsi Eksplisit
Mdbl_augend Pribadi Sebagai Ganda
Mdbl_addend pribadi sebagai ganda
Properti Publik Dapatkan augment() Sebagai Ganda
tambahan = mdbl_augend
Properti Akhir
Properti Publik Biarkan bertambah (ByVal vNewValue As Double)
mdbl_augend = vNilai Baru
Properti Akhir
Properti Publik Dapatkan addend() Sebagai Ganda
tambahan = mdbl_addend
Properti Akhir
Properti Publik Biarkan ditambahkan (ByVal vNewValue As Double)
mdbl_addend = vNilai Baru
Properti Akhir
Fungsi Publik Plus()
Ditambah = tambah + tambah
Fungsi Akhir
Anda telah memperhatikan bahwa kode di atas sedikit berbeda dari kode yang dihasilkan sistem, terutama karena bagian Public Property Get augend() As Variant digantikan oleh tipe data aktual Double.
Catatan: Faktanya, ketika pernyataan x = objSum.augend dijalankan, prosedur Property Get dipanggil untuk mendapatkan nilai mdbl_augend. Ketika pernyataan objSum.augend = 10.52 dijalankan, prosedur Property Let dipanggil dan 10.52 ditugaskan. ke mdbl_augend.
8. Langkah terakhir adalah klik "Generate .Dll(K)..." pada menu "File" untuk menghasilkan file SetupDll.dll.
Pada titik ini, komponen telah dibuat. Sekarang, pertama-tama kita dapat menulis proyek pengujian di VB6 untuk menguji apakah file tersebut benar.
1. Di menu "File", klik "Proyek Baru" → klik dua kali "Standard EXE".
2. Di menu "Proyek", klik "Referensi" → tekan tombol "Jelajahi" di kotak dialog "Referensi", pilih file "SetupDll.dll" yang baru saja dikompilasi → klik "OK".
3. Terakhir tulis kode berikut di jendela kode:
Opsi Eksplisit
Sub Formulir_Load() Pribadi
Redupkan objSum Sebagai TestDll.Sum
Tetapkan objSum = Jumlah Baru
objSum.augend = 10.52
objSum.tambahan = 382.41
MsgBox objSum.Plus
Akhiri Sub
Jalankan dan hasilnya benar. Selanjutnya kita gunakan komponen ini di ASP. Salin SetupDll.dll ke server Web, dan gunakan perintah "Regsvr32.exe setupdll.dll" untuk mendaftarkan komponen, lalu jalankan program ASP di awal bagian ini di browser. Jika tidak berhasil, Anda dapat mencoba mengemasnya dengan alat pengemasan VB6 terlebih dahulu, lalu menginstalnya. Komponen akan terdaftar secara otomatis, dan beberapa file yang menjalankan VB6 yang diperlukan juga akan diinstal secara otomatis.
Catatan: Semua program di bagian ini ada di Setupdll.zip dari paket unduhan.
Dalam contoh di atas, kita menggunakan prosedur properti Property Get dan Property Let untuk menambahkan properti (Property Get membaca nilai properti, dan Property Let memberikan nilai ke properti). tulis kode yang sesuai dalam proses Property Let. Seperti kode berikut:
Properti Publik Biarkan bertambah (ByVal vNewValue As Double)
Jika vNewValue < 100 Maka
MsgBox "Apa yang kamu lakukan! Jika nilainya kurang dari 100, hitung saja sendiri."
Kalau tidak
mdbl_augend = vNilai Baru
Akhiri Jika
Properti Akhir
2. Cara lain untuk menambahkan properti dan metode ke komponen
1. Cara paling sederhana untuk menambahkan atribut adalah dengan menambahkan variabel publik, seperti pada contoh di atas, kode paling sederhana adalah sebagai berikut:
Opsi Eksplisit
Augend publik Sebagai Ganda ' Tambahkan atribut augment
Penambahan publik Sebagai Ganda ' Tambahkan atribut tambahan
Fungsi Publik Plus() Sebagai Ganda
Ditambah = tambah + tambah
Fungsi Akhir
Namun, metode ini hanya dapat mengatur properti baca/tulis dan tidak dapat memverifikasi nilai yang ditetapkan. Jika Anda hanya perlu menambahkan atribut read-only: Pada contoh di atas, hapus proses Public Property Let augend(ByVal vNewValue As Double), maka augend menjadi atribut read-only dan tidak dapat diberi nilai. Tentu saja, jika Anda ingin menambahkan properti write-only, hapus saja prosedur Property Get.
2. Menggunakan utilitas pembuat kelas
Ada juga alat untuk menambahkan properti dan metode di VB6: Di menu "Add-in", klik "Add-in Manager", pilih "VB Class Builder Utility" di kotak dialog Add-in Manager yang muncul, dan load Pilih "Muat/Bongkar" dalam perilaku (Gambar 4). Lalu klik Utilitas Pembangun Kelas di menu Add-In dan Anda akan tahu cara menggunakannya.
3. Memberi tahu Anda beberapa hal yang perlu diperhatikan
1. Contoh di atas adalah komponen yang sangat sederhana. Komponen yang lebih praktis umumnya memiliki setidaknya satu modul.
2. Jika Anda tidak berhati-hati, Visual Basic dapat menghasilkan komponen "single-threaded".
Mungkin salah satu kesalahan paling umum adalah menggunakan komponen yang tidak dirancang untuk berjalan di bawah ASP, seperti komponen "single-threaded". Oleh karena itu, pastikan modul threading diatur ke "Apartment Threading" pada tab "Umum" di halaman "Properti Proyek".
3. Tentang kesalahan "ketik ketidakcocokan".
Saran yang bagus adalah mendeklarasikan parameter Out sebagai Varian. Perhatikan bahwa ini tidak diatur dalam contoh di atas.
4. Tentang penggunaan variabel global.
Cobalah untuk menghindari penggunaan variabel global dalam komponen. Dalam istilah Visual Basic, ini berarti tidak ada variabel Publik atau Global dalam modul .BAS standar. Karena variabel Global tidak benar-benar global. Setiap thread memiliki salinannya sendiri, dan jika beberapa metode dieksekusi di thread yang sama, mereka akan melihat variabel yang sama, jika tidak, mereka mengakses salinan berbeda dari variabel-variabel ini; Ini berarti Anda dapat menetapkan nilai ke variabel global (di thread A), tetapi pengguna lain dari variabel tersebut (yang mengeksekusi di thread B) tidak dapat melihat nilai baru. Alasannya adalah Visual Basic secara internal menggunakan "Thread Local Storage (TLS)" untuk mereferensikan variabel global. Ini berarti setiap thread memiliki salinan variabel Publiknya sendiri, dan karena ada banyak salinannya, data global tidak benar-benar "global". Artinya, pengguna yang kebetulan berjalan di thread yang sama akan mengakses variabel yang sama, baik mereka mengharapkannya atau tidak.
Terakhir, VB6.0 memperkenalkan jenis aplikasi Visual Basic baru: aplikasi IIS. Anda dapat membuat aplikasi IIS seperti Anda membuat DLL ActiveX. Aplikasi apa pun yang dibuat dengan Halaman Server Aktif dapat dibuat di lingkungan pengembangan VB. Anda dapat sepenuhnya mengganti semua Halaman Server Aktif dengan satu aplikasi VB.