กลับไปหน้าบทความ

อ่าน 12 นาที

.สุทธิ

แพลตฟอร์ม .NET (ออกเสียงว่า " ดอทเน็ต" เดิมชื่อ . NET Core ) เป็น เฟรมเวิร์กซอฟต์แวร์ คอมพิวเตอร์ แบบ จัดการที่เป็น โอเพนซอร์ส และ ใช้ งานได้ฟรี สำหรับ ระบบปฏิบัติการ Windows ,...

.สุทธิ

.สุทธิ
นักพัฒนามูลนิธิ .NETและชุมชนโอเพนซอร์ส
ปล่อย27 มิถุนายน 2559 ( 27 มิถุนายน 2016 )
เวอร์ชันเสถียร
10.0.9 [ 1 ] แก้ไขข้อมูลนี้บนวิกิดาต้า / 9 มิถุนายน 2026 ( 9 มิถุนายน 2026 )
รุ่นทดลองใช้งาน
10.0.0-rc.2 [ 2 ] แก้ไขข้อมูลนี้บนวิกิดาต้า / 14 ตุลาคม 2025 ( 14 ตุลาคม 2568 )
เขียนเป็นC# , C++และC
ระบบปฏิบัติการใช้งานได้หลายแพลตฟอร์ม : Windows , Linux , macOS , Android , iOS
แพลตฟอร์มIA-32 , x86-64 , ARM 64 บิต, Power ISA (ppc64le), IBM Zและ LinuxONE ( s390x ) [ 3 ]
ผู้มาก่อน.NET Framework
พิมพ์เฟรมเวิร์กซอฟต์แวร์
ใบอนุญาตMIT [ 4 ]
เว็บไซต์dotnet .microsoft .com
ที่เก็บข้อมูล
  • github.com/dotnet/runtime

แพลตฟอร์ม.NET (ออกเสียงว่า " ดอทเน็ต"เดิมชื่อ . NET Core ) เป็นเฟรมเวิร์กซอฟต์แวร์คอมพิวเตอร์ แบบ จัดการที่เป็น โอเพนซอร์ส และ ใช้ งานได้ฟรีสำหรับระบบปฏิบัติการWindows , LinuxและmacOS [ 5 ]เป็นเฟรมเวิร์กที่พัฒนาต่อยอดจาก . NET Framework ซึ่งใช้งานได้บนหลาย แพลตฟอร์มโครงการนี้ได้รับการพัฒนาโดย พนักงาน ของ Microsoftผ่านทาง . NET Foundationและปัจจุบันเผยแพร่ภายใต้ใบอนุญาต MIT [ 4 ]

แพลตฟอร์ม .NET เวอร์ชันใหม่จะออกวางจำหน่ายทุกปี โดยทั่วไปในเดือนพฤศจิกายน เวอร์ชันล่าสุดของ .NET คือ .NET 10 ซึ่งวางจำหน่ายในเดือนพฤศจิกายน 2025 ซึ่งเป็นเวอร์ชันสนับสนุนระยะยาว (LTS) และมีกำหนดจะได้รับการอัปเดตจนถึงเดือนพฤศจิกายน 2028 [ 6 ]

ประวัติศาสตร์

