ประเภทของแอปพลิเคชัน .NET การทำความเข้าใจแนวคิดพื้นฐานของ .NET Framework วัตถุประสงค์ของ Common Language Specification (CLS) คืออะไร

14.09.2022

.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

.NET Framework เป็นแพลตฟอร์มซอฟต์แวร์จากบริษัทไมโครซอฟต์ ช่วยให้สามารถพัฒนาในภาษาโปรแกรมต่างๆ ได้ เนื่องจากทุกภาษาใช้สภาพแวดล้อมการดำเนินการภาษาเดียวร่วมกันรันไทม์ภาษาทั่วไป (CLR) ดังนั้นความสามารถหลักของแพลตฟอร์ม .NET คือ:

  • ข้ามแพลตฟอร์ม– .NET Framework รองรับระบบปฏิบัติการที่ทันสมัยที่สุด Windows และยังสามารถสร้างแอปพลิเคชันที่รองรับโดยระบบ Linux และแม้แต่แอปพลิเคชันมือถืออีกด้วย
  • พูดได้หลายภาษา– เนื่องจากซอร์สโค้ดที่เขียนในภาษาการเขียนโปรแกรมที่ใช้ถูกแปลเป็นโค้ด Common Intermediate Language (CIL) จึงเป็นไปได้ที่จะพัฒนาในภาษาการเขียนโปรแกรมที่รองรับ และแม้แต่ใช้ภาษาการเขียนโปรแกรมที่แตกต่างกันในโซลูชันเดียว ภาษาที่รองรับยอดนิยม ได้แก่ C#, VB.NET, C++, F#
  • ห้องสมุดที่กว้างขวางของชั้นเรียนและเทคโนโลยี– มีไลบรารี่ที่พร้อมใช้งานจำนวนมากเพื่อแก้ไขปัญหาที่จำเป็น บ่อยครั้งไม่จำเป็นต้องใช้ตรรกะระดับต่ำของแอปพลิเคชันเลย ก็เพียงพอแล้วที่จะใช้โซลูชันสำเร็จรูปซึ่งจัดเตรียมให้อย่างสะดวกสบายผ่านตัวจัดการแพ็คเกจ nuget นอกจากนี้ แพลตฟอร์ม .NET ยังช่วยให้การพัฒนาซอฟต์แวร์แทบทุกประเภทที่จำเป็นเป็นเรื่องง่าย

รหัสที่ได้รับการจัดการและไม่มีการจัดการ การรวบรวม JIT

รหัสที่ได้รับการจัดการเป็นโค้ดที่จัดการโดยรันไทม์ภาษาทั่วไป (CLR) ซึ่งหมายความว่าสภาพแวดล้อมการควบคุมสามารถหยุดการทำงานของแอปพลิเคชันชั่วคราวและรับข้อมูลเฉพาะเกี่ยวกับสถานะของแอปพลิเคชันได้ตลอดเวลาระหว่างการดำเนินการ ซอร์สโค้ดของภาษาการเขียนโปรแกรมที่ใช้จะถูกแปลเป็นโค้ด CIL ที่มีการควบคุม (หรือที่เรียกว่าแอสเซมเบลอร์ระดับสูง)

หลังจากสร้างคลาสไลบรารีหรือแอปพลิเคชันแล้ว ซอร์สโค้ดจะยังคงถูกจัดเก็บไว้ใน CIL และเมื่อคุณเปิดแอปพลิเคชันหรือเข้าถึงไลบรารี Just-In-Time จะถูกดำเนินการ ( จิต) การคอมไพล์แอปพลิเคชันลงในรหัสเครื่องเฉพาะสำหรับสภาพแวดล้อมที่แอปพลิเคชันถูกดำเนินการ ในกรณีนี้ คุณสมบัติที่สำคัญคือมีเพียงส่วนหนึ่งของแอปพลิเคชันหรือไลบรารีที่เข้าถึงได้ (และการเชื่อมต่อด้วย) เท่านั้นที่จะถูกคอมไพล์ สิ่งนี้ช่วยให้คุณเพิ่มประสิทธิภาพของระบบและประหยัดทรัพยากร

