อนาคตของ VisualBasic
WebForms (เว็บฟอร์ม), บริการเว็บ (Web services) และการปรับปรุงภาษาที่จะปรากฏในเวอร์ชัน
ผู้อ่านบทความนี้คือผู้ใช้ที่คุ้นเคยกับ Visual Basic อยู่แล้ว
ภาพรวม: Microsoft Visual Basic เวอร์ชันถัดไปมีการปรับปรุงหลักสามประการ: การปรับปรุง WebForms, Webservices และไวยากรณ์เชิงวัตถุ WebForms ช่วยให้ผู้ใช้ Visual Basic ที่มีประสบการณ์สามารถพัฒนาแอปพลิเคชันเครือข่ายได้เช่นเดียวกับการเขียนโปรแกรมแบบสแตนด์อโลนในปัจจุบัน ผ่านอินเทอร์เฟซ SOAP Webservices ช่วยให้คุณสามารถปรับใช้ส่วนประกอบที่คุณออกแบบได้ทุกที่ที่คุณสามารถเข้าถึงอินเทอร์เน็ต นอกจากนี้ การปรับปรุงที่สำคัญหลายประการในภาษาเชิงวัตถุทำให้โค้ด Visual Basic มีความยืดหยุ่นเท่ากับ C รวมถึงการสืบทอด ความหลากหลาย และการโอเวอร์โหลด สำหรับข้อมูลเกี่ยวกับแง่มุมนี้ โปรดดูที่ "VBITSkeynoteonthenext generation ofVisualBasic" ของ Steve Ballmer
isualBasic ได้ผ่านการปรับปรุงมากมาย แต่สิ่งหนึ่งที่ฉันชอบเกี่ยวกับมันตั้งแต่เริ่มก่อตั้งก็คือ โดยแก่นของมันคือ คุณยังสามารถเขียนโปรแกรมของคุณได้เหมือนเดิมในปี 1991 แน่นอนว่าชุดซอฟต์แวร์ได้รับการปรับปรุงอย่างมากเมื่อเทียบกับครั้งนั้น แต่โดยทั่วไปแล้วการปรับปรุงเหล่านี้จะเป็นการปรับปรุงเพิ่มเติมและไม่ปิดบังจุดประสงค์ของการเป็นเครื่องมือในการเขียนโปรแกรม จุดประสงค์นี้คือ: เพื่อให้ Visual Basic ง่ายขึ้นและเร็วขึ้นเพื่อใช้ในการออกแบบและเขียน และดีบักแอปพลิเคชันเชิงวัตถุที่โดดเด่น
Visual Basic 6.0 เวอร์ชันปัจจุบันแนะนำ WebClasses เป็นวิธีง่ายๆ สำหรับการกำหนดค่าแอปพลิเคชันบนเครือข่ายที่มีประสิทธิภาพ ในความเป็นจริง WebClasses มีวิธีมากมายในการย้ายโปรแกรมไปยังอินเทอร์เน็ตผ่านเครื่องมือทั่วไป (สำหรับการอภิปรายโดยละเอียดเกี่ยวกับความสามารถในการปรับขยายของ Visual Basic 6.0 ภายใต้เครือข่าย โปรดดู "คอลัมน์พื้นฐานขั้นสูง" ของ Ted Pattison (เผยแพร่โดย Microsoft Internet Developer ในเดือนตุลาคม 1999)
เมื่อเร็วๆ นี้ ฉันมีโอกาสเรียนรู้เกี่ยวกับการปรับปรุงใหม่ๆ บางส่วนที่วางแผนไว้สำหรับ Visual Basic เวอร์ชันถัดไป การปรับปรุงหลักคือความจุในการจัดเก็บข้อมูล ซึ่งเพิ่มความจุในการจัดเก็บข้อมูลเป็นสามเท่าสำหรับนักพัฒนา Visual Basic เวอร์ชันถัดไปได้รับการวางแผนที่จะนำเสนอคุณลักษณะในสภาพแวดล้อม Visual Studio® ที่เรียกว่า WebForms WebForms แสดงถึงโซลูชันเครือข่ายแบบคอมโพเนนต์ใหม่ บริการทางเว็บจะกลายเป็นโซลูชันที่ใช้ XML ใหม่ที่เผยแพร่ฟังก์ชันการประมวลผลเหตุการณ์ระดับกลางผ่านโปรโตคอลเครือข่ายมาตรฐาน ในเวลาเดียวกัน ภาษา Visual Basic จะรวมโครงสร้างบางอย่างที่นักพัฒนาร้องขอมานาน ทำให้ Visual Basic สอดคล้องกับพฤติกรรมการเขียนโปรแกรมเชิงวัตถุที่ผู้ใช้ C และ Java คุ้นเคย
การปรับปรุงเหล่านี้จะประกาศใน Visual Basic รุ่นเบต้าถัดไป ที่นี่ฉันจะให้ตัวอย่างโค้ด แต่ไม่ใช่วิธีแก้ปัญหาทั้งหมด แล้วจะกังวลอะไรตอนนี้? ง่ายมาก ตราบใดที่คุณตั้งใจที่จะใช้ประโยชน์จากฟีเจอร์ใหม่เหล่านี้ ตอนนี้คุณสามารถออกแบบโปรแกรมของคุณผ่านวิธีการเฉพาะเหล่านี้ และรับแบบฝึกหัดเชิงปฏิบัติที่ดีที่สุด เพื่อช่วยให้คุณเปลี่ยนไปใช้ Visual Basic เวอร์ชันถัดไปได้อย่างราบรื่น แม้ว่าคุณจะทำไม่ได้ คุณก็ไม่มีอะไรจะเสียตราบใดที่คุณจัดโปรแกรมในอนาคตตามหลักการที่ฉันวางไว้ท้ายบทความนี้
VisualStudioWebForms
Visual Basic เวอร์ชันถัดไปจะเป็นส่วนหนึ่งของสภาพแวดล้อมการพัฒนา Visual Studio และมีแนวโน้มที่จะแนะนำแนวคิดใหม่ของ WebForm ให้กับนักพัฒนาเว็บ วัตถุประสงค์ของการแนะนำแนวคิด WebForm คือการขยายฟังก์ชันการเข้าถึงแบบสุ่มของ Visual Basic เพื่อให้ Visual Basic สามารถนำไปใช้กับการเขียนโปรแกรมเครือข่ายที่มีผลกระทบในวงกว้างมากขึ้น นักพัฒนาที่ใช้ภาษาใดก็ได้ใน Visual Studio สามารถแชร์ Visual Studio WebForms นี้ได้
หน้า WebForms ประกอบด้วยสองส่วน: ไฟล์ HTML ที่ใช้อินเทอร์เฟซแบบภาพของหน้า WebForms และไฟล์ต้นฉบับที่จัดการเหตุการณ์หน้า WebForms เนื่องจากหนึ่งในสามของการพัฒนาในปัจจุบันโดยใช้สภาพแวดล้อม Visual Basic เป็นแบบเน้นเครือข่าย Microsoft จึงวางแผนที่จะปรับปรุงความสามารถในด้านนี้เพิ่มเติม ใน Visual Basic เวอร์ชันถัดไป คุณสามารถออกแบบ WebForms ได้ด้วยวิธีเดียวกับที่คุณใช้ Visual Basic เพื่อสร้างแบบฟอร์มในปัจจุบัน คุณจะมีกล่องเครื่องมือควบคุมเว็บ คุณสามารถลากและวางตัวควบคุมลงในโปรแกรมแก้ไข HTML ได้โดยตรงเพื่อใช้งาน คุณเพียงแค่ต้องตั้งค่าคุณสมบัติและเขียนโค้ดที่เหมาะสม (ดูรูปที่ 1) โดยสรุป คุณสามารถทำงานเหล่านี้ได้เหมือนกับที่คุณใช้ Visual Basic เพื่อสร้างแบบฟอร์ม คุณจะมีการออกแบบแบบฟอร์มและโค้ดที่คอมไพล์ซึ่งสอดคล้องกับรูปแบบ IntelliSense®, WYSIWYG โดยสมบูรณ์ ตราบใดที่คุณรู้วิธีเขียนแอปพลิเคชันโดยใช้ Visual Basic WebForms ก็ช่วยให้คุณเป็นนักพัฒนาเว็บได้โดยไม่ต้องเปลี่ยนวิธีการทำงานเลย
รูปที่ 1 อาคารเว็บฟอร์มินสี่ขั้นตอน
WebForms ทำงานบนเซิร์ฟเวอร์และส่งแบบฟอร์มในรูปแบบ HTML ไปยังผู้ใช้เท่านั้น เช่นเดียวกับ ActiveServerPage(asp) ไม่ใช่เบราว์เซอร์เฉพาะหรือแอปพลิเคชันที่ใช้ WebForm แต่กระบวนการทั้งหมดยังทำงานบนเซิร์ฟเวอร์ด้วย ที่จริงแล้ว คุณกำลังรันโปรแกรมที่สร้างอินเทอร์เฟซในรูปแบบ HTML 3.2 สำหรับผู้ใช้ระยะไกล แตกต่างจากหน้าเว็บ ASP ตรงที่โค้ดเหล่านี้ถูกคอมไพล์และรันแทนการตีความ ดังนั้นความเร็วในการรันจึงได้รับการปรับปรุงอย่างมาก
วัตถุประสงค์ของการออกแบบ WebForms คือเพื่อให้ได้คุณสมบัติที่ดีที่สุดของทั้ง ASP และ WebClass คุณสามารถใช้ภาษาใดก็ได้ในตระกูล Visual Studio เพื่อสร้าง WebForms ดังนั้น คุณสามารถใช้สิ่งที่คุณรู้เพื่อเขียนเว็บแอปพลิเคชันที่มีประสิทธิภาพและเน้นเซิร์ฟเวอร์ได้
บริการเว็บ
Webservices เป็นการปรับปรุงที่สำคัญประการที่สองที่ดำเนินการโดยระบบเครื่องมือการพัฒนา Visual Studio โดยแก่นแท้แล้ว Webservice คือตัวจัดการเหตุการณ์ระดับกลางที่เผยแพร่ผ่านโปรโตคอลเครือข่ายมาตรฐาน เนื่องจากใช้ HTTP เป็นกลไกการขนส่ง (ดูรูปที่ 2) จึงสามารถสื่อสารผ่านไฟร์วอลล์ได้ คุณสามารถสร้างบริการเว็บได้หลายรายการในเว็บแอปพลิเคชันตราบใดที่ URL ได้รับการกำหนดอย่างเหมาะสม เมื่อโปรแกรมกำลังทำงาน การเรียกระหว่างส่วนประกอบภายในทั้งหมดเหล่านี้จะถูกแพ็กเกจโดยอัตโนมัติและเรียกผ่านอินเทอร์เฟซ XML นักพัฒนาสามารถเขียนและใช้งาน Webservices บนแพลตฟอร์มใดก็ได้และในภาษาใดก็ได้ หากคุณต้องการการรักษาความลับ คุณสามารถใช้ SecureSocketLayer (SSL) หรือเทคโนโลยีการตรวจสอบมาตรฐานได้
รูปที่ 2 สถาปัตยกรรมบริการเว็บ
หากสิ่งเหล่านี้เริ่มฟังดูคุ้นเคยสำหรับคุณ นั่นเป็นจุดเริ่มต้นที่ดี กลไกที่ใช้ในการถ่ายโอนข้อมูลระหว่างส่วนประกอบคือ SOAP ซึ่งเป็น Simple Object License Protocol DonBox เปิดตัว SOAP โดยละเอียดในนิตยสาร MSDN™ ที่ตีพิมพ์ในเดือนมีนาคม พ.ศ. 2543
คุณสมบัติใหม่ทั้งหมดนี้ได้รับการออกแบบมาเพื่อให้นักพัฒนาเว็บแอปพลิเคชันสามารถเขียนบริการเว็บที่มีอยู่และนำกลับมาใช้ใหม่ได้ เพื่อให้สามารถเขียนแอปพลิเคชันได้เร็วขึ้นโดยไม่ต้องเขียนใหม่หมดในแต่ละครั้ง นี่จะเป็นการเปิดศักราชใหม่ของผู้ให้บริการโค้ดโปรแกรมและผู้พัฒนาโปรแกรม
เมื่อใช้ Visual Basic เวอร์ชันถัดไป คุณจะสามารถเผยแพร่และใช้งานฟังก์ชันต่างๆ ในโครงการเฉพาะในรูปแบบของ Webservice ได้ในเร็วๆ นี้ คุณอาจคุ้นเคยกับกระบวนการทำให้คลาส Visual Basic เป็นแบบสาธารณะ จะมีโลโก้ใหม่ใน Visual Basic เวอร์ชันถัดไป เรียกชั่วคราวว่า webpublic ซึ่งหมายความว่าโปรแกรมจะถูกเผยแพร่เป็นบริการเว็บ ไม่เพียงแต่สามารถใช้ได้กับโครงการในท้องถิ่นที่ต้องการผ่านอินเทอร์เฟซ COM เท่านั้น แต่ยังสามารถให้บริการโปรแกรมเครือข่ายใดๆ ที่อ้างอิงถึงที่อยู่ URL ของมันได้อีกด้วย เช่นเดียวกับที่คุณสามารถเพิ่มการอ้างอิงไปยังออบเจ็กต์สาธารณะในโปรเจ็กต์ใหม่ คุณสามารถเพิ่มการอ้างอิงไปยังโปรแกรมเครือข่ายและใช้งานได้เหมือนกับว่าเป็นโปรแกรมในเครื่อง
แน่นอนว่ากลไกการทำงานค่อนข้างแตกต่างออกไป Visual Basic สามารถแก้ไขการอ้างอิงไปยังวัตถุภายในเครื่องผ่านทางอินเทอร์เฟซ COM เมื่อคุณเพิ่มการอ้างอิงไปยังบริการเครือข่ายให้กับแอปพลิเคชันของคุณ วัตถุระยะไกลจะสร้างข้อกำหนดอินเทอร์เฟซโดยอัตโนมัติ และส่งไปยังสภาพแวดล้อมการพัฒนา Visual Studio โดยใช้โปรโตคอล SOAP แม้ว่าสิ่งเหล่านี้จะถูกสร้างขึ้นในรูปแบบ XML แต่คุณไม่จำเป็นต้องทำการเชื่อมต่อด้วยตนเอง VisualBasic จะจัดการให้คุณโดยอัตโนมัติ หลังจากได้รับข้อกำหนดอินเทอร์เฟซแล้ว คุณสามารถใช้ IntelliSense ได้เหมือนกับว่าคุณได้เขียนโค้ดที่อ้างอิงถึงออบเจ็กต์
นี่เป็นตัวอย่างง่ายๆ ในบางกรณี คุณอาจต้องการเขียนฟังก์ชันนี้ชื่อ Seahawks ซึ่งอาจมีลักษณะคล้ายกับโค้ดต่อไปนี้:
PublicFunctionSeahawks (ByValopponentAsString) AsString
ซีฮอว์กส = "แพ้"
EndFunction
หากโครงการที่คุณสร้างมีฟังก์ชันนี้ Visual Basic จะสร้างคำอธิบายรูปแบบ XML ของฟังก์ชันนี้โดยอัตโนมัติและเผยแพร่ไปยังอินเทอร์เน็ต
<?xmlversion='1.0'?>
<methodshref='http://julian/Football/Teams'>
<methodname='Seahawks'href='Seahawks'>
<คำขอ>
<paramdt='string'>ฝ่ายตรงข้าม</param>
</ร้องขอ>
<responsedt='string'/>
</วิธีการ>
</วิธีการ>
ไฟล์ XML นี้จะใช้เพื่ออธิบายฟังก์ชันของ Seahawks หากคุณใช้สภาพแวดล้อมการพัฒนา Visual Studio คุณสามารถลากและวาง Webservice ที่เผยแพร่ลงในแอปพลิเคชันได้โดยตรงเพื่อสร้างคลาสใหม่ หากคุณต้องการเรียกใช้ Webservice ที่ใดก็ได้บนอินเทอร์เน็ต คุณเพียงแค่ต้องสร้างอินสแตนซ์ของคลาสที่มี Webservice แล้วเรียกใช้เมธอดที่เผยแพร่
เมื่อเรียกใช้ฟังก์ชัน Seahawks ฟังก์ชันจะสื่อสารผ่านแพ็กเก็ต XML โดยอัตโนมัติ หากคุณใช้ Microsoft® Internet Explorer 5.0 (ซึ่งรวมถึงการสนับสนุน XML) คุณสามารถลองใช้ฟังก์ชันนี้ในเบราว์เซอร์ของคุณได้ คุณยังสามารถเรียกใช้ฟังก์ชันนี้โดยใช้ที่อยู่ URL ดังต่อไปนี้:
http://julian/webservice1/component1.methods/Seahawks?opponent=ไมอามี
มันจะส่งคืนข้อมูลในรูปแบบ XML ดังนี้:
<?xmlversion="1.0"?>
<การตอบสนอง>แพ้</การตอบสนอง>
เพื่ออำนวยความสะดวกในการพัฒนา Webservices Visual Basic จะแนะนำประเภทออบเจ็กต์ใหม่ WebService คุณสามารถออกแบบและปรับใช้ WebService ของคุณกับบริการระยะไกลได้เหมือนกับการสร้างไฟล์ DLL ในเครื่องทันที
การปรับปรุงภาษา
มีความสัมพันธ์ที่ตึงเครียดมายาวนานระหว่างโปรแกรมเมอร์ที่ชอบ Visual Basic และโปรแกรมเมอร์ที่ชอบภาษาอื่นๆ ที่ "ซับซ้อน" มากกว่า ฉันได้ปกป้องภาษาการเขียนโปรแกรมที่ฉันชื่นชอบมากกว่าหนึ่งครั้งจากการกล่าวหาว่าเป็น "ภาษาของเล่น" และ Visual Basic ขาดคุณสมบัติ OOP
เอาล่ะ เดาสิว่าเกิดอะไรขึ้น? Visual Basic เวอร์ชันถัดไปจะยุติข้อร้องเรียนในที่สุด Microsoft วางแผนที่จะเพิ่มคุณสมบัติหลักสามประการของการเขียนโปรแกรมเชิงวัตถุ: การสืบทอด ความหลากหลาย และการโอเวอร์โหลด นั่นไม่ใช่ทั้งหมด! โครงสร้างเพิ่มเติม รวมถึงการจัดการข้อผิดพลาดที่มีโครงสร้างและการเรียกดู จะถูกนำมาใช้ในภาษา Visual Basic ด้วย
คุณลักษณะการสืบทอดช่วยให้คุณสามารถออกแบบคลาสพื้นฐานแล้วเขียนคลาสที่ได้รับมาบางส่วนที่สืบทอดฟังก์ชันของคลาสพื้นฐาน ซึ่งสามารถประหยัดเวลาและปรับปรุงการนำโปรแกรมกลับมาใช้ใหม่ได้ ตัวอย่างเช่น คุณเขียนคลาสพื้นฐานที่เรียกว่า BaseClass ซึ่งมีฟังก์ชัน:
FunctionGetCustomerName()
'โดโซมัสทัฟ
EndFunction
ตอนนี้คุณต้องการเขียนคลาสอื่นที่สามารถเรียกใช้ฟังก์ชัน GetCustomerName ของคลาสฐานได้เหมือนกับฟังก์ชันของตัวเอง วิธีการเก่าคืออะไร? สิ่งนี้เป็นไปไม่ได้ในอดีต อย่างไรก็ตาม วิธีการใหม่ตอนนี้ต้องการเพียงการแทรกบรรทัดธรรมดาไว้เหนือคลาสใหม่:
สืบทอด BaseClass
FunctionGetCustomerID()
'โดโซมัสทัฟ
EndFunction
การเขียนฟังก์ชันตั้งแต่ 2 ฟังก์ชันขึ้นไปโดยใช้ชื่อเดียวกันแต่ใช้ตัวระบุต่างกันเรียกว่าการโอเวอร์โหลด ในระดับหนึ่ง Visual Basic ได้ดำเนินการโอเวอร์โหลดในการแปลงประเภทภายในและการตั้งค่าคุณสมบัติเมื่อเรียกใช้ฟังก์ชัน เปรียบเทียบรหัส Visual Basic ที่ถูกต้องสองบรรทัดต่อไปนี้:
Text1.Text="7"
ข้อความ1.ข้อความ=7
ในการโทรทั้งสองครั้ง ข้อความใน Text1 จะถูกตั้งค่าเป็นสตริง "7" นี่เป็นการเรียกที่โอเวอร์โหลดเนื่องจาก Visual Basic รู้วิธีการจัดการชนิดข้อมูลที่แตกต่างกันของอินพุต จะถือว่าพวกมันเป็นตัวแปรและแปลงพวกมันโดยอัตโนมัติ เมื่อคุณเรียกใช้ฟังก์ชันบางอย่างด้วยประเภทพารามิเตอร์ที่กำหนดไว้อย่างชัดเจน Visual Basic จะทำการแปลงแบบเดียวกันด้วย การเรียกใช้ฟังก์ชันสองรายการต่อไปนี้:
a=SetVal("สิ่งนี้")
a=เซ็ตวาล(7)
สามารถเรียกใช้ฟังก์ชันต่อไปนี้ได้อย่างถูกต้อง:
FunctionSetVal(xAsString)
Form1.Text1.Text=x
EndFunction
เนื่องจาก Visual Basic สามารถถ่ายโอนตัวแปรได้หลายประเภทอยู่แล้ว ทำไมคุณถึงต้องใช้ฟังก์ชันโอเวอร์โหลด? เนื่องจากถึงแม้ในปัจจุบันฟังก์ชันเดียวจะสามารถรองรับข้อมูลหลายประเภทได้ แต่ก็ไม่สามารถสร้างการดำเนินการที่แตกต่างกันตามประเภทข้อมูลที่ต่างกันที่ส่งเข้ามาได้ ให้เปรียบเทียบสองฟังก์ชันต่อไปนี้แทน:
FunctionGetCustomerID(custnameasstring)AsInteger
'ค้นหารหัสลูกค้าตามชื่อลูกค้า
EndFunction
FunctionGetCustomerID(ซื้อ)AsInteger
'ค้นหารหัสลูกค้าตามการซื้อ SEOrder
EndFunction
ด้วยการโอเวอร์โหลด คุณสามารถใช้งานฟังก์ชันตามประเภทข้อมูลอินพุตได้ นี่เป็นสิ่งสำคัญมากสำหรับ Visual Basic เวอร์ชันถัดไป เนื่องจากมีฟีเจอร์ใหม่ - การป้องกันชนิดข้อมูลเริ่มต้น โดยทั่วไปการแปลงตัวแปรอัตโนมัติจะเป็นประโยชน์ แต่คุณสามารถจินตนาการได้ว่าบางครั้งอาจทำให้คุณประสบปัญหาได้ ตัวอย่างเช่น ในตัวอย่างก่อนหน้าของ SetVal จะเกิดอะไรขึ้นถ้าคุณต้องการส่งอักขระ 7 แทนสตริง "7" Visual Basic เวอร์ชันถัดไปจะตรวจจับข้อผิดพลาดนี้โดยอัตโนมัติ (หากรหัสของคุณขึ้นอยู่กับฟังก์ชันการทำงานที่ไม่รับรู้ประเภทก่อนหน้าของ Visual Basic คุณลักษณะนี้จะถูกปิดใช้งาน)
ในที่สุด polymorphism คือกระบวนการกำหนดคลาสที่กำหนดไว้ใหม่แล้ว ตัวอย่างเช่น คุณต้องการเขียนคลาสที่ได้รับของ BaseClass แต่คุณต้องการเขียนฟังก์ชัน GetCustomerName ใหม่ ใน Visual Basic เวอร์ชันถัดไป คุณสามารถใช้คำจำกัดความของคลาสนี้ได้โดยใช้วิธีการใหม่ที่คล้ายกับต่อไปนี้: (หมายเหตุ: ไวยากรณ์สุดท้ายขึ้นอยู่กับเวอร์ชันอย่างเป็นทางการ)
สืบทอด BaseClass
FunctionGetOrders()
OverridesFunctionGetOrders()
-
EndFunction
คุณสมบัติทางไวยากรณ์เพิ่มเติม
Visual Basic เวอร์ชันถัดไปอาจมีมากกว่าการปรับปรุงเชิงวัตถุดังที่กล่าวข้างต้น นอกจากนี้ยังมีการสร้างเธรด การจัดการข้อผิดพลาด และการปรับปรุงใหม่ที่รอคอยมานานสำหรับความสามารถในการปรับขนาดและการนำกลับมาใช้ใหม่ได้
ปัจจุบัน Visual Basic รองรับโมเดลเธรดอพาร์ตเมนต์ แม้ว่าโมเดลนี้จะมอบประสิทธิภาพที่แท้จริงสำหรับการพัฒนาแอปพลิเคชัน แต่ก็ไม่เหมาะ Visual Basic เวอร์ชันถัดไปจะมีการปรับปรุงในส่วนนี้ ใช้โมเดลแบบ freethreaded ซึ่งจะมีประโยชน์เมื่อเขียนแอปพลิเคชันเครือข่ายที่ปรับขนาดได้ Visual Basic จะรวมโครงสร้างไวยากรณ์บางอย่างที่คุณสามารถใช้เพื่อสร้างหลายเธรดได้ การดำเนินการที่เกิดขึ้นของเธรดโดยทั่วไปมีดังนี้:
sett=NewThread(NewThreadstart
(AddressOf (BaseClass.Function1))
จากตัวอย่างนี้ คุณจะเห็นว่า Visual Basic เวอร์ชันถัดไปมีโครงสร้าง AddressOf ซึ่งใช้ในการส่งคืนที่อยู่ของฟังก์ชัน คุณไม่ถูกบังคับให้ข้ามฟังก์ชัน API ที่ต้องใช้พอยน์เตอร์ฟังก์ชันอีกต่อไป! หากคุณต้องการโทรกลับ คุณสามารถใช้สิ่งนี้เพื่อดำเนินการดังกล่าว
การปรับปรุงตามแผนอีกประการหนึ่งคือการจัดการข้อผิดพลาดที่มีโครงสร้าง ไม่นานมานี้ Visual Basic ต้องการให้คุณแทรกคำสั่ง OnError จำนวนมากลงในโค้ดของคุณ เป็นเวลาหลายปีแล้วที่ฉันรู้สึกไม่สบายใจกับการใส่คำสั่ง GOTO มากมาย ข้อความเหล่านี้เตือนฉันซ้ำแล้วซ้ำเล่าว่าอย่าใช้มันอีก! ตอนนี้เรามาดูปัญหากัน - เราต้องการกลไกการจัดการข้อผิดพลาด
Visual Basic เวอร์ชันถัดไปจะรวมศูนย์การจัดการข้อผิดพลาด VisualBasic จะสนับสนุน try...catch...finally สร้างเหมือนภาษา "สูงส่ง" เหล่านั้น คุณสามารถวางรูทีนย่อยที่มีการจัดการข้อผิดพลาดไว้ที่ด้านบนของโค้ดได้ นี่คือตัวอย่างของการนำการจัดการข้อผิดพลาดไปใช้:
ซับเซฟไรท์()
พยายาม
เปิด "ไฟล์ทดสอบ"
-
เขียน#1
จับ
ฆ่า "Testfile"
ในที่สุด
ปิด#1
สิ้นสุดลอง
สิ้นสุดย่อย
มีการปรับปรุงที่น่าตื่นเต้นอื่นๆ ที่ผู้ใช้ Visual Basic ในปัจจุบันจะคุ้นเคย ใน Visual Basic เวอร์ชันถัดไป คุณสามารถเตรียมใช้งานตัวแปรพร้อมกับประกาศตัวแปรได้:
ดิมาซินจำนวนเต็ม=10
คุณยังสามารถสร้างและเริ่มต้นออบเจ็กต์ใหม่ในนิพจน์ได้ คุณยังสามารถแชร์ตัวแปรผ่านคลาสได้อีกด้วย สุดท้าย แต่ไม่เพียงแต่ แนวคิดเรื่องการสืบทอดยังขยายไปถึงรากฐานของอินเทอร์เฟซผู้ใช้ของโปรเจ็กต์อีกด้วย คำวิจารณ์โดยทั่วไปของ Visual Basic คือทำให้ยากต่อการสร้างรูปแบบต่างๆ มากมายโดยใช้พื้นฐานเดียวกัน (ซึ่งมักเป็นข้อกำหนดในสภาพแวดล้อมการพัฒนาร่วมกัน) ใน Visual Basic เวอร์ชันถัดไป คุณจะสามารถทำได้ผ่านประเภทเทมเพลต
การปรับปรุงเหล่านี้ได้รับการคาดหวังมานานหลายปี เพราะเหตุใด มาดูกัน. การสื่อสารของ Visual Basic (ซึ่งฉันทำมาเกือบสิบปีแล้ว) มีความซับซ้อนมากขึ้นเรื่อยๆ เกินกว่าเวอร์ชันแรกในปี 1991 เดิมที Visual Basic ใช้สำหรับการออกแบบและพัฒนาเครื่องมือต้นแบบขนาดเล็กแบบพกพาอย่างรวดเร็วในช่วงแรกๆ เป็นผลให้ Visual Basic ได้รับชื่อเสียง (โดยไม่คาดคิดในความคิดของฉัน) ว่าเป็น "ภาษาของเล่น" ตอนนี้เห็นได้ชัดว่ามันไม่ใช่ของเล่นอีกต่อไปแล้ว ใครก็ตามที่บอกว่านั่นเป็นการแสดงอคติแบบไร้เหตุผล ขณะนี้มีแพ็คเกจซอฟต์แวร์ที่ใช้ Visual Basic จำนวนมากในสาขาต่างๆ VisualBasic กำลังพัฒนา ปีที่แล้ว ที่ศูนย์วิจัย ฉันได้พูดคุยกับนักพัฒนาซอฟต์แวร์ที่กำลังเขียนโปรแกรมโดยใช้ Web-Class ซึ่งได้รับความนิยมนับล้านครั้งต่อสัปดาห์
การเปลี่ยนแปลงใน Visual Basic เวอร์ชันถัดไปนั้นน่าประหลาดใจ หากคุณต้องการได้รับผลประโยชน์เหล่านั้น ให้ใช้มัน หากคุณไม่ต้องการคุณสามารถใช้สิ่งที่คุณยังใช้อยู่ได้อย่างมั่นใจ อย่างไรก็ตาม เป็นเรื่องดีที่รู้ว่าฟังก์ชันที่ C และ Java ทำนั้นสามารถนำไปใช้ในภาษาอย่าง Visual Basic ซึ่งใช้งานง่ายกว่า C และ Java มาก
แนวโน้มการพัฒนาในอนาคต
การนำเสนอตัวอย่างนี้สร้างความประทับใจให้กับคุณอย่างไรบ้าง? เป็นคำถามที่ดี แต่คุณสามารถหาคำตอบได้ ในปีที่ผ่านมา เราสามารถเห็นการเปลี่ยนแปลงในการพัฒนา ASP ได้อย่างชัดเจน โปรแกรมการพัฒนาเหล่านี้มักประกอบด้วยสคริปต์ ASP ที่อ่านง่าย และโปรแกรมทั้งหมดทำงานโดยใช้สคริปต์เหล่านี้ เนื่องจาก ASP ตีความและดำเนินการโค้ดสคริปต์ทั้งหมด ผู้คนจึงค่อยๆ ค้นพบข้อจำกัดโดยธรรมชาติของเทคโนโลยีนี้เมื่อประกอบแต่ละส่วนประกอบ ฉันได้ยินนักพัฒนามากขึ้นเรื่อยๆ บอกว่าพวกเขาต้องการแยกตัวจัดการเหตุการณ์ของตนออกจากโค้ดสคริปต์โดยสิ้นเชิง และนำไปใช้ภายใต้โมเดลการคอมไพล์ที่เร็วขึ้น ซึ่งเขียนด้วยภาษา C++ หรือ Visual Basic ผ่านทางอินเทอร์เฟซ COM สำหรับการประกอบ
ด้วยเหตุผลทุกประการที่คุณนึกถึง Visual Basic สามารถตอบสนองได้ การออกแบบส่วนประกอบด้วย Visual Basic นั้นจริงๆ แล้วไม่ยากไปกว่าการใช้ VBScript หรือ JScript® คุณสามารถเขียนโค้ดที่ทำงานเร็วขึ้นและบรรลุความต้องการของคุณได้อย่างง่ายดาย เมื่อมีการเผยแพร่ Visual Basic รุ่นถัดไป คุณสามารถใช้ Visual Basic เพื่อสร้างวัตถุบนเครือข่ายที่เข้ากันได้กับ ASP กล่าวโดยสรุป การใช้เส้นทางการรวมส่วนประกอบจะถือเป็นทางเลือกที่ดีที่สุดในปัจจุบันและในอนาคต
ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้ มีแอปพลิเคชันบนอินเทอร์เน็ตจำนวนมากที่เขียนโดยใช้ Visual Basic (และ WebClasses) ปัญหาคือแอปพลิเคชันส่วนใหญ่ที่ใช้ WebClasses นั้นไม่ได้รับการออกแบบมาอย่างดี พวกเขาแยกความแตกต่างระหว่างเลเยอร์ต่างๆ ของแอปพลิเคชันได้ไม่ดีนัก ทำให้กระบวนการระดับกลางสับสนกับอินเทอร์เฟซผู้ใช้ที่ใช้ DHTML
Visual Basic เวอร์ชันถัดไปจะแนะนำ WebClasses ซึ่งเป็นเครื่องมือที่คัดสรรมาอย่างดีสำหรับการพัฒนาเว็บ เนื่องจากสามารถปรับขนาดได้มากกว่า มีประสิทธิภาพมากกว่า และไม่เชื่อเรื่องภาษาอย่างแท้จริง ใช้งานได้กับเครื่องมือทั้งหมดใน Visual Studio หากคุณใส่ใจกับกฎพื้นฐานบางประการของการพัฒนาแบบหลายเลเยอร์ คุณสามารถทำการเปลี่ยนแปลงนี้ได้อย่างง่ายดาย ควรให้ความสนใจเป็นพิเศษเพื่อแยกกระบวนการเลเยอร์กลางและกระบวนการเลเยอร์การแสดงผล ขอแนะนำอย่างยิ่งให้อ้างถึงสถาปัตยกรรม Windows® DNA2000 เมื่อทำงานเหล่านี้ ฟังก์ชันการประมวลผลเหตุการณ์หลักจะต้องเสร็จสิ้นในเลเยอร์กลาง และคุณสามารถใช้ส่วนประกอบต่างๆ ที่เขียนด้วยภาษาที่คอมไพล์ที่คุณชื่นชอบเพื่อใช้ฟังก์ชันเหล่านี้ได้ ส่วนประกอบเหล่านี้จะถูกประกอบในไฟล์สคริปต์ ASP เพื่อให้ส่วนประกอบต่างๆ สามารถทำงานร่วมกันได้ คงจะเหมาะเป็นอย่างยิ่งหากคุณใส่ตรรกะส่วนใหญ่ไว้ในออบเจ็กต์เหตุการณ์แทนที่จะเป็นสคริปต์ ไม่เพียงเป็นความคิดที่ดีสำหรับการเปลี่ยนไปใช้ Webservices ในอนาคต แต่ยังเป็นแนวทางปฏิบัติที่คุ้มค่าแก่การเลียนแบบอีกด้วย -