.NET Framework เป็นส่วนประกอบ Windows แบบรวมที่สนับสนุนการสร้างและการทำงานของแอปพลิเคชันและบริการเว็บ XML รุ่นใหม่ .NET Framework ได้รับการออกแบบโดยคำนึงถึงเป้าหมายต่อไปนี้:
· จัดเตรียมสภาพแวดล้อมการเขียนโปรแกรมเชิงวัตถุที่สอดคล้องกันสำหรับการจัดเก็บและเรียกใช้โค้ดอ็อบเจ็กต์ในเครื่อง สำหรับการเรียกใช้โค้ดในเครื่องที่เผยแพร่บนอินเทอร์เน็ต หรือสำหรับการดำเนินการระยะไกล
· จัดให้มีสภาพแวดล้อมการเรียกใช้โค้ดที่ลดความขัดแย้งในการปรับใช้ซอฟต์แวร์และการควบคุมเวอร์ชันให้เหลือน้อยที่สุด
· จัดเตรียมสภาพแวดล้อมการเรียกใช้โค้ดที่รับประกันการเรียกใช้โค้ดอย่างปลอดภัย รวมถึงโค้ดที่สร้างโดยบุคคลที่สามที่ไม่รู้จักหรือน่าเชื่อถือน้อยกว่า
· จัดเตรียมสภาพแวดล้อมการเรียกใช้โค้ดที่หลีกเลี่ยงปัญหาด้านประสิทธิภาพกับสภาพแวดล้อมการเรียกใช้สคริปต์หรือการตีความโค้ด
· รับประกันประสบการณ์นักพัฒนาที่สอดคล้องกันในแอปพลิเคชันประเภทต่างๆ เช่น แอปพลิเคชัน Windows และแอปพลิเคชันบนเว็บ
· พัฒนาการทำงานร่วมกันตามมาตรฐานอุตสาหกรรม ซึ่งจะทำให้โค้ด .NET Framework ทำงานร่วมกับโค้ดอื่นๆ ได้
องค์ประกอบหลักสองประการของ .NET Framework คือ Common Language Runtime (CLR) และไลบรารีคลาส .NET Framework แกนหลักของ .NET Framework คือ CLR รันไทม์ถือได้ว่าเป็นเอเจนต์ที่จัดการโค้ดขณะรันไทม์ และให้บริการพื้นฐาน เช่น การจัดการหน่วยความจำ การจัดการเธรด และการทำงานระยะไกล ในเวลาเดียวกัน มีการกำหนดเงื่อนไขการพิมพ์ที่เข้มงวดและการตรวจสอบความถูกต้องของรหัสประเภทอื่นๆ เพื่อให้มั่นใจในความปลอดภัยและความน่าเชื่อถือ ที่จริงแล้ว งานหลักของรันไทม์คือการจัดการโค้ด รหัสที่เข้าถึงรันไทม์เรียกว่าโค้ดที่ได้รับการจัดการ และโค้ดที่ไม่สามารถเข้าถึงรันไทม์เรียกว่าโค้ดที่ไม่มีการจัดการ องค์ประกอบหลักอีกประการหนึ่งของ .NET Framework ไลบรารีคลาสจัดเตรียมคอลเลกชันประเภทเชิงวัตถุที่สมบูรณ์ซึ่งใช้ในการพัฒนาแอปพลิเคชัน ตั้งแต่ประเภททั่วไปที่รันจากบรรทัดคำสั่งหรือส่วนต่อประสานผู้ใช้แบบกราฟิก ไปจนถึงแอปพลิเคชันที่ใช้ประโยชน์จาก ความสามารถด้านเทคโนโลยีล่าสุดของ ASP.NET เช่น Web Forms และ XML Web Services
.NET Framework สามารถโฮสต์คอมโพเนนต์ที่ไม่มีการจัดการซึ่งโหลดรันไทม์ภาษาทั่วไป (CLR) ลงในกระบวนการของตนเองและเรียกใช้โค้ดที่ได้รับการจัดการ การสร้างสภาพแวดล้อมการเขียนโปรแกรมที่อนุญาตให้มีการดำเนินการทั้งที่มีการจัดการและไม่มีการจัดการ .NET Framework ไม่เพียงแต่ให้รันไทม์หลักหลายรายการเท่านั้น แต่ยังสนับสนุนการพัฒนารันไทม์หลักของบริษัทอื่นอีกด้วย
ตัวอย่างเช่น ASP.NET โฮสต์รันไทม์เพื่อจัดเตรียมสภาพแวดล้อมฝั่งเซิร์ฟเวอร์ที่ปรับขนาดได้สำหรับโค้ดที่ได้รับการจัดการ ASP.NET ทำงานโดยตรงกับรันไทม์เพื่อเปิดใช้งานแอปพลิเคชัน ASP.NET และบริการเว็บ XML ซึ่งทั้งสองอย่างนี้จะกล่าวถึงในภายหลังในหัวข้อนี้
Internet Explorer เป็นตัวอย่างของแอปพลิเคชันที่ไม่มีการจัดการซึ่งโฮสต์รันไทม์ (ในรูปแบบของส่วนขยายประเภท MIME) การใช้ Internet Explorer เพื่อโฮสต์รันไทม์ทำให้คุณสามารถฝังส่วนประกอบที่ได้รับการจัดการหรือตัวควบคุม Windows Forms ในเอกสาร HTML การโฮสต์รันไทม์ด้วยวิธีนี้ทำให้โค้ดมือถือที่ได้รับการจัดการ (คล้ายกับตัวควบคุม Microsoft® ActiveX®) เป็นไปได้ แต่ด้วยการปรับปรุงที่สำคัญซึ่งมีเพียงโค้ดที่ได้รับการจัดการเท่านั้นที่สามารถนำเสนอได้ เช่น การดำเนินการแบบกึ่งเชื่อถือได้และการจัดเก็บไฟล์แบบแยกส่วน
ภาพประกอบต่อไปนี้แสดงความสัมพันธ์ของรันไทม์ภาษาทั่วไปและไลบรารีคลาสกับแอปพลิเคชันของคุณและระบบโดยรวม ภาพประกอบยังแสดงวิธีการทำงานของโค้ดที่ได้รับการจัดการภายในสถาปัตยกรรมขนาดใหญ่อีกด้วย
NET Framework ในบริบท
ส่วนต่อไปนี้จะอธิบายส่วนประกอบหลักและคุณลักษณะของ .NET Framework โดยละเอียดยิ่งขึ้น
ตัวอย่างเช่น ASP.NET โฮสต์รันไทม์และจัดเตรียมสภาพแวดล้อมที่ปรับขนาดได้สำหรับโค้ดที่ได้รับการจัดการฝั่งเซิร์ฟเวอร์ ASP.NET ทำงานโดยตรงกับรันไทม์เพื่อเปิดใช้งานการดำเนินการของแอปพลิเคชัน ASP.NET และบริการเว็บ XML ที่จะกล่าวถึงในหัวข้อนี้ต่อไป
Internet Explorer เป็นตัวอย่างของแอปพลิเคชันที่ไม่มีการจัดการซึ่งโฮสต์รันไทม์ (ในรูปแบบของส่วนขยายประเภท MIME) การโฮสต์รันไทม์ใน Internet Explorer ช่วยให้คุณสามารถฝังส่วนประกอบที่ได้รับการจัดการหรือตัวควบคุม Windows Forms ในเอกสาร HTML เค้าโครงสภาพแวดล้อมนี้ทำให้สามารถรันโค้ดมือถือที่ได้รับการจัดการได้ (คล้ายกับตัวควบคุม Microsoft® ActiveX®) แต่มีประโยชน์ที่สำคัญของโค้ดที่ได้รับการจัดการ เช่น การดำเนินการที่เชื่อถือได้บางส่วนและการจัดเก็บไฟล์แบบแยกส่วน
รูปต่อไปนี้แสดงให้เห็นว่ารันไทม์ภาษาทั่วไปและไลบรารีคลาสโต้ตอบกับแอปพลิเคชันผู้ใช้และระบบทั้งหมดอย่างไร รูปภาพยังแสดงวิธีการทำงานของโค้ดที่ได้รับการจัดการภายในสถาปัตยกรรมที่กว้างขึ้น
NET Framework ในบริบท
ส่วนต่อไปนี้ให้คำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับส่วนประกอบหลักและคุณลักษณะของ .NET Framework
เป็นหนึ่งในภาษาการเขียนโปรแกรมที่ได้รับความนิยม มัลติฟังก์ชั่น และพัฒนาอย่างแข็งขันที่สุดในขณะนี้ ด้วยความช่วยเหลือนี้ คุณสามารถพัฒนาซอฟต์แวร์ได้เกือบทุกชนิด โดยเริ่มจากรูปแบบการชนะแบบง่ายๆ ไปจนถึงเว็บแอปพลิเคชันไคลเอ็นต์-เซิร์ฟเวอร์ขนาดใหญ่ หรือแม้แต่แอปพลิเคชันมือถือและเกมคอมพิวเตอร์และทำงานบนแพลตฟอร์ม .NET Framework ลองหาดูว่ามันคืออะไร
ดูวิดีโอของฉันบน .NET Framework และรันไทม์ CLR สำหรับ C#
ภาษาโปรแกรม C#ค่อนข้างใหม่แต่ก็ได้รับความไว้วางใจแล้ว การเปิดตัวเวอร์ชันแรกเกิดขึ้นในเดือนกุมภาพันธ์ พ.ศ. 2545 เวอร์ชันล่าสุดของภาษา ณ เวลาที่เขียนคือ C# 7.2 ซึ่งเผยแพร่เมื่อวันที่ 16 สิงหาคม 2017
ไวยากรณ์ของภาษา C# ตามชื่อหมายถึงเป็นส่วนหนึ่งของตระกูลภาษาที่คล้าย C และคล้ายกับภาษายอดนิยมอื่น ๆ จากกลุ่มนี้ (C ++, Java) ดังนั้น หากคุณคุ้นเคยกับภาษาใดภาษาหนึ่งเหล่านี้อยู่แล้ว คุณจะเชี่ยวชาญภาษาการเขียนโปรแกรม C# ได้ง่ายขึ้นมาก
เนื่องจาก C# เป็นภาษาเชิงวัตถุ จึงรองรับการสืบทอด ความหลากหลาย การห่อหุ้ม การพิมพ์ตัวแปรขั้นสูง การโอเวอร์โหลดของตัวดำเนินการ และอื่นๆ แนวคิดทั้งหมดเหล่านี้จะกล่าวถึงรายละเอียดในบทความต่อๆ ไป ด้วยการใช้กระบวนทัศน์การออกแบบเชิงวัตถุโดยใช้ภาษาการเขียนโปรแกรม การพัฒนาโครงการขนาดใหญ่และมีความยืดหยุ่นจึงค่อนข้างง่าย ในเวลาเดียวกัน เวอร์ชันใหม่ของภาษา C# จะถูกปล่อยออกมาเป็นประจำ โดยเพิ่มฟังก์ชันใหม่เพื่อทำให้ชีวิตของนักพัฒนาง่ายขึ้น เพิ่มความเร็วในการพัฒนา และปรับปรุงประสิทธิภาพและความน่าเชื่อถือของแอปพลิเคชัน
.NET Framework เป็นแพลตฟอร์มซอฟต์แวร์จากบริษัทไมโครซอฟต์ ช่วยให้สามารถพัฒนาในภาษาโปรแกรมต่างๆ ได้ เนื่องจากทุกภาษาใช้สภาพแวดล้อมการดำเนินการภาษาเดียวร่วมกันรันไทม์ภาษาทั่วไป (CLR) ดังนั้นความสามารถหลักของแพลตฟอร์ม .NET คือ:
รหัสที่ได้รับการจัดการเป็นโค้ดที่จัดการโดยรันไทม์ภาษาทั่วไป (CLR) ซึ่งหมายความว่าสภาพแวดล้อมการควบคุมสามารถหยุดการทำงานของแอปพลิเคชันชั่วคราวและรับข้อมูลเฉพาะเกี่ยวกับสถานะของแอปพลิเคชันได้ตลอดเวลาระหว่างการดำเนินการ ซอร์สโค้ดของภาษาการเขียนโปรแกรมที่ใช้จะถูกแปลเป็นโค้ด CIL ที่มีการควบคุม (หรือที่เรียกว่าแอสเซมเบลอร์ระดับสูง)
หลังจากสร้างคลาสไลบรารีหรือแอปพลิเคชันแล้ว ซอร์สโค้ดจะยังคงถูกจัดเก็บไว้ใน CIL และเมื่อคุณเปิดแอปพลิเคชันหรือเข้าถึงไลบรารี Just-In-Time จะถูกดำเนินการ ( จิต) การคอมไพล์แอปพลิเคชันลงในรหัสเครื่องเฉพาะสำหรับสภาพแวดล้อมที่แอปพลิเคชันถูกดำเนินการ ในกรณีนี้ คุณสมบัติที่สำคัญคือมีเพียงส่วนหนึ่งของแอปพลิเคชันหรือไลบรารีที่เข้าถึงได้ (และการเชื่อมต่อด้วย) เท่านั้นที่จะถูกคอมไพล์ สิ่งนี้ช่วยให้คุณเพิ่มประสิทธิภาพของระบบและประหยัดทรัพยากร
รหัสที่ไม่มีการจัดการ- นี่คือโค้ดที่แปลโดยตรงเป็นโค้ดปฏิบัติการของเครื่องและดำเนินการโดยตรงจากระบบปฏิบัติการ
นอกจากนี้ฉันแนะนำให้อ่านบทความ และสมัครสมาชิกกลุ่ม VKontakte, Telegram และ YouTube ยังมีสิ่งที่มีประโยชน์และน่าสนใจอีกมากมายสำหรับโปรแกรมเมอร์
NET Framework ทำหน้าที่เป็นสภาพแวดล้อมสำหรับการสนับสนุน การพัฒนา และการรันแอปพลิเคชันแบบกระจายที่อิงตามส่วนประกอบ (ตัวควบคุม)
แอพพลิเคชั่น (โปรแกรม) สามารถพัฒนาได้ในภาษาโปรแกรมต่าง ๆ ที่รองรับเทคโนโลยีนี้
NET Framework ให้:
จากมุมมองของการเขียนโปรแกรม .NET Framework ประกอบด้วยองค์ประกอบหลักสองส่วน:
Common Language Runtime (CLR) แก้ปัญหาการค้นหาประเภท .NET โดยอัตโนมัติ โหลดประเภทเหล่านั้น และจัดการประเภทเหล่านั้น CLR จัดการการจัดการหน่วยความจำ การบำรุงรักษาแอปพลิเคชัน การประมวลผลเธรด และดำเนินการตรวจสอบที่เกี่ยวข้องกับความปลอดภัยจำนวนมาก
ไลบรารีของคลาสพื้นฐานประกอบด้วยคำจำกัดความของพื้นฐานต่างๆ ซึ่งอาจรวมถึง: สตรีม, API แบบกราฟิก, การใช้งานฐานข้อมูล, ไฟล์ I/O เป็นต้น
Common Language Runtime (CLR) จัดการการทำงานของโค้ด .NET
หลังจากคอมไพล์โปรแกรมในภาษา C# (หรือภาษาอื่น) ไฟล์จะถูกสร้างขึ้นโดยมีรหัสเทียมหรือรหัสไบต์ชนิดพิเศษ (และไม่ใช่ไฟล์ปฏิบัติการเหมือนเมื่อก่อน) รหัสเทียมนี้เรียกว่า (MSIL) หรือ Common Intermediate Language (CIL) รหัสเทียมนี้คือ Microsoft Intermediate Language
วัตถุประสงค์หลักของ CLR คือการเปลี่ยนโค้ด MSIL ระดับกลางให้เป็นโค้ดที่ปฏิบัติการได้ระหว่างการทำงานของโปรแกรม
โปรแกรมใด ๆ ที่คอมไพล์เป็นรหัสหลอก MSIL สามารถดำเนินการได้ในสภาพแวดล้อมใด ๆ ที่มีการใช้งาน CLR ซึ่งช่วยให้โปรแกรมต่างๆ สามารถพกพาได้ภายใน .NET Framework
ข้าว. 1. กระบวนการแปลงซอร์สโค้ดเป็นโค้ด MSIL (CIL หรือ IL) และสร้างไฟล์แอสเซมบลี (*.dll หรือ *.exe)
หลังจากนี้ pseudocode จะกลายเป็นโค้ดที่ปฏิบัติการได้ สิ่งนี้ทำโดยคอมไพเลอร์ JIT การรวบรวม JIT (Just-in-time) เป็นการรวบรวมทันที
CLR มีหน้าที่กำหนดตำแหน่งที่จะวางชุดประกอบ
ประเภทที่ร้องขอซึ่งวางอยู่ในแอสเซมบลี (เช่นคลาส ArrayList หรือประเภทอื่น) จะถูกกำหนดในไฟล์ไบนารี (*.dll หรือ *.exe) โดยการอ่านข้อมูลเมตาของไฟล์
CLR จะวางประเภทที่อ่านจากแอสเซมบลีลงในหน่วยความจำ
จากนั้น CLR จะเปลี่ยนรหัส CIL ให้เป็นคำแนะนำที่เหมาะสมซึ่งปรับให้เหมาะกับแพลตฟอร์มเฉพาะ (ขึ้นอยู่กับพีซี ระบบปฏิบัติการ ฯลฯ) นอกจากนี้ ยังมีการตรวจสอบความปลอดภัยที่จำเป็นในขั้นตอนนี้
สิ่งสุดท้ายที่ต้องทำคือรันโค้ดโปรแกรมที่ร้องขอ
ในตอนแรกมีการเรียกภาษาเทียมระดับกลาง ภาษาระดับกลางของ Microsoft(เอ็มซิล). ต่อมา (ใน .NET เวอร์ชันล่าสุด) ชื่อนี้ถูกเปลี่ยนเป็น Common Intermediate Language (CIL - Common Intermediate Language) ตัวย่อ MSIL, CIL และ IL (Intermediate Language) มีความหมายเหมือนกัน
ภาษาระดับกลาง CIL (หรือ MSIL) ถูกสร้างขึ้นหลังจากการคอมไพล์โปรแกรมในภาษาการเขียนโปรแกรมบางภาษาที่รองรับ .NET Framework
MSIL เป็นรหัสเทียม MSIL กำหนดชุดคำสั่งที่:
ที่จริงแล้ว MSIL ก็คือ ภาษาแอสเซมบลีแบบพกพา
แอสเซมบลีคือไฟล์ที่มีนามสกุล *.dll หรือ *.exe ซึ่งมีคำสั่ง Intermediate Language (IL) ที่ไม่ขึ้นกับแพลตฟอร์ม .NET รวมถึงประเภทข้อมูลเมตา
แอสเซมบลีถูกสร้างขึ้นโดยใช้คอมไพเลอร์ .NET แอสเซมบลีเป็นวัตถุไบนารีขนาดใหญ่
แอสเซมบลีได้รับการออกแบบเพื่อรักษาเนมสเปซ เนมสเปซมีประเภทต่างๆ ประเภทสามารถเป็นคลาส ผู้รับมอบสิทธิ์ อินเทอร์เฟซ การแจงนับ โครงสร้าง
แอสเซมบลีสามารถมีเนมสเปซจำนวนเท่าใดก็ได้ เนมสเปซใดๆ สามารถมีประเภทเท่าใดก็ได้ (คลาส อินเทอร์เฟซ โครงสร้าง การแจงนับ ผู้รับมอบสิทธิ์)
แอสเซมบลีประกอบด้วยรหัส CIL (รหัส MSIL หรือรหัส IL) และข้อมูลเมตา
รหัส CIL ได้รับการคอมไพล์สำหรับแพลตฟอร์มเฉพาะเฉพาะเมื่อมีการเข้าถึงจากรันไทม์ .NET
ข้อมูลเมตาอธิบายรายละเอียดคุณลักษณะของแต่ละประเภทที่มีอยู่ภายในหน่วยไบนารี .NET ที่กำหนด
ตัวอย่างเช่นเมื่อคุณสร้าง Windows Forms Application ใน C# ไฟล์ Assembly.info จะถูกสร้างขึ้น ไฟล์นี้อยู่ในโฟลเดอร์ย่อยคุณสมบัติซึ่งสัมพันธ์กับโฟลเดอร์โปรแกรมหลัก ไฟล์นี้ให้ข้อมูลทั่วไปเกี่ยวกับแอสเซมบลี
แถลงการณ์เป็นคำอธิบายของแอสเซมบลีโดยใช้ข้อมูลเมตา
รายการประกอบด้วยข้อมูลต่อไปนี้:
โปรแกรมเมอร์สร้างซอร์สโค้ดของแอปพลิเคชันในภาษาที่รองรับเทคโนโลยี .NET (C#, C++/CLI, Visual Basic .NET ฯลฯ) แอปพลิเคชันนี้สร้างขึ้นในสภาพแวดล้อมการเขียนโปรแกรมบางอย่าง เช่น Microsoft Visual Studio คอมไพเลอร์สร้างแอสเซมบลี - ไฟล์ที่มีคำสั่ง CIL ข้อมูลเมตา และรายการ
หลังจากเรียกใช้แอปพลิเคชันนี้บนคอมพิวเตอร์บางเครื่อง (บางแพลตฟอร์ม) กลไกรันไทม์ .NET จะถูกเปิดใช้งาน ขั้นแรก ต้องติดตั้ง .NET Framework เวอร์ชันใดเวอร์ชันหนึ่ง (อย่างน้อย) บนคอมพิวเตอร์
หากซอร์สโค้ดใช้ไลบรารีคลาสพื้นฐาน (เช่น จากแอสเซมบลี mscorlib.dll) จากนั้นจะถูกโหลดโดยใช้ตัวโหลดคลาส
คอมไพเลอร์ JIT รวบรวมแอสเซมบลีโดยคำนึงถึง (การเชื่อมโยง) คุณสมบัติฮาร์ดแวร์และซอฟต์แวร์ของคอมพิวเตอร์ที่แอปพลิเคชันทำงานอยู่
หลังจากนี้แอปพลิเคชันจะทำงาน
รูปที่ 2 ความสัมพันธ์ระหว่างซอร์สโค้ด คอมไพลเลอร์ และเอ็นจิ้นรันไทม์ .NET
แอสเซมบลีมีสองประเภท:
แอสเซมบลีที่ประกอบด้วยโมดูลเดียว (*.dll หรือ *.exe) เรียกว่าไฟล์เดียว แอสเซมบลีไฟล์เดียวจะวางคำสั่ง CIL ข้อมูลเมตา และรายการที่จำเป็นทั้งหมดไว้ในแพ็คเกจเดียวที่มีการกำหนดไว้อย่างดี
แอสเซมบลีที่ประกอบด้วยไฟล์รหัสไบนารี่ .NET จำนวนมากเรียกว่าแอสเซมบลีหลายไฟล์ แต่ละไฟล์เหล่านี้เรียกว่าโมดูล
ในแอสเซมบลีหลายไฟล์ หนึ่งในโมดูลคือโมดูลหลัก (หลัก)
แอสเซมบลีหลักอยู่ในไฟล์ “mscorlib.dll”
CTS (Common Type System) - ระบบประเภทที่มีคำอธิบายที่สมบูรณ์ของประเภทข้อมูลที่เป็นไปได้ทั้งหมดและโครงสร้างโปรแกรมที่รองรับโดย CLR รันไทม์ภาษาทั่วไป นอกจากนี้ยังอธิบายว่าเอนทิตีเหล่านี้สามารถโต้ตอบกันได้อย่างไร
ประเภทสามารถเป็นคลาส อินเทอร์เฟซ โครงสร้าง การแจงนับ ผู้รับมอบสิทธิ์
ดังที่คุณทราบไม่ใช่ว่าภาษาโปรแกรมทั้งหมดที่รองรับ .NET จะสามารถรองรับการทำงานของระบบประเภท CTS ได้ เพื่อจุดประสงค์นี้ จะใช้ข้อกำหนดภาษาทั่วไป CLS (ข้อกำหนดภาษาทั่วไป)
วัตถุประสงค์ของ CLS คือการอธิบายเฉพาะชุดย่อยของประเภททั่วไปและโครงสร้างการเขียนโปรแกรมที่ได้รับการยอมรับจากภาษาการเขียนโปรแกรมทั้งหมดที่รองรับ .NET
ในระบบการพัฒนาแอปพลิเคชัน MS Visual Studio เทคโนโลยี .NET ได้รับการสนับสนุนโดยภาษาการเขียนโปรแกรมต่อไปนี้: C#, Visual Basic .NET, C++/CLI, JScript .NET, F#, J#
เพื่อให้สามารถใช้เทคโนโลยี .NET ได้ คุณต้องติดตั้งซอฟต์แวร์บนคอมพิวเตอร์ของคุณ ชุดพัฒนาซอฟต์แวร์ Microsoft .NET Framework(SDK) หรือ Microsoft Visual Studio เวอร์ชันใดก็ได้
เนมสเปซมีวัตถุประสงค์เพื่อรวมกลุ่มประเภทที่เกี่ยวข้องกันจากมุมมองเชิงความหมาย ประเภทจะอยู่ในชุดประกอบ (ชุดประกอบ) ประเภท หมายถึง คลาส ผู้รับมอบสิทธิ์ อินเทอร์เฟซ โครงสร้าง และการแจงนับ
ตัวอย่างของชื่อเนมสเปซ:
ระบบ ระบบข้อมูล ระบบ.IO ระบบคอลเลกชัน System.Threading.Tasksตัวอย่างเช่น เนมสเปซ System.Data มีประเภทหลักสำหรับการทำงานกับฐานข้อมูล และเนมสเปซ System.Collections มีประเภทหลักสำหรับการทำงานกับคอลเลกชัน
ระบบ Microsoft Visual Studio มียูทิลิตี้ Object Browser ซึ่งเรียกจากเมนูมุมมอง (รูปที่ 3)
ข้าว. 3. การเรียกยูทิลิตี้ Object Browser
ซึ่งจะเป็นการเปิดหน้าต่าง Object Browser ซึ่งจะแสดงชุดประกอบที่ใช้ในเทคโนโลยีเฉพาะ
รูปที่ 4 แสดงรายการชุดประกอบที่แสดงในเทคโนโลยี “.NET Framework 4” แอสเซมบลีชื่อ "mscorlib" จะถูกเน้น
ข้าว. 4. หน้าต่าง Object Browser ที่เน้นชุดประกอบ mscorlib.dll
หากคุณขยายเนื้อหาของแอสเซมบลี mscorlib (“ + ") รายการเนมสเปซทั้งหมดสำหรับแอสเซมบลีนี้จะปรากฏขึ้น (รูปที่ 5) ดังที่คุณเห็นจากภาพ แอสเซมบลีประกอบด้วยเนมสเปซ Microsoft.Win32, System, System.Collections, System.Collections.Concurrent และอื่นๆ อีกมากมาย
ข้าว. 5. แอสเซมบลี mscorlib และรายการเนมสเปซที่รวมอยู่ในนั้น
เนมสเปซใดๆ จะถูกขยายในลักษณะเดียวกัน เนมสเปซอธิบายประเภท ประเภทอธิบายวิธีการ คุณสมบัติ ค่าคงที่ ฯลฯ
รูปที่ 6 แสดงคลาส BinaryReader จากเนมสเปซ System.IO เห็นได้ชัดว่าคลาสใช้วิธีการที่ชื่อว่า BinaryReader(), Close(), Dispose(), FillBuffer() และอื่นๆ
ข้าว. 6. เนื้อหาของคลาส BinaryReader
หากต้องการเชื่อมต่อเนมสเปซ ให้ใช้คีย์เวิร์ดที่ใช้
วันที่ดีสำหรับทุกคน Alexey Gulynin ติดต่ออยู่ ในบทความแรกเกี่ยวกับ C# ฉันอยากจะพูดคุยเกี่ยวกับแพลตฟอร์ม .NET Framework- ภาษา C# และแพลตฟอร์มนั้นปรากฏตัวครั้งแรกในปี 2545 วัตถุประสงค์หลักของการสร้างสรรค์คือเพื่อให้โมเดลการเขียนโปรแกรมง่ายขึ้น ปรับขนาดได้มากขึ้น และที่สำคัญที่สุดคือ มีประสิทธิภาพมากกว่าเมื่อเปรียบเทียบกับโมเดลการเขียนโปรแกรม COM จากแพลตฟอร์ม .NET Framework คุณสามารถสร้างแอปพลิเคชันสำหรับระบบปฏิบัติการตระกูล Windows ได้ คุณยังสามารถสร้างแอปพลิเคชันสำหรับ Unix, Linux, Mac OS X ได้อีกด้วย ด้านล่างนี้คือข้อมูลโดยย่อ รายการคุณสมบัติที่รองรับโดย .NET Framework:
1) ความสามารถในการโต้ตอบกับโค้ดที่มีอยู่- ความสามารถนี้ทำให้คุณสามารถคอมไพล์ เช่น ไบนารี COM และคอมโพเนนต์ .NET
2) รองรับภาษาการเขียนโปรแกรมต่างๆ- แอปพลิเคชัน .NET สามารถสร้างขึ้นได้โดยใช้ภาษาการเขียนโปรแกรมที่แตกต่างกัน เช่น C#, Visual Basic, F#
3) กลไกการดำเนินการทั่วไป- ประเด็นก็คือ .NET มีชุดประเภทเฉพาะที่ทุกภาษาที่รองรับ .NET สามารถเข้าใจได้
4) บูรณาการภาษา- คุณสามารถเขียนคลาสใน Visual Basic แล้วขยายใน C#
5) ห้องสมุดขนาดใหญ่ของคลาสพื้นฐาน- ต้องขอบคุณไลบรารีนี้ที่ทำให้เราลืมความซับซ้อนของการใช้การเรียก API ระดับต่ำและมุ่งเน้นไปที่การเขียนโปรแกรมเพียงอย่างเดียว
6) รูปแบบการใช้งานที่เรียบง่าย- ต่างจากไลบรารี COM ตรงที่ .NET ไม่จำเป็นต้องลงทะเบียนในรีจิสทรี มันสามารถมีอยู่เป็น assembly.dll
บางทีฉันอาจเขียนเกี่ยวกับสิ่งที่เข้าใจยากบางอย่างที่นี่ เช่น คลาส อินเทอร์เฟซ API ยังไม่คุ้มค่าที่จะกังวลกับเรื่องนี้ในตอนนี้ โดยหลักการแล้ว คุณสามารถเขียนโปรแกรมได้โดยไม่ต้องรู้ทั้งหมดนี้ แต่วิธีที่เราเรียนรู้ เรามาเจือจางการฝึกฝนกับทฤษฎีสักหน่อย
เพื่อปิดท้ายทฤษฎีนี้โดยสมบูรณ์ ฉันจะบอกคุณเกี่ยวกับองค์ประกอบหลักของแพลตฟอร์ม .NET:
1) CLR (Common Language Runtime) - สภาพแวดล้อมรันไทม์ภาษาทั่วไป งานหลักของสภาพแวดล้อมนี้คือการโหลดและจัดการออบเจ็กต์ .NET (เพื่อให้โปรแกรมเมอร์ไม่ต้องดำเนินการด้วยตนเอง) นอกจากนี้ CLR ยังดูแลรายละเอียดระดับต่ำจำนวนหนึ่ง เช่น การจัดการหน่วยความจำ การวางแอปพลิเคชัน และการดำเนินการตรวจสอบที่เกี่ยวข้องกับความปลอดภัยของแอปพลิเคชัน
2) CTS (Common Type System) - ระบบประเภททั่วไป ซึ่งจะอธิบายประเภทข้อมูลที่เป็นไปได้ทั้งหมดที่รันไทม์ (CLR) รองรับ คุณต้องทราบว่าภาษาเดียวอาจไม่รองรับฟีเจอร์ทั้งหมดที่กำหนดโดยข้อกำหนด CTS อย่างแน่นอน ดังนั้นจึงมี:
3) CLS (ข้อกำหนดภาษาทั่วไป)- โดยจะอธิบายชุดย่อยของประเภททั่วไปและโครงสร้างการเขียนโปรแกรมที่ภาษาการเขียนโปรแกรมทั้งหมดสำหรับ .NET Framework ต้องรองรับ
นอกเหนือจากข้อกำหนด CLR และ CTS/CLS แล้ว แพลตฟอร์ม .NET ยังมีให้อีกด้วย ไลบรารีคลาสพื้นฐานซึ่งใช้ได้กับภาษาการเขียนโปรแกรม .NET ทั้งหมด ไลบรารีนี้ช่วยให้คุณจัดการ เช่น ไฟล์ I/O กราฟิก อุปกรณ์ภายนอกต่างๆ สตรีมข้อมูล และบริการต่างๆ ในระดับสูง (โดยไม่ต้องคำนึงถึงรายละเอียดการใช้งาน)
ฉันไม่ใช่ผู้เชี่ยวชาญในการเขียนทฤษฎี ดังนั้นฉันจะบอกว่าสำหรับผู้ที่ต้องการเข้าใจปรัชญาของ .NET มากขึ้น ฉันแนะนำให้อ่านหนังสือบทแรกของ Andrew Troelsen เรื่อง “The C# 5.0 Programming Language and the .NET 4.5 Platform, เผยแพร่เมื่อปี 2556” บทสรุปของแพลตฟอร์ม .NET นี้นำมาจากหนังสือเล่มนี้ ปัญหาที่ฉันเจอกับหนังสือเล่มนี้คือมันยากสำหรับผู้เริ่มต้นที่จะเข้าใจ คุณอาจไม่คิดเช่นนั้น นี่เป็นเพียงความคิดเห็นของฉัน
เพื่อนๆ คุณยังอยากเรียน C# อยู่หรือเปล่า? ถ้าอย่างนั้นเรามาก้าวต่อไปอย่างกล้าหาญฉันสัญญาว่าในอนาคตจะมีบทความเชิงทฤษฎีขั้นต่ำ (หากเป็นเพียงตอนเริ่มต้นของการเรียนรู้ C#) มีเพียงแบบฝึกหัดเดียวเท่านั้น หากคุณต้องการทฤษฎี สูบบุหรี่หนังสือของ Andrew Troelsen
ดังนั้น หากคุณต้องการข้อมูลใดๆ เกี่ยวกับชั้นเรียนหรือวิธีการของชั้นเรียน ให้ตรงไปที่
.NET Framework เป็นหนึ่งในองค์ประกอบของระบบ Windows ช่วยให้คุณสร้างและใช้แอปพลิเคชันรุ่นต่อไปได้ วัตถุประสงค์ของแพลตฟอร์ม .NET Framework :