รหัสที่ไม่มีการจัดการ- นี่คือโค้ดที่แปลโดยตรงเป็นโค้ดปฏิบัติการของเครื่องและดำเนินการโดยตรงจากระบบปฏิบัติการ

นอกจากนี้ฉันแนะนำให้อ่านบทความ และสมัครสมาชิกกลุ่ม VKontakte, Telegram และ YouTube ยังมีสิ่งที่มีประโยชน์และน่าสนใจอีกมากมายสำหรับโปรแกรมเมอร์

NET Framework ทำหน้าที่เป็นสภาพแวดล้อมสำหรับการสนับสนุน การพัฒนา และการรันแอปพลิเคชันแบบกระจายที่อิงตามส่วนประกอบ (ตัวควบคุม)

แอพพลิเคชั่น (โปรแกรม) สามารถพัฒนาได้ในภาษาโปรแกรมต่าง ๆ ที่รองรับเทคโนโลยีนี้

NET Framework ให้:

  • การใช้ภาษาโปรแกรมต่างๆ ร่วมกัน
  • ความปลอดภัยและความสะดวกในการพกพาของโปรแกรม
  • รูปแบบการเขียนโปรแกรมทั่วไปบนแพลตฟอร์ม Windows

2. องค์ประกอบหลักของ .NET Framework มีอะไรบ้าง

จากมุมมองของการเขียนโปรแกรม .NET Framework ประกอบด้วยองค์ประกอบหลักสองส่วน:

  • สภาพแวดล้อมการดำเนินการภาษาทั่วไป CLR (รันไทม์ภาษาทั่วไป);
  • ไลบรารีคลาสพื้นฐาน

Common Language Runtime (CLR) แก้ปัญหาการค้นหาประเภท .NET โดยอัตโนมัติ โหลดประเภทเหล่านั้น และจัดการประเภทเหล่านั้น CLR จัดการการจัดการหน่วยความจำ การบำรุงรักษาแอปพลิเคชัน การประมวลผลเธรด และดำเนินการตรวจสอบที่เกี่ยวข้องกับความปลอดภัยจำนวนมาก

ไลบรารีของคลาสพื้นฐานประกอบด้วยคำจำกัดความของพื้นฐานต่างๆ ซึ่งอาจรวมถึง: สตรีม, API แบบกราฟิก, การใช้งานฐานข้อมูล, ไฟล์ I/O เป็นต้น

3. หลักการทำงานของ Common Language Runtime (CLR) คืออะไร?

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 ให้เป็นคำแนะนำที่เหมาะสมซึ่งปรับให้เหมาะกับแพลตฟอร์มเฉพาะ (ขึ้นอยู่กับพีซี ระบบปฏิบัติการ ฯลฯ) นอกจากนี้ ยังมีการตรวจสอบความปลอดภัยที่จำเป็นในขั้นตอนนี้

สิ่งสุดท้ายที่ต้องทำคือรันโค้ดโปรแกรมที่ร้องขอ

4. ภาษากลาง MSIL คืออะไร ( ภาษาระดับกลางของ Microsoft) หรือ CIL (ภาษากลางทั่วไป)?

ในตอนแรกมีการเรียกภาษาเทียมระดับกลาง ภาษาระดับกลางของ Microsoft(เอ็มซิล). ต่อมา (ใน .NET เวอร์ชันล่าสุด) ชื่อนี้ถูกเปลี่ยนเป็น Common Intermediate Language (CIL - Common Intermediate Language) ตัวย่อ MSIL, CIL และ IL (Intermediate Language) มีความหมายเหมือนกัน

