ต่อไป เราจะเขียนส่วนประกอบง่ายๆ เน้นไปที่การรู้วิธีการพัฒนาส่วนประกอบ DLL แทนที่จะเขียนโค้ดที่ซับซ้อน ทั้งหมดนี้จะขึ้นอยู่กับความพยายามของคุณในอนาคต
บทความนี้เขียนขึ้นสำหรับผู้ที่ต้องการปรับปรุงระดับ ASP เป็นหลัก นักพัฒนาไม่เพียงแต่เพิ่มความเร็ว ASP แต่ยังปกป้องโค้ดของตนเองอีกด้วย ที่ต้องการพัฒนาส่วนประกอบ!
ต่อไป เราจะเขียนส่วนประกอบง่ายๆ เน้นไปที่การรู้วิธีการพัฒนาส่วนประกอบ DLL แทนที่จะเป็นโค้ดที่ซับซ้อน ทั้งหมดนี้จะขึ้นอยู่กับความพยายามของคุณในอนาคต
ส่วนประกอบฝั่งเซิร์ฟเวอร์
ประการแรก ส่วนประกอบฝั่งเซิร์ฟเวอร์จะต้องแตกต่างจากส่วนประกอบฝั่งไคลเอ็นต์ ส่วนประกอบฝั่งไคลเอ็นต์จะถูกส่งผ่านเครือข่ายและอาศัย HTML ในการทำงาน และสามารถใช้งานได้บน IE เท่านั้น ฝั่งเซิร์ฟเวอร์และดำเนินการบนเซิร์ฟเวอร์ การดำเนินการต่างๆ ดังนั้นเบราว์เซอร์ทั้งหมดจึงสามารถเพลิดเพลินได้และอาศัยเซิร์ฟเวอร์มากกว่าเบราว์เซอร์
เมื่อมีการร้องขอให้ IIS รันโปรแกรม ASP มันจะค้นหาโค้ดระหว่างแท็กในไฟล์ ASP และรันมัน (อาจเป็นโค้ดระหว่างนั้นก็ได้) หากเคยมีการเรียกโปรแกรม ASP มาก่อน มันจะใช้ไฟล์ โปรแกรมที่คอมไพล์แล้วในหน่วยความจำเพื่อส่งคืนโค้ด HTML ให้กับผู้ใช้ หากไม่เป็นเช่นนั้น ก็จะถูกคอมไพล์ใหม่ ที่นี่ ASP มีข้อได้เปรียบด้านความเร็วเหนือ CGI เล็กน้อย เนื่องจาก CGI ใช้เธรดสำหรับแต่ละคำขอ ซึ่งกินเวลามาก
คุณเคยคิดบ้างไหมว่าโปรแกรมที่คุณเขียนสามารถทำงานบน IIS ได้!?! คุณสามารถทำได้ทันที! การใช้ VB5 (ตอนนี้คือ VB6 แน่นอน) คุณสามารถสร้าง Dynamic Linked Libraries (ไฟล์ DLL) ซึ่งสามารถทำงานบน IIS ได้โดยตรง (ถ้า มีไฟล์ asp ให้ขอ)
ข้อกำหนดของระบบและซอฟต์แวร์
คุณต้องมีระบบปฏิบัติการ 32 บิตเพื่อรัน ASP แน่นอนว่าคุณต้องติดตั้ง IIS หรือ PWS ด้วย
มาเริ่มกันเลย
เริ่ม VB ของคุณและเลือกไอคอน ActiveX ไอคอนนี้สามารถพบได้ในโปรเจ็กต์ใหม่! VB จะให้ชื่อโปรเจ็กต์เริ่มต้น (โปรเจ็กต์ 1) และชื่อคลาส (คลาส 1) เราจะเปลี่ยนชื่อทั้งสองก่อน ที่เรามี Microsoft Active Server Pages Object Library ซึ่งมีประโยชน์มากในโปรแกรมของเรา เลือก Project จากเมนู จากนั้นเลือก References หน้าต่างอ้างอิงจะปรากฏขึ้น เลือก Microsoft Active Server Pages Object Library
ตั้งชื่อโปรเจ็กต์และคลาส
ตอนนี้เรามาตั้งชื่อโปรเจ็กต์ 1 และคลาส 1 ตามงานอดิเรกของเรากันเถอะ การตั้งชื่อพวกมันก็มีความสำคัญเช่นกัน เราจะใช้ชื่อโปรเจ็กต์และชื่อคลาสนี้เพื่อสร้างอินสแตนซ์ของคอมโพเนนต์นี้ในอนาคต
ฉันไม่ต้องการพูดเพิ่มเติมเกี่ยวกับวิธีการเปลี่ยนชื่อของคุณ!
ชื่อโปรเจ็กต์ของเราเปลี่ยนเป็น Exmaple และชื่อคลาสคือ Helloword
วิธีใช้โปรเจ็กต์และคลาส
ตอนนี้เรามีโปรเจ็กต์ของเราเอง (ตัวอย่างที่ 1) และชื่อคลาส (HelloWorld) เราจะใช้ชื่อของพวกเขาในโค้ด ASP เพื่ออ้างถึงส่วนประกอบนี้ในอนาคต ใน ASP เราจะเรียกมันเช่นนี้:
ตั้งค่า ObjReference = Server.CreateObject (ProjectName.ClassName)
การอ้างอิงถึงโครงการของเราคือ:
ตั้งค่า ObjReference = Server.CreateObject(Example1.HelloWorld)
ตอนนี้เราสามารถใช้ ObjReference เพื่อเรียกใช้ฟังก์ชันและรูทีนย่อยที่เราสร้างขึ้นในส่วนประกอบได้ ต่อไปเราจะเขียนรูทีนย่อย SayHello ของเราเพื่อดำเนินการดังต่อไปนี้:
เพื่อที่จะใช้วิธี ASP ในคลาส Helloword คุณต้องเขียน OnStartPage ในคลาสนี้
ฟังก์ชั่นย่อยดังนี้:
OnStartPage ย่อยสาธารณะ (PassedscriptingContext เป็น scriptingContext)
ตั้งค่า MyscriptingContext = PassedscriptingContext
จบหมวดย่อย
ตอนนี้เมื่อใดก็ตามที่ผู้ใช้เข้าถึงไฟล์ ASP ด้วยส่วนประกอบนี้ IIS จะส่ง scriptingContext ไปยังอ็อบเจ็กต์ของเราเพื่อให้เราใช้ รหัสต่อไปนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
OnStartPage ย่อยสาธารณะ (PassedscriptingContext เป็น scriptingContext)
ตั้งค่า MyscriptingContext = PassedscriptingContext
ตั้งค่า MyApplication = MyscriptingContext.Application
ตั้งค่า MyRequest = MyscriptingContext.Request
ตั้งค่า MyResponse = MyscriptingContext.Response
ตั้งค่า MyServer = MyscriptingContext.Server
ตั้งค่า MySession = MyscriptingContext.Session
จบหมวดย่อย
ในอนาคต เราสามารถใช้ MyApplication ใน VB เพื่อแทนที่ Application ใน ASP ได้ ในทำนองเดียวกัน เราสามารถแทนที่ Request, Server... ได้ แต่เราต้องประกาศตัวแปรเหล่านี้ก่อน OnStartPage:
คัดลอกรหัสรหัสดังต่อไปนี้:
MyscriptingContext ส่วนตัวเป็น scriptingContext
MyApplication ส่วนตัวเป็นแอปพลิเคชัน
คำขอ MyRequest ส่วนตัวตามคำขอ
MyResponse ส่วนตัวเป็นการตอบกลับ
MyServer ส่วนตัวเป็นเซิร์ฟเวอร์
MySession ส่วนตัวเป็นเซสชัน
วัตถุที่ใช้ ASP
ตอนนี้ตัวแปรของเราสามารถใช้งานได้เหมือนกับออบเจ็กต์ ASP มาตรฐานแล้ว ตัวอย่างเช่น เรามักจะใช้ Request.form() ใน ASP เพื่อรวบรวมข้อมูลสำหรับแบบฟอร์มที่ส่ง ตอนนี้เราใช้ฟังก์ชันนี้ใน VB ของเรา โค้ดจะเป็นดังนี้:
นำไปใช้ใน ASP:
นำไปใช้ใน VB:
คัดลอกรหัสรหัสดังต่อไปนี้:
MyTempVariable = MyRequest.Form(ชื่อผู้ใช้)
MyResponse.Write (คุณป้อน & MyTempVariable & เป็นชื่อผู้ใช้ของคุณ)
เมื่อใช้ MyResponse แทน Response เราสามารถใช้วิธีการตอบกลับทั้งหมดได้ แน่นอนว่าชื่อ MyResponse สามารถเป็นอะไรก็ได้ที่คุณต้องการ คุณยังสามารถใช้ Response ก็ได้
อีกสิ่งหนึ่งที่เราต้องใส่ใจคือเราต้องเขียนฟังก์ชันย่อย OnEndPage ในคลาสที่เราสร้างขึ้น OnStartPage นี้ตรงกันข้าม!
คัดลอกรหัสรหัสดังต่อไปนี้:
ย่อยสาธารณะ OnEndPage()
ตั้งค่า MyscriptingContext = ไม่มีเลย
ตั้งค่า MyApplication = ไม่มีเลย
ตั้งค่า MyRequest = ไม่มีเลย
ตั้งค่า MyResponse = ไม่มีเลย
ตั้งค่า MyServer = ไม่มีเลย
ตั้งค่า MySession = ไม่มีเลย
จบหมวดย่อย
วิธี SayHello
มาสร้างฟังก์ชันย่อยเพื่อแสดงวิธีการ SayHello นี้เป็นเพียงฟังก์ชันย่อยในคลาส HelloWorld เราจะใช้วิธีต่อไปนี้เพื่อแสดงวิธีการนี้ใน ASP ในอนาคต
โปรแกรม SayHello นั้นง่ายมาก!
คัดลอกรหัสรหัสดังต่อไปนี้:
ย่อยสาธารณะ SayHello()
MyResponse.Write(สวัสดีชาวโลก)
จบหมวดย่อย
ตอนนี้มีการเขียนส่วนประกอบขนาดเล็กแล้ว งานที่เหลือคือการรวบรวมส่วนประกอบและบันทึกลงในเมนูโปรเจ็กต์ คุณสามารถตั้งชื่ออะไรก็ได้ มาใช้ Exmaple1.vbp! จากนั้นเลือก make exmaple1.dll ในเมนูและเพิ่มมัน ถูกคอมไพล์เป็นไฟล์ DLL ส่วนประกอบเสร็จสมบูรณ์อย่างแท้จริง!
โปรดทราบว่าหลังจากรวบรวมส่วนประกอบนี้แล้ว คุณต้องปิด PWS ของคุณก่อนแล้วจึงรวบรวมส่วนประกอบนี้ มิฉะนั้น VB จะแจ้งให้คุณทราบว่ามีการใช้งานส่วนประกอบบางอย่างอยู่
ใช้ส่วนประกอบของเราเองใน ASP
เมื่อคุณแก้ไขข้อผิดพลาดในการคอมไพล์และคอมไพล์โปรเจ็กต์ example1 สำเร็จแล้ว ตอนนี้คุณต้องนำโปรแกรมแก้ไข HTML ที่คุณชื่นชอบออกมาเพื่อเขียนคำสั่งต่อไปนี้และบันทึกเป็นไฟล์ ASP
คุณสามารถเห็นผลลัพธ์หลังจากการรัน:
สวัสดีชาวโลก
ลงทะเบียนส่วนประกอบ
หากคุณต้องการแบ่งปันส่วนประกอบของคุณกับเพื่อนและเพื่อนบ้าน คุณจะต้องลงทะเบียนส่วนประกอบของคุณบนระบบของคุณ โดยทั่วไปเราใช้ Regsvr32.exe เพื่อลงทะเบียนส่วนประกอบต่างๆ หลังจากการลงทะเบียน ส่วนประกอบของคุณจะปรากฏใน Win95/Win98 ใน windows/ระบบ ไดเร็กทอรีต่อไปนี้เป็นตัวอย่างของการลงทะเบียน:
Regsvr32.exe C:/wwwroot/Example1/Example1.dll
ในระบบของคุณ VB จะลงทะเบียนให้คุณโดยอัตโนมัติ ดังนั้นคุณจึงไม่ค่อยได้ใช้ Regsvr32.exe
เราเพิ่งเขียนส่วนประกอบที่เล็กมากที่นี่ คุณสามารถเขียนส่วนประกอบที่ใหญ่ขึ้นของคุณเองได้ และคุณยังสามารถใช้ตัวควบคุมมากมายใน VB ได้อีกด้วย
มาใช้ส่วนประกอบเพื่อขยายการทำงานของโปรแกรมของเรากันดีกว่า! ฉันหวังว่าจะเห็นส่วนประกอบเพิ่มเติมจากพวกเราชาวจีน