การใช้เทคโนโลยี WebClass ใหม่ของ VB6 ทำให้ง่ายต่อการสร้างแอปพลิเคชันบนอินเทอร์เน็ตที่ยืดหยุ่นและมีประสิทธิภาพ เมื่อต้นปีนี้ เราได้แสดงให้คุณเห็นถึงวิธีการเขียนแอปพลิเคชันการลงทะเบียนที่อนุญาตให้ผู้ใช้เยี่ยมชมเพจของคุณและลงทะเบียนผลิตภัณฑ์ซอฟต์แวร์ คลาสการลงทะเบียนผู้ใช้" VBPJ เมษายน 1998 และ "เพิ่มการลงทะเบียนอีเมลไปยังเซิร์ฟเวอร์ของคุณ" VBPJ พฤษภาคม 1998] หลังจากการลงทะเบียน แอปพลิเคชันจะส่งลำดับไปยังผู้ใช้ผ่านหมายเลขอีเมล และการเชื่อมต่อกับเว็บที่มีอยู่ เพื่อดำเนินการลงทะเบียนต่อ แอปพลิเคชัน VB5 ที่ฉันแสดงให้คุณเห็นก่อนหน้านี้ได้สร้าง ActiveX DLL ที่ทำงานบนเว็บเซิร์ฟเวอร์และ DLL ที่กำหนดสถานะของผู้ใช้และเรียกใช้สคริปต์ ASP ที่สอดคล้องกัน (ตอนนี้ VB6 จัดให้) วิธีการใหม่ในการเขียนแอปพลิเคชันประเภทนี้โดยใช้เทคโนโลยีใหม่ - WebClass
กล่าวโดยย่อคือ WebClass ทำงานบนเว็บเซิร์ฟเวอร์ DLL ซึ่งอนุญาตให้ไฮเปอร์ลิงก์ของหน้า HTML บนเบราว์เซอร์ของไคลเอนต์เปิดใช้งานกิจกรรมในเซิร์ฟเวอร์ DLL โหมดการเขียนโปรแกรมของ WebClass นั้นคล้ายคลึงกับโหมด VB แบบดั้งเดิม ความแตกต่างคือใน VB แบบฟอร์มจะมีการควบคุม ในขณะที่แอปพลิเคชัน WebClass โปรแกรมนั้นเป็นเว็บเพจที่มีการควบคุม ทางฝั่งเซิร์ฟเวอร์ สำหรับนักพัฒนาเขารู้ดี โมเดลเหตุการณ์ VB ที่สมบูรณ์ เพื่อให้สามารถดำเนินการพัฒนาเว็บที่มีการโต้ตอบสูงได้ ในคอลัมน์นี้ เราจะพูดถึงวิธีสร้างแอปพลิเคชัน WebClass แบบง่าย ๆ เพื่อแสดงให้คุณเห็นว่าสิ่งนี้มีความง่ายเพียงใด
ในการสร้างแอปพลิเคชัน WebClass แบบง่าย คุณควรเริ่ม VB6 และเลือก แอปพลิเคชัน IIS ในกล่องโต้ตอบ New Project ตั้งชื่อโครงการ SimpleReg ในหน้าต่าง Properties ดับเบิลคลิกที่ Project WebClass Designer ในเบราว์เซอร์ (คุณสามารถดูหน้าต่าง Properties และ Project Browser ผ่านเมนู View) ตั้งชื่อ WebClass wcSimple และป้อน SimpleReg ในคุณสมบัติ NameURL ซึ่งจะถูกสร้างขึ้นเมื่อรวบรวมไฟล์เริ่มต้น ActiveX DLL A ชื่อ SimpleReg.asp จากนั้นบันทึกโปรเจ็กต์
แอปพลิเคชัน WebClass แสดง HTML ในเบราว์เซอร์ของผู้ใช้โดยใช้เทมเพลต HTML เนื่องจาก VB6 ไม่มีโปรแกรมแก้ไข HTML คุณต้องสร้างเทมเพลต HTML ภายนอก VB6 (ตัวออกแบบ DHTML ของ VB6 ไม่เกี่ยวข้องกับ WebClass เลย) โปรแกรมแก้ไข HTML ใด ๆ แต่เนื่องจาก Visual Studio มี Visual InterDev (VID) 6.0 ดังนั้น VID จึงเป็นตัวเลือกที่สมเหตุสมผล
ตั้งค่า Visual Studio เป็นตัวแก้ไข HTML เริ่มต้นสำหรับ Visual Basic ในเมนู Tools|Options ของ VB6 ให้กรอก ทำตามเส้นทาง Visual InterDev - C:Promram FilesMicrosoft Visual StudioCommonIDE|IDE98Devenv.exe ลงในกล่องแก้ไข HTML ภายนอก คุณจะแจ้งให้ Visual InterDev สร้างไฟล์เทมเพลตสำหรับโครงการของคุณ ตัวอย่างเช่น หากเทมเพลตของคุณ เรียกว่า WebPage.htm จากนั้น InterDev จะสร้างสำเนาชื่อ Web1Page.htm หากคุณใช้ Notepad หรือโปรแกรมแก้ไขอื่นๆ เพื่อสร้างเทมเพลตของคุณ โปรดคำนึงถึงสิ่งนี้ด้วย
ในโค้ดประจำ ไฟล์ SimpleReg.htm จะเป็นเทมเพลตที่สร้างโดย Visual InterDev ในบานหน้าต่างด้านซ้ายของตัวออกแบบ WebClass ให้เลือกโฟลเดอร์ HTML Template WebItem คุณสามารถเพิ่มเทมเพลต SimpleReg ให้กับโปรเจ็กต์ได้ดังนี้: คลิกปุ่ม AddHTML Template WebItem และคลิกเลือกไฟล์ SimpleReg.htm ในกล่องโต้ตอบการเลือกไฟล์ กล่อง (ดูรูปที่ 1) ตั้งชื่อ WebItem tplSimple ใหม่ ดับเบิลคลิก tplSimple เพื่อดูโค้ดเกี่ยวกับ WebClass_Start และแทนที่โค้ดต้นฉบับที่สร้างขึ้นด้วยโค้ดต่อไปนี้เพื่อแสดงเทมเพลตเมื่อโหลด WebClass :
Private Sub WebClass_Start( )
'แสดงเทมเพลต HTML หลัก www.downcodes.com
Session("Title") = "ป้อนข้อมูลของคุณ" & "ข้อมูลการลงทะเบียน"
tplSimple.WriteTemplate
End Sub
WebClass_Start คล้ายกับกระบวนการ Form_Load ของแอปพลิเคชัน VB แบบดั้งเดิม เรียกใช้โปรแกรมและดูหน้า HTML ที่แสดงโดยเบราว์เซอร์ของคุณ และยุติแอปพลิเคชัน VB (นี่เป็นการปิดระบบตามปกติระหว่างการดีบักและการพัฒนา วิธี WebClass)
ใน WebClass Designer ให้คลิกขวาที่ tplSimple WebItem และเลือกแก้ไขเทมเพลต HTML จากเมนูบริบท คุณจะเห็นหน้าเทมเพลตในโปรแกรมแก้ไข HTML เริ่มต้นของคุณ คุณจะเห็นว่านี่เป็นเรื่องง่าย หน้าที่ประกอบด้วยสามส่วนพิเศษที่เรียกว่าแท็ก ในรูปแบบต่อไปนี้:
< WC@TAGTITLE>หัวข้อ</WC@TAGTITLE >
ส่วนข้อความของแท็กเหล่านี้ ("หัวข้อ") มีการเปลี่ยนแปลงโดยคุณในขณะรันไทม์ รหัสที่เพิ่มใน WebClass จะถูกแทนที่ เมื่อดำเนินการเมธอด WriteTemplate จะเรียกขั้นตอนพิเศษที่เรียกว่า ProcessTag หนึ่งครั้งสำหรับแต่ละแท็กที่พบในเทมเพลต HTML จากนั้นดับเบิลคลิก tplSimple WebItem เพื่อแสดงหน้าต่างโค้ด ในหน้าต่างโค้ด เลือกกระบวนการ tpSimple_ProcessTag ใน กล่องคำสั่งผสมด้านบนและเพิ่มรหัสต่อไปนี้:
Dim sHTM As String
เลือกชื่อแท็กกรณีและปัญหา
กรณี " WC@TAGTITLE "
TagContents =เซสชัน("หัวข้อ")
กรณี " WC@TAGMAIL "
sHTM = "ป้อนที่อยู่อีเมล:<br>"
sHTM = sHTM & "<ประเภทอินพุต = 'ข้อความ'"
sHTM = sHTM & " name= 'อีเมล'><br>"
เนื้อหาแท็ก = sHTM
กรณี " WC@TAGNAME "
sHTM = "ชื่อ:<br>"
sHTM = sHTM & "<ประเภทอินพุต = 'ข้อความ'"
sHTM = sHTM & " name= 'ชื่อ'><br>"
เนื้อหาแท็ก = sHTM
End Select
ส่งคืนโค้ด HTML ในพารามิเตอร์ TagContent เพื่อแทนที่แท็ก ตั้งค่าเบรกพอยต์ใน tplSimple เพิ่ม WriteTemple ให้กับโพรซีเดอร์ WebClass_Start และรันแอปพลิเคชันของคุณที่จุดพัก ให้ใช้ F8 เพื่อดำเนินการผ่านโปรเจ็กต์เพื่อดูลำดับของเหตุการณ์ คุณจะเห็นว่ากระบวนการ ProcessTag ถูกเรียกสามครั้ง - หนึ่งครั้งสำหรับแต่ละแท็กในเทมเพลต สิ่งที่ยอดเยี่ยมจริงๆ คือ: ณ รันไทม์ กระบวนการจะใช้ HTML ที่จะสร้างกล่องข้อความในเบราว์เซอร์ โค้ดจะแทนที่อีเมลและ แท็กชื่อ
ความสามารถในการดีบักโค้ดเหตุการณ์ฝั่งเซิร์ฟเวอร์ของคุณแบบโต้ตอบเป็นหนึ่งในคุณสมบัติที่ทรงพลังมากในการพัฒนาแอปพลิเคชัน WebClass ด้วย VB ในการพัฒนาเว็บ VB5 นั้น VBScript ในสคริปต์ ASP เสร็จสมบูรณ์แล้ว คุณไม่สามารถดีบัก VBScript ได้ แบบโต้ตอบในสคริปต์ ASP - วิธีเดียวที่เป็นไปได้คือเกิดข้อผิดพลาดแล้วลองอีกครั้ง อย่างไรก็ตามใน VB6 โค้ดฝั่งเซิร์ฟเวอร์ทั้งหมดจะทำงานใน WebClass และคุณสามารถใช้สภาพแวดล้อมการออกแบบที่ยอดเยี่ยมของ VB สำหรับการแก้ไขข้อบกพร่องเชิง
โต้ตอบ
ขั้นตอนต่อไปในแอปพลิเคชันง่ายๆ นี้ คือการเพิ่มโค้ดการจัดการเหตุการณ์สำหรับปุ่ม Register Me บนแบบฟอร์ม กลับไปที่ WebClass Designer ของ VB และคลิกที่ tplSimple WebItem ในบานหน้าต่างด้านขวา คุณจะเห็นรายชื่อสมาชิก HTML ในเพจ และคุณสามารถเชื่อมโยงเหตุการณ์กับพวกเขาได้ คลิกขวาที่แท็ก Form1 และเลือกรายการเมนูเชื่อมต่อกับเหตุการณ์ที่กำหนดเอง และสังเกตว่าถัดจากชื่อเหตุการณ์ Form1 ในคอลัมน์เป้าหมาย ลองดูที่เทมเพลต HTML อย่างรวดเร็ว (คลิกขวาที่ tplSimple แล้วเลือกแก้ไขเทมเพลต HTML) ค้นหาสมาชิกของแบบฟอร์ม ตอนนี้
<FORM method = 'post' action = SimpleReg.ASP?
&WCE=RegisterMe&WCU>
SimpleReg.asp เป็นสคริปต์เริ่มต้น ActiveXDLL พิเศษ ค่าหลังเครื่องหมายคำถามบ่งชี้ว่า WebClass Item (WCI) คือ tplSimple, WebClass Event (WCE) คือ RegisterMe และ WebClass URLData (WCU) ว่างเปล่า เมื่อผู้ใช้คลิกปุ่ม Register Me ในเบราว์เซอร์ บรรทัดนี้จะเปิดใช้งานปุ่ม tplSimple_RegisterMe ใน ActiveX server DLL ด้วยวิธีนี้ กิจกรรมของแบบฟอร์มจะเชื่อมโยงกับเหตุการณ์ฝั่งเซิร์ฟเวอร์ แต่คุณสามารถตั้งค่าไฮเปอร์ลิงก์ได้ ในเบราว์เซอร์เพื่อเปิดใช้งานกิจกรรมในเซิร์ฟเวอร์ WebClasses ทำงานเหมือนเวทย์มนตร์สำหรับการพัฒนาแอปพลิเคชันเว็บ - พวกมันขยายการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ของ VB ไปยังแอป
พลิเคชันบนเบราว์เซอร์ หน้าต่าง เพิ่มรหัสต่อไปนี้ในเหตุการณ์:
ถ้า Len(Request.Form("Email")) = 0 จากนั้น
Session("Titile") = "กรุณา" & "ป้อนที่อยู่อีเมล!"
เซสชัน("อีเมล") = ""
เซสชั่น("ชื่อ") = ""
อื่น
Session("Title") = "นี่คือ" & "รายการของคุณ!"
Session("Email") = Request.Form("Email")
เซสชัน ("ชื่อ") = Reuquest.Form ("ชื่อ")
สิ้นสุดถ้า
TplSimple.WriteTemplate
Request.Form เป็นวิธีมาตรฐานในการส่งคืนข้อมูลจากเพจเบราว์เซอร์ โดยจะตั้งค่าตัวแปรเซสชันบางส่วนและแสดงหน้า HTML เดียวกันอีกครั้ง ตั้งค่าเบรกพอยต์ที่คำสั่ง If และรันโปรเจ็กต์ ปุ่ม Register Me คุณจะเห็นว่าชื่อได้รับการรีเฟรชแล้ว แต่กล่องข้อความว่างเปล่า เนื่องจากคุณไม่ได้ป้อนค่าที่เกี่ยวข้องเมื่อเขียนเทมเพลตและเปลี่ยน tplSimple_ProcessTag
กระบวนการ (ดาวน์โหลดรายการ 1 จาก DevX ดูกล่องดาวน์โหลดรหัสฟรีเพื่อดูรายละเอียด) กำหนดค่าให้
กับกล่องข้อความตามตัวแปรเซสชัน เรียกใช้โครงการและดูว่าเกิดอะไรขึ้น
ใช้ ADO สำหรับการเข้าถึงข้อมูล
เพื่อจัดเก็บและจัดเก็บผลรวมจากฐานข้อมูล วิธีการรับบันทึก เพื่อความง่าย เราใช้ Microsoft Acess 97 เป็นฐานข้อมูลของเรา ตามลำดับ อีเมล และ ชื่อ และบันทึกลงในดิสก์ เลือก ตกลง เมื่อ Acess แจ้งให้คุณสร้างฟิลด์ดัชนีที่ไม่ซ้ำกัน และวางสำเนาของ Register.mdb ในไดเร็กทอรีรากของไดรฟ์ C ของคุณ
ในโปรเจ็กต์ ให้เพิ่ม Microsoft ActiveX การอ้างอิง Data Object Library คุณสามารถค้นหาได้ภายใต้ Project|Reference.... คุณสามารถใช้ไลบรารี ADO เวอร์ชัน 1.5 หรือ 2.0 หากคุณไม่ได้ติดตั้งไลบรารี ADO คุณสามารถดาวน์โหลดได้จากเว็บไซต์ของ Microsoft: http:/ /www.microsoft.com/data ดาวน์โหลดชุดเครื่องมือการติดตั้ง MDAC2.0 จาก /ado เปลี่ยนรหัสในกระบวนการ tplSimple.RegisterMe (ดาวน์โหลด Listing 2 จาก DevX โปรดดูรายละเอียดในช่องดาวน์โหลดรหัสฟรี
) ในแบบฟอร์มลงในตัวแปร Session. จากนั้นเปิดชุดระเบียน ADO และค้นหาที่อยู่อีเมล (ดาวน์โหลด Listing 3 จาก DevX)
หากพบรหัสจะส่งคืนระเบียนใหม่ ฟังก์ชั่นตั้งค่าสตริงการเชื่อมต่อ:
ฟังก์ชั่นส่วนตัวเชื่อมต่อ () เป็นสตริง
'ส่งคืนสตริงการเชื่อมต่อ ADO
Const kDB = "DBQ=c:register.mdb;"
Const kDrv = "Drive={Microsoft" & "ไดรเวอร์ Acess (*.mdb)}"
เชื่อมต่อ = kDB & kDrv
ฟังก์ชันสิ้นสุด
ตั้งค่าเบรกพอยต์ใน tplSimple_RegisterMe รันโปรแกรม และดูว่าโค้ดการเข้าถึงข้อมูลทำงานอย่างไร ตัวอย่างง่ายๆ นี้จะแสดงให้คุณเห็นว่าการเขียนโปรแกรมใน ADO นั้นง่ายเพียงใด อย่าลืมกำหนดค่าในบริษัทของคุณ แอปพลิเคชัน "ของจริง" ควรมีการจัดการข้อผิดพลาดด้วย โดยทั่วไป คุณจะใช้การลงทะเบียนเพื่อบันทึกตัวแปร เช่น ข้อมูลสตริงการเชื่อมต่อ และคุณจะต้องจัดเตรียมวิธีการรีเฟรชเรคคอร์ดและลบเรคคอร์ดที่ไม่จำเป็น
เมื่อคุณคอมไพล์โปรเจ็กต์ สิ่งแรกจะเกิดขึ้น: โครงการ ActiveX ใด ๆ ใน VB บันทึก ActiveX DLL จะถูกสร้างขึ้นบนเครื่องพัฒนา สิ่งที่สองคือ: ไฟล์เริ่มต้น ASP พิเศษจะตั้งชื่อตามชื่อที่ระบุโดยแอตทริบิวต์ NameInURL ในตัวอย่าง ของไฟล์คือ: SimpleReg.asp ดูที่สคริปต์ใน Notepad เมื่อผู้ใช้ป้อน URL ของไฟล์ในเบราว์เซอร์ IIS จะสร้างอินสแตนซ์ของ SimpleReg.wcSimple WebClass แนะนำว่าคุณไม่เปลี่ยนสคริปต์ ASP นี้
จากมุมมอง
ของผู้ใช้ การลงทะเบียนเวอร์ชัน WebClass ของแอปพลิเคชันจะคล้ายกับซีรี่ส์ที่แสดงในเดือนพฤษภาคม 1998 รหัสสำหรับซีรี่ส์นี้ มันคล้ายกับซีรี่ส์ที่แสดงก่อนหน้านี้อย่างแน่นอน ยกเว้นว่าตอนนี้โค้ดทั้งหมดรวมอยู่ใน WebClass และไฟล์ ASP ที่เปิดใช้ไม่มีข้อมูลผู้ใช้ใดๆ
การเปรียบเทียบหมายเหตุ
ของแอปพลิเคชันก่อนและหลัง คุณควรมีความเข้าใจเกี่ยวกับวิธีการทำงานของ WebClass อย่างสม่ำเสมอ อย่างไรก็ตาม คุณอาจยังลังเลที่จะแปลงแอปพลิเคชันเว็บของคุณเป็น WebClass ทันที โครงการ การแปลงแอปพลิเคชันใช้เวลานานพอสมควร แต่คุณควรทำสิ่งนี้เนื่องจากมีประโยชน์จริง ๆ ในการดำเนินการดังกล่าว ตัวอย่างเช่น WebClass ช่วยให้คุณสร้างหรือขยายแอปพลิเคชันด้วยวิธีที่ไม่เคยทำได้มาก่อน
กล่าวโดยย่อคือ Microsoft ได้จัดเตรียม ชุดเครื่องมือสำหรับการพัฒนาแอปพลิเคชันอินเทอร์เน็ต แน่นอนว่ามันได้รับการพัฒนาด้วยแอปพลิเคชันเว็บ VB5 เช่นกัน แต่คุณจะต้องใช้เทคนิคการเขียนโปรแกรมเล็กๆ น้อยๆ มากมายเพื่อทำให้สคริปต์ ASP โต้ตอบกับ VB DLL ได้อย่างถูกต้องโดยไม่มีข้อจำกัด ของ VBScript ไม่มีการขาดสภาพแวดล้อมการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์อย่างแท้จริง WebClass ช่วยให้ VB นำฟังก์ชันการทำงานเต็มรูปแบบมาสู่การพัฒนาเว็บ - และเป็นสิ่งที่ดี