ในช่วงปลายทศวรรษ 1990 ไมโครซอฟต์เริ่มพัฒนา รันไทม์ โค้ดแบบจัดการและภาษาโปรแกรม ( C# ) ซึ่งเรียกรวมกันว่าเป็นส่วนหนึ่งของ "แพลตฟอร์ม .NET" โดยมีรันไทม์หลักและไลบรารีซอฟต์แวร์ประกอบเป็น. NET Framework

หัวใจสำคัญของแพลตฟอร์ม .NET คือ .NET Framework ซึ่งเป็นสภาพแวดล้อมการพัฒนาและการดำเนินการที่มีประสิทธิภาพสูงและรองรับหลายภาษาสำหรับการสร้างและเรียกใช้บริการเว็บที่มีคุณสมบัติสำคัญ เช่น การสืบทอดข้ามภาษาและการดีบัก[ 7 ]

หลังจากประกาศภาษา C# ในงานProfessional Developers Conferenceในปี 2000 และมีซอฟต์แวร์เวอร์ชันทดลองใช้ให้ใช้งานได้ไม่นาน ไมโครซอฟต์ก็เริ่มดำเนินการสร้างมาตรฐานผ่านECMAสำหรับสิ่งที่เรียกว่าCommon Language Infrastructureในขณะเดียวกันบริษัทก็ยังคงพัฒนาและสนับสนุนการใช้งานของตนเองต่อไปในรูปแบบซอฟต์แวร์ที่เป็นกรรมสิทธิ์และปิดแหล่งที่มา[ 8 ]

เมื่อวันที่ 12 พฤศจิกายน 2014 ไมโครซอฟต์ได้เปิดตัว . NET Coreซึ่งเป็นรุ่นต่อยอดแบบโอเพนซอร์สและข้ามแพลตฟอร์ม [ 9 ] [ 10 ] ของ . NET Frameworkและได้เผยแพร่ซอร์สโค้ด สำหรับการใช้งาน CoreCLRของ .NET Core ซึ่งเป็นซอร์สโค้ดสำหรับ "สแต็กไลบรารีทั้งหมด [...]" สำหรับ .NET Core [ 11 ]และประกาศการนำรูปแบบการพัฒนาแบบโอเพนซอร์ส ทั่วไป ( แบบ "bazaar" ) มาใช้ ภายใต้การดูแลของมูลนิธิ . NET Miguel de Icazaอธิบาย .NET Core ว่าเป็น "เวอร์ชันที่ออกแบบใหม่ของ .NET ซึ่งอิงตามเวอร์ชันที่เรียบง่ายของไลบรารีคลาส" [ 12 ]และ Immo Landwerth ของไมโครซอฟต์อธิบายว่า .NET Core จะเป็น "รากฐานของแพลตฟอร์ม .NET ในอนาคตทั้งหมด" ในขณะที่มีการประกาศ การเปิดตัวครั้งแรกของโครงการ .NET Core ได้เริ่มต้นด้วยชุดย่อยของซอร์สโค้ดของไลบรารี และตรงกับการเปลี่ยนใบอนุญาตซอร์สโค้ดอ้างอิง .NET ที่มีอยู่ของ Microsoft ให้พ้นจากข้อจำกัดของMs-RSL Landwerth ยอมรับข้อเสียของใบอนุญาตแบบแบ่งปันที่เลือกไว้ก่อนหน้านี้ โดยอธิบายว่าทำให้โค้ดเนม Rotor "ไม่สามารถเริ่มต้นได้" ในฐานะโครงการโอเพนซอร์สที่พัฒนาโดยชุมชน เนื่องจากไม่ตรงตามเกณฑ์ของ ใบอนุญาตที่ได้รับการอนุมัติจาก Open Source Initiative (OSI) [ 13 ] [ 14 ] [ 15 ]

.NET Core 1.0 เปิดตัวเมื่อวันที่ 27 มิถุนายน 2016 [ 16 ]พร้อมกับMicrosoft Visual Studio 2015 Update 3 ซึ่งช่วยให้สามารถพัฒนา .NET Core ได้[ 17 ] .NET Core 1.0.4 และ .NET Core 1.1.1 เปิดตัวพร้อมกับ .NET Core Tools 1.0 และ Visual Studio 2017 เมื่อวันที่ 7 มีนาคม 2017 [ 18 ]

.NET Core 2.0 เปิดตัวเมื่อวันที่ 14 สิงหาคม 2560 พร้อมกับ Visual Studio 2017 15.3, ASP.NET Core 2.0 และEntity Framework Core 2.0 [ 19 ] .NET Core 2.1 เปิดตัวเมื่อวันที่ 30 พฤษภาคม 2561 [ 20 ] .NET Core 2.2 เปิดตัวเมื่อวันที่ 4 ธันวาคม 2561 [ 21 ]

.NET Core 3 เปิดตัวเมื่อวันที่ 23 กันยายน 2019 [ 22 ] NET Core 3 เพิ่มการสนับสนุนสำหรับการพัฒนาแอปพลิเคชันเดสก์ท็อป Windows [ 23 ]และการปรับปรุงประสิทธิภาพที่สำคัญทั่วทั้งไลบรารีพื้นฐาน

ในเดือนพฤศจิกายน พ.ศ. 2563 ไมโครซอฟต์ได้ออก .NET 5.0 [ 24 ]เลิกใช้แบรนด์ "Core" และข้ามเวอร์ชัน 4.0 ไปเพื่อหลีกเลี่ยงความสับสนกับ .NET Framework ซึ่งเวอร์ชันล่าสุดทั้งหมดใช้การกำหนดเวอร์ชัน 4.x สำหรับเวอร์ชันสำคัญทั้งหมด (ที่ไม่ใช่การแก้ไขข้อบกพร่อง) ตั้งแต่ปี พ.ศ. 2553

แนวทางการปฏิบัติเกี่ยวกับการกำหนดเวอร์ชัน

.NET Core Runtime ใช้การกำหนดเวอร์ชันเชิงความหมาย โดยประมาณ ใน รูปแบบ major.minor.patchเวอร์ชันหลักจะเพิ่มขึ้นเมื่อมีการเปลี่ยนแปลงที่สำคัญ การเปลี่ยนแปลงที่ทำให้ API เสียหาย หรือเมื่อมีการเพิ่มเวอร์ชันหลักในส่วนประกอบที่มีอยู่ ควรเกิดขึ้นทุกปี เวอร์ชันรองจะเพิ่มขึ้นเมื่อมีการเพิ่มคุณสมบัติ API ส่วนประกอบ หรือเมื่อมีการเพิ่มเวอร์ชันรองในส่วนประกอบที่มีอยู่ เวอร์ชันแพทช์จะใช้สำหรับการแก้ไขข้อบกพร่อง การสนับสนุนแพลตฟอร์มใหม่ หรือการเปลี่ยนแปลงอื่นๆ ที่ไม่ได้รวมไว้ข้างต้น[ 37 ]ณ ปี 2019 เวอร์ชันรันไทม์สามารถใช้งานร่วมกันได้กับเวอร์ชันก่อนหน้าภายในหมายเลขเวอร์ชันหลักเดียวกัน ตัวอย่างเช่น .NET Core 2.2 สามารถเรียกใช้โปรแกรมที่สร้างขึ้นสำหรับ .NET Core 2.1 ได้ เวอร์ชันรันไทม์อยู่ในเวอร์ชันรองเดียวกัน[ 38 ]ดูเหมือนว่าสิ่งนี้จะผ่อนคลายลงตั้งแต่ .NET 5 พฤติกรรม "roll-forward" อนุญาตให้โปรแกรม .NET ใดๆ ก็ตามสามารถทำงานบนเวอร์ชันที่ใหม่กว่าได้หากมีการตั้งค่าที่ถูกต้อง[ 37 ]

SDK ไม่ได้ใช้การกำหนดเวอร์ชันเชิงความหมาย ณ ปี 2019 รองรับการกำหนดเป้าหมายทุกเวอร์ชันรันไทม์ก่อนเวอร์ชันที่รองรับสูงสุด[ 38 ]ณ ปี 2020 ขยายไปถึงรันไทม์ . NET Frameworkด้วยเช่นกัน แม้ว่าอาจจำเป็นต้อง ดาวน์โหลด "แพ็คการกำหนดเป้าหมาย" เพิ่มเติมจาก NuGet [ 39 ] [ 40 ]เวอร์ชันหลักและเวอร์ชันรองของ SDK จะตรงกับเวอร์ชันหลักและเวอร์ชันรองของรันไทม์ที่บรรจุอยู่หรือที่จัดเรียงไว้เสมอ[ 37 ]

การสนับสนุนระบบปฏิบัติการและสถาปัตยกรรม

Alpine Linuxซึ่งรองรับและใช้งานmusl libc เป็นหลัก [ 41 ]ได้รับการสนับสนุนตั้งแต่ .NET Core 2.1 [ 42 ]

Windows Arm64ได้รับการสนับสนุนโดยตรงตั้งแต่ .NET 5 ก่อนหน้านี้ .NET บน ARM หมายถึงแอปพลิเคชันที่คอมไพล์สำหรับสถาปัตยกรรม x86 และทำงานผ่านเลเยอร์การจำลอง ARM [ 31 ]

Linux .NET ทำงานบน Power ISA ได้ในระดับหนึ่งตั้งแต่ .NET 7 แม้ว่า Microsoft จะไม่ได้อ้างการสนับสนุนอย่างเป็นทางการ แต่ .NET ก็มีโค้ดสำหรับความเข้ากันได้ของ Power ISA สำหรับระบบ Linux และสามารถคอมไพล์สำหรับระบบ Power ISA โดยเฉพาะรุ่นLittle Endian 64 บิตได้ [ 43 ]

การสนับสนุนด้านภาษา

.NET ใช้โครงสร้างพื้นฐานภาษาทั่วไป (CLI) ดังนั้นจึงสามารถใช้ภาษาโปรแกรมได้หลายภาษา

.NET รองรับC#และF# อย่างเต็มที่ (และC++/CLIตั้งแต่เวอร์ชัน 3.1 เป็นต้นไป; เปิดใช้งานเฉพาะบน Windows เท่านั้น) และรองรับVisual Basic .NET (สำหรับเวอร์ชัน 15.5 ใน .NET Core 5.0.100-preview.4 และรองรับเวอร์ชันเก่าบางเวอร์ชันใน .NET Core รุ่นเก่า) [ 44 ]

VB.NET คอมไพล์และรันบน .NET แต่ใน .NET Core 3.1 รันไทม์ Visual Basic แยกต่างหากยังไม่ได้ถูกนำมาใช้งาน ในตอนแรก Microsoft ประกาศว่า .NET Core 3 จะรวมรันไทม์ Visual Basic ไว้ด้วย แต่หลังจากนั้นสองปี ไทม์ไลน์สำหรับการสนับสนุนดังกล่าวก็ถูกอัปเดตเป็น .NET 5 [ 45 ] [ 46 ]

สถาปัตยกรรม

.NET รองรับ สถานการณ์ ข้ามแพลตฟอร์ม ดังต่อไปนี้ : แอปเว็บASP.NET Core , แอปบรรทัดคำสั่ง/คอนโซล, ไลบรารี และแอป Universal Windows Platformก่อน .NET Core 3.0 มันไม่ได้ใช้งานWindows FormsหรือWindows Presentation Foundation (WPF) ซึ่งแสดงผลGUI มาตรฐาน สำหรับซอฟต์แวร์เดสก์ท็อปบน Windows [ 47 ]อย่างไรก็ตาม ตั้งแต่ .NET Core 3 เป็นต้นไป มันเริ่มใช้งานพร้อมกับUniversal Windows Platform (UWP) [ 48 ]นอกจากนี้ยังสามารถเขียนแอปพลิเคชันกราฟิกข้ามแพลตฟอร์มโดยใช้ .NET ด้วยการผูกภาษาGTK# สำหรับชุดเครื่องมือวิดเจ็ต GTK ได้แต่การผูกนี้ไม่ได้มีการดูแลรักษามาหลายปีแล้ว[ 49 ]

.NET รองรับการใช้ แพ็กเกจ NuGetต่างจาก . NET Frameworkซึ่งได้รับการบริการผ่านWindows Update .NET เคยอาศัยตัวจัดการแพ็กเกจในการรับการอัปเดต[ 47 ]อย่างไรก็ตาม ตั้งแต่เดือนธันวาคม 2020 การอัปเดต .NET เริ่มส่งผ่าน Windows Update ด้วยเช่นกัน[ 50 ]

NuGet ทำหน้าที่เป็นกลไกหลักในการแจกจ่ายไลบรารีและเครื่องมือในระบบนิเวศ .NET รวมถึงส่วนประกอบจากผู้พัฒนาภายนอกที่ขยายฟังก์ชันการทำงานหลัก หนึ่งในนั้นคือตัวให้บริการข้อมูล ที่เข้ากันได้กับ ADO.NET ซึ่งให้การเชื่อมต่อฐานข้อมูลสำหรับระบบที่นอกเหนือไปจากการรองรับ SQL Server ตามค่าเริ่มต้น ตัวให้บริการเหล่านี้ช่วยให้สามารถเข้าถึงฐานข้อมูลโดยตรง เช่น Oracle, MySQL, PostgreSQL และอื่นๆ และมักใช้ในแอปพลิเคชันที่ต้องการการเข้าถึงข้อมูลข้ามแพลตฟอร์ม การผสานรวมกับเทคโนโลยี ORM หรือการสนับสนุนคุณสมบัติเฉพาะของฐานข้อมูล

ส่วนประกอบหลักสองส่วนของ .NET คือ CoreCLR และ CoreFX ซึ่งเทียบได้กับCommon Language Runtime (CLR) และFramework Class Library (FCL) ของ การใช้งาน Common Language Infrastructure (CLI) ของ . NET Framework [ 51 ]

CoreCLR เป็นการนำระบบการดำเนินการเสมือน (VES) ของ CLI มาใช้ ซึ่งเป็น รันไทม์และเครื่องเสมือนที่ สมบูรณ์ สำหรับการดำเนินการโปรแกรม CLI แบบจัดการ และมี คอมไพเลอร์แบบ just-in-timeที่เรียกว่า RyuJIT [ 52 ] [ a ] ​​.NET Core ยังมี CoreRT ซึ่งเป็นรันไทม์ . NET Native ที่ได้รับการปรับให้เหมาะสมเพื่อรวมเข้ากับไบนารีเนทีฟที่คอมไพล์ ด้วย AOT [ 54 ]

CoreFX เป็นการนำไลบรารีมาตรฐาน ของ CLI มา ใช้ [ 55 ] โดย ใช้ API ของ .NET Framework บางส่วนร่วมกัน อย่างไรก็ตาม มันยังมี API ของตัวเองที่ไม่ใช่ส่วนหนึ่งของ .NET Framework ด้วย[ 47 ] มีการใช้ ไลบรารี . NET เวอร์ชันหนึ่งสำหรับUWP [ 56 ]

อินเทอร์เฟซบรรทัดคำสั่ง . NET นำเสนอจุดเริ่มต้นการดำเนินการสำหรับระบบปฏิบัติการและให้บริการนักพัฒนา เช่น การคอมไพล์และการจัดการแพ็กเกจ[ 57 ]

แผนภาพ UML ของแพ็กเกจแสดงลำดับชั้นของสตรีมใน .NET

.NET MAUI

.NET Multi-platform App UI ( .NET MAUIซึ่งเปิดตัวพร้อมกับ .NET 6) เป็นเฟรมเวิร์กข้ามแพลตฟอร์มสำหรับการสร้างแอปมือถือและเดสก์ท็อปแบบเนทีฟด้วยC#และExtensible Application Markup Language (XAML) [ 58 ]ซึ่งรองรับAndroid , iOS , macOS , WindowsและTizenด้วย

มาสคอต

dotnet bot มาสคอตประจำชุมชน .NET

มาสคอตชุมชนอย่างเป็นทางการของ .NET คือ .NET Bot (เขียนแบบมีสไตล์ว่า "dotnet bot" หรือ "dotnet-bot") dotnet bot ทำหน้าที่เป็นนักพัฒนาตัวแทนสำหรับการตรวจสอบโค้ดต้นฉบับของ .NET ในช่วงแรกเมื่อมีการเปิดซอร์สโค้ด[ 59 ]และต่อมาได้ถูกนำมาใช้เป็นมาสคอตอย่างเป็นทางการ

หมายเหตุ

  1. ^คำนำหน้า "Ryu" เป็นคำภาษาญี่ปุ่นที่แปลว่า "มังกร" (, ryū ) และเป็นการอ้างอิงถึงหนังสือ Compilers: Principles, Techniques, and Tools (ซึ่งโดยทั่วไปรู้จักกันในชื่อหนังสือมังกร จากการออกแบบปกในยุคแรก) รวมถึงตัวละครจากวิดีโอเกม Street Fighter [ 53 ]

อ่านเพิ่มเติม

  • Arif, Hammad; Qureshi, Habib (2020). การนำ .NET 5 มาใช้: ทำความเข้าใจสถาปัตยกรรมสมัยใหม่ แนวทางปฏิบัติที่ดีที่สุดในการย้ายระบบ และคุณสมบัติใหม่ใน .NET 5.สำนักพิมพ์ Packt. ISBN 978-1800560567.
  • เมทซ์การ์, ดัสติน (2018). .NET Core ในการใช้งานจริง . สำนักพิมพ์แมนนิง. ISBN 978-1617294273.
  • Price, Mark J. (2021). C# 10 และ .NET 6 – การพัฒนาข้ามแพลตฟอร์มสมัยใหม่ . สำนักพิมพ์ Packt. ISBN 978-1801077361.
  • Price, Mark J. (2020). C# 9 และ .NET 5 – การพัฒนาข้ามแพลตฟอร์มสมัยใหม่ . สำนักพิมพ์ Packt. ISBN 978-1800568105.
  • Price, Mark J. (2019). C# 8.0 และ .NET Core 3.0 – การพัฒนาข้ามแพลตฟอร์มสมัยใหม่ . สำนักพิมพ์ Packt. ISBN 978-1788478120.
  • Price, Mark J. (2017). C# 7.1 และ .NET Core 2.0 – การพัฒนาข้ามแพลตฟอร์มสมัยใหม่ . สำนักพิมพ์ Packt. ISBN 978-1788398077.
  • Price, Mark J. (2017). C# 7 และ .NET Core: การพัฒนาข้ามแพลตฟอร์มสมัยใหม่ . สำนักพิมพ์ Packt. ISBN 978-1787129559.
  • Price, Mark J. (2016). C# 6 และ .NET Core 1.0: การพัฒนาข้ามแพลตฟอร์มสมัยใหม่ . สำนักพิมพ์ Packt. ISBN 978-1785285691.
  • Zimarev, Alexey (2019). การออกแบบเชิงโดเมนแบบลงมือปฏิบัติจริงด้วย .NET Core . สำนักพิมพ์ Packt. ISBN 978-1788834094.
  • เว็บไซต์อย่างเป็นทางการแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
  • .NETบนGitHub
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=.NET&oldid=1352325708#Architecture "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ .สุทธิ

แพลตฟอร์ม .NET (ออกเสียงว่า " ดอทเน็ต" เดิมชื่อ . NET Core ) เป็น เฟรมเวิร์กซอฟต์แวร์ คอมพิวเตอร์ แบบ จัดการที่เป็น โอเพนซอร์ส และ ใช้ งานได้ฟรี สำหรับ ระบบปฏิบัติการ Windows ,...

ประวัติศาสตร์

ในช่วงปลายทศวรรษ 1990 ไมโครซอฟต์เริ่มพัฒนา รันไทม์ โค้ดแบบจัดการ และภาษาโปรแกรม ( C# ) ซึ่งเรียกรวมกันว่าเป็นส่วนหนึ่งของ "แพลตฟอร์ม .NET" โดยมีรันไทม์หลักและ ไลบรารีซอฟต์แวร์ ประกอบเป็น. NET Framework

แนวทางการปฏิบัติเกี่ยวกับการกำหนดเวอร์ชัน

.NET Core Runtime ใช้ การกำหนดเวอร์ชันเชิงความหมาย โดยประมาณ ใน รูปแบบ major.minor.

การสนับสนุนระบบปฏิบัติการและสถาปัตยกรรม

Alpine Linux ซึ่งรองรับและใช้งาน musl libc เป็นหลัก [ 41 ] ได้รับการสนับสนุนตั้งแต่ .NET Core 2.1 [ 42 ]