สร้างส่วนประกอบฝั่งเซิร์ฟเวอร์ asp โดยใช้ vb
บทความนี้แนะนำวิธีการเรียกส่วนประกอบ vb ในโค้ด asp โดยการเปรียบเทียบกับวิธีการออกแบบแบบดั้งเดิม ในบทความนี้ เราถือว่าผู้อ่านมีความรู้เบื้องต้นที่เกี่ยวข้องเกี่ยวกับ VB และ ASP
การเปรียบเทียบส่วนประกอบฝั่งเซิร์ฟเวอร์และส่วนประกอบฝั่งไคลเอ็นต์
มีความแตกต่างมากมายระหว่างส่วนประกอบฝั่งเซิร์ฟเวอร์และส่วนประกอบฝั่งไคลเอ็นต์ ส่วนประกอบฝั่งเซิร์ฟเวอร์คือไฟล์ dll ที่ลงทะเบียนบนเซิร์ฟเวอร์คอมพิวเตอร์ และส่วนประกอบฝั่งไคลเอ็นต์จะถูกลงทะเบียนบนคอมพิวเตอร์ที่เบราว์เซอร์ทำงานอยู่ ใน IE ส่วนประกอบฝั่งไคลเอ็นต์เหล่านี้เรียกว่าส่วนประกอบปลั๊กอินของเบราว์เซอร์ activex
ส่วนประกอบไคลเอนต์ ActiveX สามารถเขียนใน VB และส่งไปยังเบราว์เซอร์ผ่านทางอินเทอร์เน็ตหรืออินทราเน็ตเพื่อสร้างเอฟเฟกต์ที่ยอดเยี่ยม ปัญหาคือส่วนประกอบฝั่งไคลเอ็นต์ของ ActiveX นั้นถูกจำกัดอยู่เพียงนั้น ในขณะที่ส่วนประกอบฝั่งเซิร์ฟเวอร์ที่เขียนด้วย vb สามารถสร้างโค้ด html ล้วนๆ และเหมาะสำหรับทุกเบราว์เซอร์ ปัญหาใหญ่ที่สุดเกี่ยวกับส่วนประกอบฝั่งเซิร์ฟเวอร์คือส่วนประกอบนั้นต้องทำงานในสภาพแวดล้อม Windows+IIS หรือแอปพลิเคชันที่เข้ากันได้กับ API ของ IIS เมื่อเปรียบเทียบกันแล้ว ดูเหมือนว่าจะง่ายกว่าที่จะบรรลุความเข้ากันได้นี้ทางฝั่งเซิร์ฟเวอร์
ส่วนประกอบฝั่งเซิร์ฟเวอร์ IIS อยู่ในพื้นที่หน่วยความจำเดียวกันกับ IIS และพร้อมเสมอสำหรับการเรียกไปยังเว็บเพจ ASP ที่ประมวลผลบนเซิร์ฟเวอร์ ตามทฤษฎีแล้ว เราสามารถแทรกข้อความหรือโค้ดใดๆ ในโค้ด ASP ที่ส่งคืนไปยังเบราว์เซอร์ได้ แต่โดยทั่วไปแล้ว ส่วนประกอบฝั่งเซิร์ฟเวอร์ส่วนใหญ่จะใช้เพื่อจัดการการคำนวณหรือการค้นหาข้อมูลฐานข้อมูลที่ต้องใช้เวลามาก จากนั้นจึงเกิดผลลัพธ์ ผลลัพธ์ จะถูกส่งกลับไปยังเบราว์เซอร์ในรูปแบบของโค้ด html
การวิเคราะห์ส่วนประกอบ vb
เนื่องจากบทความนี้มีจุดมุ่งหมายเพื่อหารือเกี่ยวกับวิธีการพื้นฐานในการเขียนส่วนประกอบ VB ตัวอย่างจะง่ายมากหากสามารถอธิบายปัญหาได้ ก่อนที่จะหารือเกี่ยวกับการเขียนส่วนประกอบ VB โดยละเอียด เราจะวิเคราะห์องค์ประกอบ VB ตามแนวคิดก่อน
เมื่อใช้ VB เพื่อเขียนส่วนประกอบฝั่งเซิร์ฟเวอร์ มีแนวคิดเกี่ยวกับลำดับชั้นสามประการ (ใช้ในโค้ด VB และ ASP) ที่ต้องให้ความสนใจ:
·ชื่อโครงการ
·ชื่อชั้นเรียน
·ชื่อวิธีการ
ชื่อของโครงการ VB คือชื่อโครงการ นักพัฒนาหลายคนถือว่าชื่อโครงการเป็นชื่อส่วนประกอบ แต่ VB ถือว่าเป็นเพียงชื่อของโครงการเท่านั้น ในตัวอย่างของเรา ชื่อโปรเจ็กต์คือ exampleproject แน่นอนว่าเราสามารถตั้งชื่อโปรเจ็กต์ของเราเองได้ โดยชื่อคลาสคือ exampleclass และชื่อเมธอดคือ examplemethod
ชื่อโปรเจ็กต์ (ชื่อส่วนประกอบ) อาจเป็นชื่อของไฟล์ dll ที่คอมไพล์จากโค้ดคอมโพเนนต์ ไฟล์ dll จะมีโค้ด vb ที่คอมไพล์แล้วซึ่งใช้โดย iis เพื่อส่งคืนข้อความหรือโค้ด html ไปยังเบราว์เซอร์
ชื่อวิธีการอ้างอิงถึงส่วนของโค้ด Visual Basic ที่จัดการฟังก์ชันโค้ดเฉพาะ เช่น การคำนวณวันที่ หรือการแสดงรายการของผู้เขียนทั้งหมดในฐานข้อมูล วิธีการแบบคอมโพเนนต์เป็นกล่องดำชนิดหนึ่งที่ทำงานเฉพาะหรือส่งคืนข้อมูลเฉพาะตามข้อมูลที่ป้อนเข้า โดยทั่วไป อาจมีหลายวิธีในส่วนประกอบ เพื่อที่จะจัดการวิธีการส่วนประกอบได้อย่างมีประสิทธิภาพมากขึ้น วิธีการสามารถจัดกลุ่มเข้าด้วยกันตามการจำแนกประเภทที่คล้ายคลึงกัน นี่คือบทบาทของคลาสส่วนประกอบ
คลาสส่วนประกอบสามารถสร้างสำเนาของโค้ดคลาสส่วนประกอบในหน่วยความจำ เมื่อใช้โค้ด asp เพื่อสร้างอ็อบเจ็กต์ ก็จะเรียกว่าอ็อบเจ็กต์ เมื่อเรามีการอ้างอิงอ็อบเจ็กต์ไปยังอินสแตนซ์โค้ดคลาสส่วนประกอบแล้ว เราก็สามารถเรียกเมธอดที่มีอยู่ในคลาสจากโค้ด asp ได้
ในตัวอย่างของเรา ชื่อโครงการ คลาส และเมธอดจะถูกใช้เพื่อสร้างอินสแตนซ์ส่วนประกอบ VB ในโค้ด ASP และส่งผ่านค่าจากโค้ด ASP ไปยังโค้ด VB ในรูปแบบของพารามิเตอร์เมธอด ซึ่งได้รับใน รหัส ASP จากวิธี VB ค่าที่ส่งคืน
เรียกองค์ประกอบ vb จากไฟล์ asp
ไฟล์ asp ที่เราใช้เรียกส่วนประกอบ vb จะใช้ตัวแปรวัตถุเพื่อบันทึกการอ้างอิงไปยังวัตถุ vb ในไฟล์ asp คุณสามารถสร้างออบเจ็กต์โดยใช้เมธอด createobject() ของออบเจ็กต์เซิร์ฟเวอร์ asp ซึ่งจะส่งคืนการอ้างอิงไปยังออบเจ็กต์ที่สร้างขึ้น ในตัวอย่าง เราจะใช้ objreference เป็นตัวแปรอ็อบเจ็กต์ของส่วนประกอบ รหัสต่อไปนี้แสดงว่ารหัส asp จำเป็นต้องใช้ชื่อโครงการของส่วนประกอบและชื่อคลาส (exampleproject และ exampleclass) เมื่อสร้างอินสแตนซ์ขององค์ประกอบ vb
รหัส ASP เพื่อสร้างอินสแตนซ์องค์ประกอบ vb:
ตั้งค่า objreference = server.createobject (exampleproject.exampleclass)
องค์ประกอบ vb จะยอมรับค่าของตัวแปร 3 ตัวจากโค้ด asp และส่งคืนค่าไปยังโค้ด asp ซึ่งจะถูกเก็บไว้ในตัวแปร asp ชื่อ strmethodreturn รหัสต่อไปนี้แสดงวิธีที่รหัส asp รับค่าที่ส่งคืนโดยส่วนประกอบ vb โดยส่งค่าพารามิเตอร์สามค่าชื่อ param1, param2 และ parma3 ไปยังวิธี vb:
strmethodreturn = objreference.examplemethod (param1, param2, param3)
พารามิเตอร์ทั้งสาม param1, param2 และ param3 จะต้องเหมือนกันทุกประการกับคำจำกัดความของวิธีการในส่วนประกอบ VB ต่อไปนี้เป็นตัวอย่างของโค้ด ASP สองบรรทัดที่สร้างอินสแตนซ์คลาสของส่วนประกอบ VB และเรียกใช้เมธอดคลาสเพื่อ รับค่าส่งคืน:
ตั้งค่า objreference = server.createobject (exampleproject.exampleclass)
strmethodreturn = objreference.examplemethod (param1, param2, param3)
แผนภูมิด้านล่างแสดงให้เห็นว่าชื่อโปรเจ็กต์ คลาส และเมธอดของส่วนประกอบ VB ได้รับการประสานงานกับโค้ดการสร้างอินสแตนซ์ของส่วนประกอบในไฟล์ ASP อย่างไร คุณสามารถใช้แผนภูมิด้านล่างเป็นข้อมูลอ้างอิงเมื่อคุณเรียนรู้วิธีการเขียนโค้ด vb และไฟล์ asp ในตัวอย่างทีละขั้นตอน
บทบาทของวิธี vb
ส่วนประกอบ VB แบบง่ายในตัวอย่างของเราจะได้รับชื่อผู้ใช้และอายุ จากนั้นส่งคืนอายุของผู้ใช้เป็นจำนวนวัน และมีตัวเลือกในการเตือนผู้ใช้ว่าเขาอายุเกิน 45 ปีหรือไม่
หากเราส่งอีริค แคลปตันสมมุติไปยังคอมโพเนนต์เป็นค่าพารามิเตอร์แรกของเมธอด และตั้งค่าพารามิเตอร์ตัวที่สองเป็น 56 เราจะได้รับสตริงส่งคืนต่อไปนี้:
เอริก แคลปตัน มีอายุมากกว่า 20440 วัน
หากเราตั้งค่าพารามิเตอร์ทางเลือกตัวที่สามเป็นจริง (พารามิเตอร์นี้จะทำให้เมธอดพิจารณาว่าผู้ใช้มีอายุเกิน 45 ปีหรือไม่) เราจะได้รับสตริงส่งคืนต่อไปนี้:
เอริก แคลปตัน มีอายุมากกว่า 20440 วัน
เนื่องจากมีการใช้ตัวแปรที่แตกต่างกันโดยสิ้นเชิงสามตัว ได้แก่ ชื่อผู้ใช้ อายุ และอายุมากกว่า 45 ปี เราจึงจำเป็นต้องใช้พารามิเตอร์เมธอดสามตัวเพื่อถ่ายโอนข้อมูลจากไฟล์ ASP ไปยังโค้ด VB ใน VB การพิจารณาประเภทข้อมูลที่จะใช้เป็นสิ่งสำคัญมาก เราจะใช้ตัวแปรสตริงชื่อ strname เพื่อแสดงชื่อผู้ใช้ ตัวแปรจำนวนเต็มชื่อ intage เพื่อแสดงอายุของผู้ใช้ และตัวแปรบูลีนชื่อ blnageemphasison เพื่อระบุว่าผู้ใช้มีอายุเกิน 45 ปีหรือไม่
พารามิเตอร์วิธีการสามแบบ (ตัวแปรที่ส่งผ่านไปยังรหัสวิธีการขององค์ประกอบ vb):
ชื่อ (สตริง)
ปริมาณ (จำนวนเต็ม)
blnageemphasisison (บูลีน)
สร้างส่วนประกอบฝั่งเซิร์ฟเวอร์ใน vb
หลังจากเริ่ม vb ให้ดับเบิลคลิกไอคอน "activex dll" ในหน้าต่าง "New Project" เมื่อ VB โหลดโปรเจ็กต์ activex dll ใหม่ คุณจะเห็นหน้าต่างที่เปิดอยู่อย่างน้อยสองหน้าต่าง: หน้าต่างโปรเจ็กต์และหน้าต่างคุณสมบัติ หากมีหน้าต่างที่ไม่สามารถแสดงได้ คุณสามารถเลือกรายการเมนู "มุมมอง" จากเมนู VB (ใช้ "มุมมอง" -> "ผู้จัดการโครงการ", "มุมมอง" -> "หน้าต่างคุณสมบัติ" ตามลำดับ)
เนื่องจากชื่อเริ่มต้นของโปรเจ็กต์แรกและคลาสใน VB คือ project1 และ class1 ตามลำดับ เราจึงสามารถเปลี่ยนเป็น exampleproject และ exampleclass ตามลำดับ ชื่อโครงการสามารถแก้ไขได้ในหน้าต่างโครงการ มีกล่องเล็กๆ ที่มีเครื่องหมาย + หรือ - ทางด้านซ้ายของชื่อโปรเจ็กต์ที่ป้อนใหม่ในหน้าต่างโปรเจ็กต์ หากเครื่องหมาย + ปรากฏขึ้น ให้เลือกกล่องเล็ก เครื่องหมาย + จะเปลี่ยนเป็นเครื่องหมาย - และชื่อคลาสเริ่มต้น (class1) จะแสดงใต้ชื่อโปรเจ็กต์ เลือกชื่อคลาสเริ่มต้นในหน้าต่างโปรเจ็กต์ และเปลี่ยนชื่อคลาสเริ่มต้นเป็นคลาสตัวอย่างในหน้าต่างคุณสมบัติ
เมื่อบันทึกโปรเจ็กต์ VB จะบันทึกโค้ดที่มีคลาสอยู่ในไฟล์ที่มีนามสกุล cls นามสกุลของไฟล์โปรเจ็กต์คือ vbp ซึ่งเก็บการตั้งค่าต่างๆ ของโปรเจ็กต์ ชื่อไฟล์ และตำแหน่งที่เก็บไฟล์
ค่าคุณสมบัติสำหรับส่วนประกอบฝั่งเซิร์ฟเวอร์
แสดงคุณสมบัติของคลาส exampleclass ในหน้าต่างคุณสมบัติ โปรดทราบว่าค่าของคุณสมบัติอินสแตนซ์คือ "5 multiuse" หากประเภทโครงการถูกตั้งค่าเป็นโครงการ exe มาตรฐาน ค่าของคุณสมบัตินี้จะเปลี่ยนไปตามนั้น
เลือก "โครงการ" -> "คุณสมบัติตัวอย่างโครงการ" ในเมนู VB และหน้าต่างคุณสมบัติโครงการจะปรากฏขึ้น ค่าของคุณสมบัติ "Threading Mode" ที่ด้านล่างขวาของแท็บ "ทั่วไป" ควรตั้งค่าเป็น "Apartment Threading" ซึ่งจะช่วยให้ผู้เยี่ยมชมหลายคนสามารถใช้อินสแตนซ์ที่แตกต่างกันของคลาสส่วนประกอบของเราในเวลาเดียวกัน นอกจากนี้ ให้เลือกสองตัวเลือกคือ "Unatened Execution" และ "Resident Memory" เพื่อหลีกเลี่ยงไม่ให้หน่วยความจำรั่วใน VB6
รหัสวิธีการ vb
ตอนนี้เราจำเป็นต้องใช้หน้าต่างโค้ด vb เพื่อป้อนโค้ด vb หากหน้าต่างรหัสยังคงว่างเปล่า ให้ป้อนรหัสต่อไปนี้:
ตัวเลือกที่ชัดเจน
'มันจะต้องให้เรากำหนดตัวแปรทั้งหมด
ตัวอย่างฟังก์ชั่นสาธารณะ (byval strname เป็นสตริง, _
byval intage เป็นจำนวนเต็ม _
ทางเลือก byval blnageemphasison เป็น boolean = false) เป็นสตริง
ในโค้ดข้างต้น เราได้กำหนดเมธอดเป็นฟังก์ชันสาธารณะ ซึ่งหมายความว่าโค้ดใดๆ ที่อยู่นอกคอมโพเนนต์สามารถเรียกใช้ได้ เนื่องจากเป็นฟังก์ชัน จึงจะส่งคืนค่าให้กับโค้ดที่เรียกใช้ด้วย
ฟังก์ชั่นสาธารณะ examplemethod() เป็นสตริง
โค้ดข้างต้นบ่งชี้ว่าฟังก์ชัน examplemethod() จะส่งกลับค่าประเภทสตริงให้กับผู้เรียก
วิธี vb ของเรามาพร้อมกับตัวแปรพารามิเตอร์ 3 ตัวที่ยอมรับค่าจากโค้ด asp ตัวแปรพารามิเตอร์สุดท้ายเป็นทางเลือก ตัวแปรพารามิเตอร์ทั้งหมดที่ใช้ในการรับค่าจากภายนอกองค์ประกอบ VB จะต้องถูกกำหนดและใช้ระหว่างวงเล็บของวิธีการ VB เราสามารถใช้ตัวแปรที่กำหนดในลักษณะนี้เช่นเดียวกับพารามิเตอร์ที่กำหนดภายในวิธีการ ระหว่างนั้นคือโค้ด asp ภายนอกที่กำหนดค่าของพวกเขา
ต่อไปนี้คือตัวแปร 3 ตัวและประเภทข้อมูล:
byval strname เป็นสตริง
byval intage เป็นจำนวนเต็ม
ทางเลือก byval blnageemphasis เป็น boolean = false
โค้ดด้านบนกำหนดประเภทข้อมูลของพารามิเตอร์เมธอดทั้งสาม ซึ่งระบุว่ามีการถ่ายโอนตามค่า และพารามิเตอร์ตัวที่สามเป็นทางเลือก หากไม่มีพารามิเตอร์ตัวที่สาม ค่าเริ่มต้นจะเป็นเท็จ
จากนั้น เราจะเพิ่มเครื่องหมายจุลภาค ช่องว่าง และขีดล่าง (_) ที่จำเป็นในคำจำกัดความของวิธีการ เพื่อให้สามารถตอบสนองข้อกำหนดทางไวยากรณ์ของ VB เราจะใส่รายการพารามิเตอร์ไว้ระหว่างวงเล็บของคำจำกัดความของวิธีการ และคำจำกัดความของวิธีการที่ได้จะเป็นดังนี้:
ตัวอย่างฟังก์ชั่นสาธารณะ (byval strname เป็นสตริง, _
byval intage เป็นจำนวนเต็ม _
ทางเลือก byval blnageemphasison เป็น boolean = false) เป็นสตริง
ป้อนคำจำกัดความของวิธีการข้างต้นในหน้าต่างรหัส VB และคำสั่งฟังก์ชันสิ้นสุดจะถูกสร้างขึ้น ระหว่างคำจำกัดความของวิธีการและฟังก์ชันสิ้นสุดคือจุดที่เราเขียนโค้ดของเราเอง
บรรทัดแรกของโค้ดที่เราเพิ่มเข้าไปในเนื้อความของเมธอดคือการกำหนดตัวแปรสตริงเพื่อเก็บข้อมูลสตริงที่ส่งคืนโดยเมธอด แทนที่จะใช้ตัวแปรสตริง เราสามารถใช้สตริงเพื่อส่งคืนข้อมูลข้อความไปยังโค้ดที่เรียกใช้เมธอดได้
strreturnstring สลัวเป็นสตริง
ต่อไปเราสามารถสร้างสตริงที่ส่งคืนได้ เราสามารถใช้ค่าตัวแปร strname ที่ส่งผ่านโดยรหัส asp ผ่านรายการพารามิเตอร์ของวิธีการ ขั้นแรกให้เชื่อมต่อค่าตัวแปรพารามิเตอร์ strname กับสตริง "is over" ต่อไป เราจะใช้ตัวแปรพารามิเตอร์ intage เพื่อคำนวณจำนวนวันที่บุคคลหนึ่งรอดชีวิต จากนั้นเพิ่มสตริง "อายุเป็นวัน" ลงในสตริงก่อนหน้า ควรสังเกตว่าเราจำเป็นต้องแปลงผลคูณของจำนวนเต็มสองตัว intage * 365 เป็นสตริงก่อนที่จะรวมเข้ากับสตริง strreturnstring วิธี cstr() ใน VB สามารถบรรลุวัตถุประสงค์นี้ได้
strreturnstring = strname & จบแล้ว & cstr(intage * 365)
หากสันนิษฐานว่าชื่อที่ส่งผ่านไปยังคอมโพเนนต์จากโค้ด asp คือ eric clapton และพารามิเตอร์ age คือ 56 ดังนั้น strreturnstring ควรมีเนื้อหาต่อไปนี้:
เอริก แคลปตัน มากกว่า 20440
สตริงสุดท้ายของเราจะถูกเพิ่มโดยขึ้นอยู่กับว่าค่าของตัวแปร intage เกิน 45 และตัวแปร blnageemphasison ถูกตั้งค่าเป็นจริงหรือไม่
"วันเก่า" หรือ "วันเก่า" รหัสต่อไปนี้สามารถใช้ฟังก์ชันนี้ได้:
ถ้า blnageemphasis และ intage > 44 แล้ว
strreturnstring = strreturnstring & วันเก่า
อื่น
strreturnstring = strreturnstring & วันเก่า
สิ้นสุดถ้า
ถ้ารหัส asp ไม่ส่งค่าของตัวแปร blnageemphasison ไปยังส่วนประกอบเป็นพารามิเตอร์วิธีการ ค่าของมันจะถูกตั้งค่าเป็นเท็จตามค่าเริ่มต้นตามคำจำกัดความของวิธีการของเรา หากตั้งค่าเป็นจริงและค่าของตัวแปร intage มากกว่า 45 เราจะได้ผลลัพธ์ดังต่อไปนี้:
เอริก แคลปตัน มีอายุมากกว่า 20440 วัน
มิฉะนั้นเราจะได้ผลลัพธ์ดังต่อไปนี้:
เอริก แคลปตัน มีอายุมากกว่า 20440 วัน
เพื่อที่จะส่งคืนสตริงข้างต้นไปยังโค้ด asp ของส่วนประกอบที่เรียก เราจะกำหนดค่าของสตริงให้กับชื่อของเมธอด:
ตัวอย่างวิธีการ = strreturnstring
รหัสวิธีการที่สมบูรณ์มีดังนี้:
ตัวอย่างฟังก์ชั่นสาธารณะ (byval strname เป็นสตริง, _
byval intage เป็นจำนวนเต็ม _
ทางเลือก byval blnageemphasison เป็น boolean = false) เป็นสตริง
'////// สร้างตัวแปรท้องถิ่น
strreturnstring สลัวเป็นสตริง
'////// สร้างค่าของตัวแปรที่ส่งคืน
strreturnstring = strname & จบแล้ว & cstr(intage * 365)
'////// ปรับปรุง strreturnstring
ถ้า blnageemphasis และ intage > 44 แล้ว
strreturnstring = strreturnstring & วันเก่า
อื่น
strreturnstring = strreturnstring & วันเก่า
สิ้นสุดถ้า
'////// ส่งคืนสตริง
ตัวอย่างวิธีการ = strreturnstring
ฟังก์ชั่นสิ้นสุด
เรียกวิธี vb ในโค้ด asp
สร้างอินสแตนซ์วัตถุ vb ในโค้ด asp
รหัส ASP ส่วนใหญ่ที่เราต้องการได้รับการกล่าวถึงในภาพรวมแนวคิดด้านบน ในโค้ด asp เรายังต้องทำงานต่อไปนี้ให้เสร็จสิ้นตามลำดับ:
·ใช้เมธอด createobject() ของอ็อบเจ็กต์เซิร์ฟเวอร์ asp เพื่อสร้างอินสแตนซ์ของส่วนประกอบ vb
·เรียกเมธอดของส่วนประกอบโดยใช้ตัวแปรพารามิเตอร์เมธอดที่เหมาะสม
·กำหนดค่าสตริงที่ส่งคืนจากวิธี vb ให้กับตัวแปรในตัวแปร asp
·จากนั้นใช้ตัวแปรนี้ในเมธอด response.write() เพื่อส่งสตริงไปยังเบราว์เซอร์
เราจะใช้โค้ดบางส่วนในไฟล์ asp เพื่อสร้างอินสแตนซ์คลาสของคอมโพเนนต์ vb ต่อไปนี้เป็นโค้ดสำหรับการสร้างอินสแตนซ์ของคอมโพเนนต์ vb:
ตั้งค่า objreference = server.createobject (exampleproject.exampleclass)
เมธอด createobject() ของอ็อบเจ็กต์เซิร์ฟเวอร์ ASP ส่งคืนที่อยู่ของอ็อบเจ็กต์โค้ด VB เพื่อให้เราสามารถเรียกเมธอดสาธารณะของคลาสใน ASP ได้ ควรสังเกตว่าเนื่องจากพารามิเตอร์เมธอดของเมธอด asp createobject() คือชื่อของโปรเจ็กต์และคลาส vb ดังนั้น objreference จึงถูกใช้เพื่อรักษาการอ้างอิงไปยังอินสแตนซ์อ็อบเจ็กต์ของคลาสของส่วนประกอบ
วิธีใช้ส่วนประกอบในไฟล์ asp
ตอนนี้ เราสามารถใช้ตัวอย่างวิธีการเรียนของส่วนประกอบเพื่อดูอายุขัยของบุคคลในหน่วยวันได้ รหัสต่อไปนี้ใช้ค่าของพารามิเตอร์และกำหนดค่าของสตริงที่ส่งคืนจากวิธีการให้กับตัวแปรชื่อ strmethodreturn:
strmethodreturn = objreference.examplemethod (เอริค แคลปตัน, 56, จริง)
เคล็ดลับ: เมื่อองค์ประกอบของเราถูกสร้างอินสแตนซ์ objreference แสดงถึง exampleproject.exampleclass ที่ปรากฏในเมธอด createobject() แม้ว่าเราจะนึกถึง objreference.examplemethod ว่าเทียบเท่ากับ exampleproject.exampleclass.examplemethod() แต่เราไม่สามารถใช้วิธีนี้ได้
แน่นอนว่าเรายังสามารถใช้ตัวแปรแทนค่าโดยตรงเป็นพารามิเตอร์ของวิธีการได้ ชื่อของตัวแปรพารามิเตอร์ที่เลือกไม่จำเป็นต้องเหมือนกับที่อยู่ในรายการพารามิเตอร์ของวิธีการ VB เท่านั้น หมายเลข ประเภท และจำนวนของพารามิเตอร์ที่ไม่บังคับในรายการพารามิเตอร์ ลำดับจะเหมือนกัน
aspname = eric clapton aspage = 56 aspemphasis = true strmethodreturn = objreference.examplemethod (aspname, aspage, aspemphasis)
การใช้ตัวแปรแทนค่าจะทำให้โค้ดของคุณชัดเจนขึ้นและจัดการได้ง่ายขึ้น โดยเฉพาะเมื่อโค้ดยาว
ตอนนี้เราเพียงต้องส่งคืน strmethodreturn ไปยังเบราว์เซอร์ที่เข้าถึงโค้ด asp ในเมธอด asp response.write() ด้านล่างนี้คือโค้ด asp ที่สมบูรณ์ ในตอนท้ายของโค้ด เราจะเพิ่มบรรทัดโค้ดที่แยกที่อยู่อ็อบเจ็กต์ของคอมโพเนนต์เพื่อล้างโค้ดอ็อบเจ็กต์ของคอมโพเนนต์:
-
'////// สร้างอินสแตนซ์ของวัตถุส่วนประกอบ
ตั้งค่า objreference = server.createobject (exampleproject.exampleclass)
'////// ตั้งค่าตัวแปรท้องถิ่นเป็นพารามิเตอร์วิธีการ
aspname = อิริค แคลปตัน
แอสเพจ=56
อาการผิดปกติ = จริง
'////// เรียกเมธอดของส่วนประกอบและเก็บค่าที่ส่งคืน
strmethodreturn = objreference.examplemethod (aspname, aspage, aspemphasis)
'////// ส่งค่าส่งคืนไปยังเบราว์เซอร์ที่เข้าชม
การตอบสนองเขียน (strmethodreturn)
'////// ล้างวัตถุส่วนประกอบ
ตั้งค่า objreference = ไม่มีเลย
-
การจัดเก็บโค้ด asp ข้างต้นในไฟล์ asp จะสร้างเอาต์พุตสตริงต่อไปนี้:
เอริก แคลปตัน มีอายุมากกว่า 20440 วัน
เปิดใช้งานรหัส asp เพื่อเรียกไฟล์ dll
การทดสอบส่วนประกอบของเราคือการแจ้งให้ windows ทราบว่ามันถูกเก็บไว้ที่ไหนและเมื่อใดที่โค้ด asp เรียกใช้ ขั้นแรก เลือกไอคอน "Run" หรือ "Run/Start" ในเมนู VB จากนั้น VB จะลงทะเบียนส่วนประกอบกับระบบชั่วคราว
เคล็ดลับ: คุณไม่สามารถใช้เบราว์เซอร์เพื่อโหลดไฟล์ ASP ได้โดยตรง เช่นเดียวกับการโหลดไฟล์ html จะต้องโหลดลงในเบราว์เซอร์ผ่านทางเว็บเซิร์ฟเวอร์
เบราว์เซอร์จะแสดงคำว่า "eric clapton is over 20440 days old"
เพื่อให้คอมโพเนนต์ทำงานบนเซิร์ฟเวอร์อื่นได้ จะต้องคอมไพล์เป็นไฟล์ dll จากนั้นจึงลงทะเบียนบนเซิร์ฟเวอร์ แน่นอนว่า หากคุณต้องการใช้ส่วนประกอบอย่างถาวรบนคอมพิวเตอร์ที่กำลังพัฒนา คุณจะต้องคอมไพล์และลงทะเบียนส่วนประกอบนั้นด้วย ไฟล์เดียวที่จำเป็นในการเรียกใช้ส่วนประกอบนี้บนคอมพิวเตอร์เครื่องอื่นคือไฟล์ dll ที่คอมไพล์แล้ว แน่นอนว่าสิ่งนี้ต้องการให้คอมพิวเตอร์ติดตั้งไฟล์ไลบรารีรันไทม์ vb
วิธีคอมไพล์ซอร์สโค้ดคอมโพเนนต์เพื่อรับไฟล์ dll และวิธีการลงทะเบียนคอมโพเนนต์บนคอมพิวเตอร์นั้นอยู่นอกเหนือขอบเขตของบทความนี้ ดังนั้นเราจะไม่อธิบายโดยละเอียด
เนื่องจากเป็นผลพลอยได้จากการเขียนส่วนประกอบฝั่งเซิร์ฟเวอร์ IIS เราสามารถเรียกวิธีการของส่วนประกอบที่เขียนจากไฟล์ ASP และส่วนประกอบ VB อื่นๆ ได้ ซึ่งจะปรับปรุงความยืดหยุ่นและความเป็นโมดูลของโค้ดให้ดียิ่งขึ้น