ภาษาระดับกลาง CIL (หรือ MSIL) ถูกสร้างขึ้นหลังจากการคอมไพล์โปรแกรมในภาษาการเขียนโปรแกรมบางภาษาที่รองรับ .NET Framework

MSIL เป็นรหัสเทียม MSIL กำหนดชุดคำสั่งที่:

  • สามารถถ่ายโอนไปยังแพลตฟอร์มต่าง ๆ ได้
  • ไม่ขึ้นอยู่กับโปรเซสเซอร์เฉพาะ

ที่จริงแล้ว MSIL ก็คือ ภาษาแอสเซมบลีแบบพกพา

5. แอสเซมบลีจากมุมมองของเทคโนโลยี .NET คืออะไร?

แอสเซมบลีคือไฟล์ที่มีนามสกุล *.dll หรือ *.exe ซึ่งมีคำสั่ง Intermediate Language (IL) ที่ไม่ขึ้นกับแพลตฟอร์ม .NET รวมถึงประเภทข้อมูลเมตา

แอสเซมบลีถูกสร้างขึ้นโดยใช้คอมไพเลอร์ .NET แอสเซมบลีเป็นวัตถุไบนารีขนาดใหญ่

แอสเซมบลีได้รับการออกแบบเพื่อรักษาเนมสเปซ เนมสเปซมีประเภทต่างๆ ประเภทสามารถเป็นคลาส ผู้รับมอบสิทธิ์ อินเทอร์เฟซ การแจงนับ โครงสร้าง

แอสเซมบลีสามารถมีเนมสเปซจำนวนเท่าใดก็ได้ เนมสเปซใดๆ สามารถมีประเภทเท่าใดก็ได้ (คลาส อินเทอร์เฟซ โครงสร้าง การแจงนับ ผู้รับมอบสิทธิ์)

6. มีอะไรรวมอยู่ในชุดประกอบบ้าง?

แอสเซมบลีประกอบด้วยรหัส CIL (รหัส MSIL หรือรหัส IL) และข้อมูลเมตา

รหัส CIL ได้รับการคอมไพล์สำหรับแพลตฟอร์มเฉพาะเฉพาะเมื่อมีการเข้าถึงจากรันไทม์ .NET

ข้อมูลเมตาอธิบายรายละเอียดคุณลักษณะของแต่ละประเภทที่มีอยู่ภายในหน่วยไบนารี .NET ที่กำหนด

ตัวอย่างเช่นเมื่อคุณสร้าง Windows Forms Application ใน C# ไฟล์ Assembly.info จะถูกสร้างขึ้น ไฟล์นี้อยู่ในโฟลเดอร์ย่อยคุณสมบัติซึ่งสัมพันธ์กับโฟลเดอร์โปรแกรมหลัก ไฟล์นี้ให้ข้อมูลทั่วไปเกี่ยวกับแอสเซมบลี

7. รายการคืออะไร?

แถลงการณ์เป็นคำอธิบายของแอสเซมบลีโดยใช้ข้อมูลเมตา

รายการประกอบด้วยข้อมูลต่อไปนี้:

  • เกี่ยวกับเวอร์ชันปัจจุบันของแอสเซมบลี
  • ข้อมูลเกี่ยวกับวัฒนธรรม (การแปลทรัพยากรแบบเส้นและกราฟิก)
  • รายการลิงก์ไปยังชุดประกอบภายนอกทั้งหมดที่จำเป็นสำหรับการทำงานที่เหมาะสม

8. แผนผังของการโต้ตอบระหว่างซอร์สโค้ด คอมไพเลอร์ .NET และกลไกรันไทม์ .NET

