Buat komponen sisi server asp menggunakan vb
Artikel ini memperkenalkan cara memanggil komponen vb dalam kode asp dengan membandingkan dengan metode desain tradisional. Pada artikel ini, kami berasumsi bahwa pembaca memiliki pengetahuan pengantar yang relevan tentang VB dan ASP.
Perbandingan komponen sisi server dan komponen sisi klien
Ada banyak perbedaan antara komponen sisi server dan komponen sisi klien. Komponen sisi server adalah file dll yang terdaftar di server komputer, dan komponen sisi klien terdaftar di komputer tempat browser berjalan. Di IE, komponen sisi klien ini disebut komponen plug-in browser activex.
Komponen klien ActiveX dapat ditulis dalam VB dan dikirim ke browser melalui Internet atau intranet untuk menghasilkan efek yang luar biasa. Masalahnya adalah komponen sisi klien activex terbatas pada ie, sedangkan komponen sisi server yang ditulis dalam vb dapat menghasilkan kode html murni dan cocok untuk semua browser. Masalah terbesar dengan komponen sisi server adalah komponen tersebut harus berjalan di lingkungan Windows+IIS atau aplikasi yang kompatibel dengan API IIS. Sebagai perbandingan, tampaknya lebih mudah untuk mencapai kompatibilitas ini di sisi server.
Komponen sisi server IIS berada di ruang memori yang sama dengan IIS dan selalu siap untuk panggilan ke halaman web ASP yang diproses di server. Secara teori, kita dapat memasukkan teks atau kode apa pun ke dalam kode ASP yang dikembalikan ke browser, tetapi secara umum, sebagian besar komponen sisi server digunakan untuk menangani perhitungan atau pencarian informasi database yang memerlukan banyak waktu, dan kemudian hasilnya. dikembalikan ke browser dalam bentuk kode html.
Analisis komponen vb
Karena artikel ini bertujuan untuk membahas metode dasar penulisan komponen VB, contohnya akan sangat sederhana jika dapat menggambarkan masalahnya. Sebelum membahas penulisan komponen VB secara detail, kita akan menganalisis terlebih dahulu komponen VB secara konseptual.
Saat menggunakan VB untuk menulis komponen sisi server, ada tiga konsep hierarki (digunakan dalam kode VB dan ASP) yang perlu diperhatikan:
·nama proyek
· nama kelas
· nama metode
Nama proyek VB adalah nama proyek. Banyak pengembang yang menganggap nama proyek sebagai nama komponen, tetapi VB hanya menganggapnya sebagai nama proyek. Dalam contoh kita, nama proyeknya adalah exampleproject. Tentu saja, kita dapat memberi nama proyek kita sendiri secara sewenang-wenang; nama kelasnya adalah exampleclass, dan nama metodenya adalah examplemethod.
Nama proyek (nama komponen) juga dapat berupa nama file dll yang dikompilasi dari kode komponen. File dll akan berisi kode vb yang dikompilasi yang digunakan oleh iis untuk mengembalikan teks atau kode html ke browser.
Nama metode mengacu pada bagian kode Visual Basic yang mengelola fungsi kode tertentu, seperti menghitung tanggal atau menampilkan daftar semua penulis dalam database. Metode komponen adalah sejenis kotak hitam yang melakukan pekerjaan tertentu atau mengembalikan informasi spesifik berdasarkan informasi masukan. Umumnya, ada beberapa metode dalam satu komponen. Untuk mengelola metode komponen dengan lebih efektif, metode dapat dikelompokkan berdasarkan klasifikasi serupa. Inilah peran kelas komponen.
Kelas komponen dapat menghasilkan salinan kode kelas komponen di memori. Saat menggunakan kode asp untuk membuat objek, ini juga disebut objek. Setelah kita memiliki referensi objek ke contoh kode kelas komponen, kita dapat memanggil metode yang terdapat dalam kelas tersebut dari kode asp.
Dalam contoh kita, nama proyek, kelas, dan metode akan digunakan untuk membuat instance komponen VB dalam kode ASP, dan meneruskan nilai dari kode ASP ke kode VB dalam bentuk parameter metode, yang diterima di Kode ASP dari metode VB. Nilai dikembalikan.
Panggil komponen vb dari file asp
File asp yang kita gunakan untuk memanggil komponen vb akan menggunakan variabel objek untuk menyimpan referensi ke objek vb. Dalam file asp, Anda dapat membuat objek menggunakan metode createobject() dari objek server asp, yang akan mengembalikan referensi ke objek yang dibuatnya. Dalam contoh ini, kita akan menggunakan objreference sebagai variabel objek komponen. Kode berikut menunjukkan bahwa kode asp perlu menggunakan nama proyek komponen dan nama kelas (proyek contoh dan kelas contoh) saat membuat instance komponen vb.
Kode ASP untuk membuat instance komponen vb:
setel objreference = server.createobject(exampleproject.exampleclass)
Komponen vb akan menerima nilai 3 variabel dari kode asp dan mengembalikan nilai ke kode asp, yang akan disimpan dalam variabel asp bernama strmethodreturn. Kode berikut menunjukkan bagaimana kode asp mendapatkan nilai yang dikembalikan oleh komponen vb. Kode ini meneruskan tiga nilai parameter bernama param1, param2 dan parma3 ke metode vb:
strmethodreturn = objreference.examplemethod(param1, param2, param3)
Ketiga parameter param1, param2, dan param3 harus sama persis dengan definisi metode pada komponen VB. Berikut ini adalah contoh dua baris kode ASP yang membuat instance kelas komponen VB dan memanggil metode kelas tersebut ke. mendapatkan nilai kembalian:
setel objreference = server.createobject(exampleproject.exampleclass)
strmethodreturn = objreference.examplemethod(param1, param2, param3)
Bagan di bawah ini secara visual menunjukkan bagaimana nama proyek, kelas, dan metode komponen VB dikoordinasikan dengan kode instantiasi komponen dalam file ASP. Anda dapat menggunakan bagan di bawah ini sebagai referensi saat Anda mempelajari langkah demi langkah cara menulis kode vb dan file asp pada contoh.
Peran metode vb
Komponen VB sederhana dalam contoh kita akan mendapatkan nama dan usia pengguna, lalu mengembalikan usia pengguna dalam hari, dan terdapat opsi untuk mengingatkan pengguna apakah ia berusia di atas 45 tahun.
Jika kita meneruskan eric clapton fiktif ke komponen sebagai nilai parameter pertama dari metode, dan menyetel parameter kedua ke 56, kita akan mendapatkan string kembalian berikut:
eric clapton berusia lebih dari 20440 hari.
Jika kita menyetel parameter opsional ketiga ke true (parameter ini akan membuat metode menentukan apakah pengguna berusia di atas 45 tahun), kita akan mendapatkan string kembalian berikut:
eric clapton berusia lebih dari 20440 hari.
Karena tiga variabel yang sangat berbeda digunakan - nama pengguna, usia dan apakah mereka berusia di atas 45 tahun, kita perlu menggunakan tiga parameter metode untuk mentransfer informasi ini dari file ASP ke kode VB. Di VB, sangat penting untuk mempertimbangkan tipe data mana yang akan digunakan. Kita akan menggunakan variabel string bernama strname untuk mewakili nama pengguna, variabel integer bernama intage untuk mewakili usia pengguna, dan variabel Boolean bernama blnageemphasison untuk menunjukkan apakah pengguna berusia di atas 45 tahun.
Tiga parameter metode (variabel diteruskan ke kode metode komponen vb):
nama str (string)
intage (bilangan bulat)
penekanan blnage (boolean)
Buat komponen sisi server di vb
Setelah memulai vb, klik dua kali ikon "activex dll" di jendela "Proyek Baru". Setelah VB memuat proyek activex dll yang baru, Anda akan melihat setidaknya dua jendela terbuka: jendela proyek dan jendela properti. Jika jendela tidak dapat ditampilkan, Anda dapat memilih item menu "View" dari menu VB (masing-masing gunakan "View" -> "Project Manager", "View" -> "Properties Window").
Karena nama default proyek dan kelas pertama di VB masing-masing adalah project1 dan class1, kita dapat mengubahnya menjadi exampleproject dan exampleclass. Nama proyek dapat diubah di jendela proyek. Ada kotak kecil dengan tanda + atau - di sebelah kiri nama proyek yang baru dimasukkan di jendela proyek. Jika tanda + ditampilkan, pilih kotak kecil, tanda + akan berubah menjadi tanda -, dan nama kelas default (kelas1) akan ditampilkan di bawah nama proyek. Pilih nama kelas default di jendela proyek, dan ubah nama kelas default menjadi kelas contoh di jendela properti.
Saat menyimpan proyek, VB akan menyimpan kode yang berisi kelas tersebut dalam file dengan ekstensi cls. Ekstensi file proyek adalah vbp, yang menyimpan berbagai pengaturan proyek, nama file, dan lokasi penyimpanan file.
Nilai properti untuk komponen sisi server
Tampilkan properti kelas contoh di jendela properti. Perhatikan bahwa nilai properti instancing adalah "5 multiuse". Jika jenis proyek disetel ke proyek exe standar, nilai properti ini akan berubah.
Pilih "Proyek" -> "Properti Proyek Contoh" di menu VB, dan jendela properti proyek akan ditampilkan. Nilai properti "Mode Threading" di kanan bawah tab "Umum" harus disetel ke "Apartment Threading", yang akan memungkinkan banyak pengunjung untuk menggunakan instance berbeda dari kelas komponen kami secara bersamaan. Selain itu, pilih dua opsi "Eksekusi Tanpa Pengawasan" dan "Memori Tetap" untuk menghindari kebocoran memori di VB6.
kode metode vb
Sekarang kita perlu menggunakan jendela kode vb untuk memasukkan kode vb. Jika jendela kode masih kosong, masukkan kode berikut:
pilihan eksplisit
'Ini mengharuskan kita untuk mendefinisikan semua variabel.
metode contoh fungsi publik (byval strname sebagai string, _
byval intage sebagai bilangan bulat, _
opsional byval blnagepenekanan sebagai boolean = false) sebagai string
Pada kode di atas, kita mendefinisikan metode sebagai fungsi publik, artinya kode apa pun di luar komponen dapat memanggilnya. Karena ini adalah fungsi, maka kode yang memanggilnya juga akan mengembalikan nilai.
fungsi publik examplemethod() sebagai string
Kode di atas menunjukkan bahwa fungsi examplemethod() akan mengembalikan nilai tipe string ke pemanggilnya.
Metode vb kami hadir dengan 3 variabel parameter yang menerima nilai dari kode asp, variabel parameter terakhir bersifat opsional. Semua variabel parameter yang digunakan untuk menerima nilai dari luar komponen VB perlu didefinisikan dan digunakan di antara tanda kurung metode VB. Kita dapat menggunakan variabel yang didefinisikan dengan cara ini sebagai parameter metode seperti variabel yang didefinisikan dalam metode di antara mereka adalah kode asp luar yang menentukan nilainya.
Berikut ketiga variabel dan tipe datanya:
byval strname sebagai string
byval intage sebagai bilangan bulat
opsional byval blnagepenekanan sebagai boolean = false
Kode di atas mendefinisikan tipe data dari tiga parameter metode, menunjukkan bahwa parameter tersebut diteruskan berdasarkan nilai, dan parameter ketiga bersifat opsional. Jika tidak ada parameter ketiga, nilai defaultnya adalah false.
Kemudian, kami akan menambahkan beberapa koma, spasi, dan garis bawah (_) yang diperlukan pada definisi metode agar dapat memenuhi persyaratan tata bahasa VB. Kami akan meletakkan daftar parameter di antara tanda kurung definisi metode, dan definisi metode yang dihasilkan adalah sebagai berikut:
metode contoh fungsi publik (byval strname sebagai string, _
byval intage sebagai bilangan bulat, _
opsional byval blnagepenekanan sebagai boolean = false) sebagai string
Masukkan definisi metode di atas di jendela kode VB, dan pernyataan fungsi akhir akan dihasilkan. Antara definisi metode dan fungsi akhir adalah tempat kita menulis kode kita sendiri.
Baris kode pertama yang kita tambahkan di badan metode adalah mendefinisikan variabel string untuk menyimpan data string yang dikembalikan oleh metode tersebut. Daripada menggunakan variabel string, kita bisa menggunakan string untuk mengembalikan data teks ke kode yang memanggil metode tersebut.
redupkan strreturnstring sebagai string
Selanjutnya kita bisa membuat string yang dikembalikan. Kita dapat menggunakan nilai variabel strname yang diteruskan oleh kode asp melalui daftar parameter metode. Pertama gabungkan nilai variabel parameter strname dengan string "is over". Selanjutnya kita akan menggunakan variabel parameter intage untuk menghitung jumlah hari seseorang bertahan hidup, dan kemudian menambahkan string "usia dalam hari" ke string sebelumnya. Perlu dicatat bahwa kita perlu mengubah produk dari dua bilangan bulat intage * 365 menjadi string sebelum menggabungkannya dalam string strreturnstring. Metode cstr() di VB dapat mencapai tujuan ini.
strreturnstring = strname & selesai & cstr(intage * 365)
Jika diasumsikan bahwa nama yang diteruskan ke komponen dari kode asp adalah eric clapton, dan parameter age adalah 56, maka strreturnstring harus berisi konten berikut:
eric clapton sudah berakhir 20440
String terakhir kita akan ditambahkan berdasarkan apakah nilai variabel intage melebihi 45 dan apakah variabel blnageemphasison disetel ke true.
"hari tua" atau "hari tua". Kode berikut dapat mencapai fungsi ini:
jika blnageemphasis dan intage > 44 maka
strreturnstring = strreturnstring & berumur beberapa hari.
kalau tidak
strreturnstring = strreturnstring & berumur beberapa hari.
berakhir jika
Jika kode asp tidak meneruskan nilai variabel blnageemphasison ke komponen sebagai parameter metode, nilainya akan disetel ke false secara default sesuai dengan definisi metode kami. Jika diset ke true dan nilai variabel intage lebih besar dari 45, maka akan diperoleh output sebagai berikut:
eric clapton berusia lebih dari 20440 hari.
Jika tidak, kita mendapatkan keluaran berikut:
eric clapton berusia lebih dari 20440 hari.
Untuk mengembalikan string di atas ke kode asp komponen pemanggil, kami menetapkan nilai string ke nama metode:
contohmetode = strreturnstring
Kode metode lengkapnya adalah sebagai berikut:
metode contoh fungsi publik (byval strname sebagai string, _
byval intage sebagai bilangan bulat, _
opsional byval blnagepenekanan sebagai boolean = false) sebagai string
'///// Buat variabel lokal
redupkan strreturnstring sebagai string
'///// Buat nilai variabel yang dikembalikan
strreturnstring = strname & selesai & cstr(intage * 365)
'///// Tingkatkan strreturnstring
jika blnageemphasis dan intage > 44 maka
strreturnstring = strreturnstring & berumur beberapa hari.
kalau tidak
strreturnstring = strreturnstring & berumur beberapa hari.
berakhir jika
'///// Mengembalikan string
contohmetode = strreturnstring
fungsi akhir
Panggil metode vb dalam kode asp
Buat instance objek vb dalam kode asp
Sebagian besar kode ASP yang kita perlukan telah dibahas dalam gambaran konseptual di atas. Dalam kode asp, kita masih perlu menyelesaikan pekerjaan berikut secara berurutan:
·Gunakan metode createobject() dari objek server asp untuk membuat instance komponen vb.
·Panggil metode komponen menggunakan variabel parameter metode yang sesuai.
·Menetapkan nilai string yang dikembalikan dari metode vb ke variabel dalam variabel asp.
·Kemudian gunakan variabel ini dalam metode respon.write() untuk mengirim string ke browser.
Kita akan menggunakan beberapa kode pada file asp untuk membuat instance kelas dari komponen vb. Berikut ini adalah kode untuk instantiasi komponen vb:
setel objreference = server.createobject(exampleproject.exampleclass)
Metode createobject() dari objek server ASP mengembalikan alamat objek kode VB, sehingga kita dapat memanggil metode publik apa pun dari kelas tersebut di ASP. Perlu dicatat bahwa parameter metode dari metode asp createobject() adalah nama proyek dan kelas vb, objreference digunakan untuk memelihara referensi ke instance objek kelas komponen.
Cara menggunakan komponen dalam file asp
Sekarang, kita dapat menggunakan metode kelas komponen examplemethod untuk mendapatkan indikasi umur seseorang dalam beberapa hari. Kode berikut menggunakan nilai parameter dan menetapkan nilai string yang dikembalikan dari metode ke variabel bernama strmethodreturn:
strmethodreturn = objreference.examplemethod(eric clapton, 56, benar)
Tip: Saat komponen kita dipakai, objreference merepresentasikan kelas exampleproject.example yang muncul di metode createobject(). Meskipun kita dapat menganggap objreference.examplemethod setara dengan exampleproject.exampleclass.examplemethod(), kita tidak dapat menggunakannya dengan cara ini.
Tentu saja, kita juga dapat menggunakan variabel sebagai pengganti nilai langsung sebagai parameter metode. Nama variabel parameter yang dipilih tidak harus sama dengan yang ada di daftar parameter metode VB nomor, jenis, dan jumlah parameter non-opsional dalam daftar parameter. Urutannya sama.
aspname = eric clapton aspage = 56 aspemphasis = true strmethodreturn = objreference.examplemethod(aspname, aspage, aspemphasis)
Menggunakan variabel alih-alih nilai membuat kode Anda lebih jelas dan mudah dikelola, terutama jika kodenya panjang.
Sekarang kita hanya perlu mengembalikan strmethodreturn ke browser yang mengakses kode asp di metode asp respon.write(). Di bawah ini adalah kode asp lengkap. Di akhir kode, kami menambahkan baris kode yang memisahkan alamat objek komponen untuk menghapus kode objek komponen:
<%
'///// Membuat instance objek komponen
setel objreference = server.createobject(exampleproject.exampleclass)
'///// Tetapkan variabel lokal sebagai parameter metode
aspname = eric clapton
halaman=56
aspemfasis = benar
'///// Panggil metode komponen dan simpan nilai yang dikembalikan
strmethodreturn = objreference.examplemethod(aspname, aspage, aspemphasis)
'///// Kirim nilai kembalian ke browser yang mengunjungi
respon.tulis(strmethodreturn)
'///// Hapus objek komponen
setel keberatan = tidak ada
%>
Menyimpan kode asp di atas dalam file asp akan menghasilkan output string berikut:
eric clapton berusia lebih dari 20440 hari.
Aktifkan kode asp untuk memanggil file dll
Pengujian komponen kami adalah memberi tahu windows di mana ia disimpan dan kapan kode asp memanggilnya. Pertama, pilih ikon "Jalankan" atau "Jalankan/Mulai" di menu VB, dan VB akan mendaftarkan sementara komponen tersebut ke sistem.
Tip: Anda tidak dapat menggunakan browser untuk memuat file ASP secara langsung seperti memuat file html.
Browser akan menampilkan tulisan "eric clapton berumur lebih dari 20440 hari."
Agar komponen dapat berjalan di server lain, komponen tersebut harus dikompilasi menjadi file dll dan kemudian didaftarkan di server. Tentu saja, jika Anda ingin menggunakan komponen secara permanen di komputer pengembangan, Anda juga perlu mengkompilasi dan mendaftarkannya. Satu-satunya file yang diperlukan untuk menjalankan komponen ini di komputer lain adalah file dll yang telah dikompilasi. Tentu saja, ini mengharuskan komputer tersebut menginstal file perpustakaan runtime vb.
Cara mengkompilasi kode sumber komponen untuk mendapatkan file dll dan cara mendaftarkan komponen pada komputer berada di luar cakupan artikel ini, jadi kami tidak akan menjelaskannya secara detail.
Sebagai produk sampingan dari penulisan komponen sisi server IIS, kita dapat memanggil metode komponen tertulis dari file ASP dan komponen VB lainnya, yang selanjutnya akan meningkatkan fleksibilitas dan modularitas kode.