โปรแกรมเมอร์สร้างซอร์สโค้ดของแอปพลิเคชันในภาษาที่รองรับเทคโนโลยี .NET (C#, C++/CLI, Visual Basic .NET ฯลฯ) แอปพลิเคชันนี้สร้างขึ้นในสภาพแวดล้อมการเขียนโปรแกรมบางอย่าง เช่น Microsoft Visual Studio คอมไพเลอร์สร้างแอสเซมบลี - ไฟล์ที่มีคำสั่ง CIL ข้อมูลเมตา และรายการ

หลังจากเรียกใช้แอปพลิเคชันนี้บนคอมพิวเตอร์บางเครื่อง (บางแพลตฟอร์ม) กลไกรันไทม์ .NET จะถูกเปิดใช้งาน ขั้นแรก ต้องติดตั้ง .NET Framework เวอร์ชันใดเวอร์ชันหนึ่ง (อย่างน้อย) บนคอมพิวเตอร์

หากซอร์สโค้ดใช้ไลบรารีคลาสพื้นฐาน (เช่น จากแอสเซมบลี mscorlib.dll) จากนั้นจะถูกโหลดโดยใช้ตัวโหลดคลาส

คอมไพเลอร์ JIT รวบรวมแอสเซมบลีโดยคำนึงถึง (การเชื่อมโยง) คุณสมบัติฮาร์ดแวร์และซอฟต์แวร์ของคอมพิวเตอร์ที่แอปพลิเคชันทำงานอยู่

หลังจากนี้แอปพลิเคชันจะทำงาน

รูปที่ 2 ความสัมพันธ์ระหว่างซอร์สโค้ด คอมไพลเลอร์ และเอ็นจิ้นรันไทม์ .NET

9. มีชุดประกอบประเภทใดบ้าง?

แอสเซมบลีมีสองประเภท:

  • แอสเซมบลีไฟล์เดียว
  • แอสเซมบลีหลายไฟล์

แอสเซมบลีที่ประกอบด้วยโมดูลเดียว (*.dll หรือ *.exe) เรียกว่าไฟล์เดียว แอสเซมบลีไฟล์เดียวจะวางคำสั่ง CIL ข้อมูลเมตา และรายการที่จำเป็นทั้งหมดไว้ในแพ็คเกจเดียวที่มีการกำหนดไว้อย่างดี

แอสเซมบลีที่ประกอบด้วยไฟล์รหัสไบนารี่ .NET จำนวนมากเรียกว่าแอสเซมบลีหลายไฟล์ แต่ละไฟล์เหล่านี้เรียกว่าโมดูล

ในแอสเซมบลีหลายไฟล์ หนึ่งในโมดูลคือโมดูลหลัก (หลัก)

10. ไฟล์ใดมีส่วนประกอบหลักของไลบรารี MS Visual Studio?

แอสเซมบลีหลักอยู่ในไฟล์ “mscorlib.dll”

11. ระบบประเภท CTS ทั่วไปคืออะไร?

CTS (Common Type System) - ระบบประเภทที่มีคำอธิบายที่สมบูรณ์ของประเภทข้อมูลที่เป็นไปได้ทั้งหมดและโครงสร้างโปรแกรมที่รองรับโดย CLR รันไทม์ภาษาทั่วไป นอกจากนี้ยังอธิบายว่าเอนทิตีเหล่านี้สามารถโต้ตอบกันได้อย่างไร

ประเภทสามารถเป็นคลาส อินเทอร์เฟซ โครงสร้าง การแจงนับ ผู้รับมอบสิทธิ์

12. CLS ข้อกำหนดภาษาทั่วไปมีจุดประสงค์อะไร

ดังที่คุณทราบไม่ใช่ว่าภาษาโปรแกรมทั้งหมดที่รองรับ .NET จะสามารถรองรับการทำงานของระบบประเภท CTS ได้ เพื่อจุดประสงค์นี้ จะใช้ข้อกำหนดภาษาทั่วไป CLS (ข้อกำหนดภาษาทั่วไป)

วัตถุประสงค์ของ CLS คือการอธิบายเฉพาะชุดย่อยของประเภททั่วไปและโครงสร้างการเขียนโปรแกรมที่ได้รับการยอมรับจากภาษาการเขียนโปรแกรมทั้งหมดที่รองรับ .NET

13. ภาษาโปรแกรมใดบ้างที่รองรับเทคโนโลยี .NET

ในระบบการพัฒนาแอปพลิเคชัน MS Visual Studio เทคโนโลยี .NET ได้รับการสนับสนุนโดยภาษาการเขียนโปรแกรมต่อไปนี้: C#, Visual Basic .NET, C++/CLI, JScript .NET, F#, J#

เพื่อให้สามารถใช้เทคโนโลยี .NET ได้ คุณต้องติดตั้งซอฟต์แวร์บนคอมพิวเตอร์ของคุณ ชุดพัฒนาซอฟต์แวร์ Microsoft .NET Framework(SDK) หรือ Microsoft Visual Studio เวอร์ชันใดก็ได้

14. เนมสเปซคืออะไร?

เนมสเปซมีวัตถุประสงค์เพื่อรวมกลุ่มประเภทที่เกี่ยวข้องกันจากมุมมองเชิงความหมาย ประเภทจะอยู่ในชุดประกอบ (ชุดประกอบ) ประเภท หมายถึง คลาส ผู้รับมอบสิทธิ์ อินเทอร์เฟซ โครงสร้าง และการแจงนับ

ตัวอย่างของชื่อเนมสเปซ:

ระบบ ระบบข้อมูล ระบบ.IO ระบบคอลเลกชัน System.Threading.Tasks

ตัวอย่างเช่น เนมสเปซ System.Data มีประเภทหลักสำหรับการทำงานกับฐานข้อมูล และเนมสเปซ System.Collections มีประเภทหลักสำหรับการทำงานกับคอลเลกชัน

15. จะแสดงเนื้อหาของแอสเซมบลี เนมสเปซ และประเภทใน MS Visual Studio ได้อย่างไร

ระบบ 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

16. จะเชื่อมต่อเนมสเปซในโปรแกรม C# ได้อย่างไร?

หากต้องการเชื่อมต่อเนมสเปซ ให้ใช้คีย์เวิร์ดที่ใช้

วันที่ดีสำหรับทุกคน 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 :

  • การสร้างองค์รวม สภาพแวดล้อมการเขียนโปรแกรมเชิงวัตถุช่วยให้มีตัวเลือกการใช้งานที่หลากหลาย: โค้ดสามารถจัดเก็บและดำเนินการในเครื่องได้ ดำเนินการภายในเครื่องและเผยแพร่ผ่านทางอินเทอร์เน็ต หรือดำเนินการจากระยะไกล
  • จัดเตรียมสภาพแวดล้อมการเรียกใช้โค้ดที่ลดการปรับใช้ซอฟต์แวร์และข้อขัดแย้งด้านเวอร์ชันให้เหลือน้อยที่สุด
  • สร้างความมั่นใจในความปลอดภัยของการเรียกใช้โค้ดในสภาพแวดล้อม - รวมถึงโค้ดที่สร้างโดยนักพัฒนาที่ไม่รู้จักหรือเชื่อถือได้บางส่วน
  • จัดเตรียมสภาพแวดล้อมรันไทม์ของโค้ดเพื่อแก้ไขปัญหาประสิทธิภาพในสภาพแวดล้อมที่ใช้สคริปต์หรือการตีความ
  • การรวมงานของนักพัฒนาในแอปพลิเคชันที่แตกต่างอย่างสิ้นเชิงทั้งในแอปพลิเคชัน Windows และในแอปพลิเคชันบนเว็บ
  • การใช้มาตรฐานอุตสาหกรรมในทุกด้านของการแลกเปลี่ยนข้อมูลและด้วยเหตุนี้จึงรับประกันความเข้ากันได้ของโค้ดที่สร้างใน .NET Framework กับโปรแกรมอื่น ๆ