.NET Core
![]() | |
Тип | Програмна платформа |
---|---|
Розробник | .NET Foundation і open-source ком'юніті |
Перший випуск | 27 червня 2016; 8 років тому (2016-06-27) |
Стабільний випуск | 3.1 (19 березня 2019; 5 років тому (2019-03-19)) |
Операційна система | Багатоплатформність |
Мова програмування | C++, C#, F# |
Ліцензія | MIT[1] |
Вебсайт | dotnet.microsoft.com |
.NET Core (вимовляється як «дот нет кор»;) — це безкоштовне кероване програмне забезпечення з відкритим кодом для операційних систем Windows, Linux і macOS.[2] Це кросплатформна[3] заміна.NET Framework.[4] Проєкт в основному розроблено співробітниками Microsoft за допомогою .NET Foundation і випущено за ліцензією MIT.
.NET Core містить у собі CoreFX, яка становить собою часткове відгалуження FCL (стандартна бібліотека класів .NET фреймворку) Реалізації усіх класів також відкриті та доступні на GitHub[5]. У той час як .NET Core розділяє підмножину API .NET Framework, він містить також власний API, який не є частиною .NET Framework. Крім того .NET Core містить CoreRT, оптимізований під інтеграцію в АОТ(компіляція перед виконанням) бінарні файли. Варіант бібліотеки .NET Core використовується для UWP (універсальна платформа Windows). UWP платформа створена Microsoft і вперше представлена в Windows 10. Метою даної платформи є допомога у створенні універсальних додатків Windows, що запускаються як на Windows 10, так і на Windows 10 Mobile без зміни в коді. Інтерфейс командного рядка .NET Core пропонує точку входу для операційних систем і надає послуги для розробників, такі як компіляція і пакети управління.
.NET Core підтримує чотири крос-платформних сценарії: ASP.NET Core веб-аплікації, консольні додатки, бібліотеки і UWP (універсальна платформа Windows) додатки. Він не реалізує Windows Forms або WPF, які створюють стандартний графічний інтерфейс для настільних ПК на Windows. .NET Core модульна платформа, а це означає, що замість збірок, розробники працюють з пакетами NuGet.
На відміну від .NET Framework, який обслуговується за допомогою служби Windows Update, .NET Core залежить від його менеджера пакетів при отриманні оновлень.
Історія
12 листопада 2014 року Microsoft оголосила про створення .NET Core, намагаючись включити кросплатформну підтримку для .NET, у тому числі в Linux і macOS, джерело. Мігель де Ікаса описує .NET Core як «перероблена версія .NET, яка базується на спрощеній версії бібліотек класів»[6], і Іммо Ландверт з Microsoft пояснив, що .NET Core буде «основою всього майбутнього. NET-платформи».
На момент оголошення початковий випуск проєкту .NET Core був заповнений підмножиною вихідного коду бібліотек і збігався з переліцензуванням існуючого довідкового джерела .NET від Microsoft без обмежень Ms-RSL. Ландверт визнав недоліки раніше обраної спільної ліцензії, пояснивши, що це зробило кодову назву Rotor «непочатковим» як проєкт із відкритим кодом, розроблений спільнотою, оскільки він не відповідав критеріям схваленої ліцензії Open Source Initiative (OSI).[7][8][9]
.NET Core 1.0 став доступним 27 червня 2016 року,[10] разом з Microsoft Visual Studio 2015 Update 3, який містив розробку за допомогою .NET Core.[11] .NET Core 1.0.4 і .NET Core 1.1.1 були випущені разом з .NET Core Tools 1.0 і Visual Studio 2017 7 березня 2017.[12]
.NET Core 2.0 було випущено 14 серпня 2017 року разом із Visual Studio 2017 15.3, ASP.NET Core 2.0 і Entity Framework Core 2.0.[13] .NET Core 2.1 було випущено 30 травня 2018 року.[14] .NET Core 2.2 було випущено 4 грудня 2018 року.[15]
.NET Core 3 було випущено 23 вересня 2019 року.[16] .NET Core 3 додає підтримку розробки додатків для настільних комп'ютерів Windows[17] і суттєві покращення продуктивності базової бібліотеки.
Version | Release date | Released with | Latest update | Latest update date | Support ends[18] |
---|---|---|---|---|---|
Old version, no longer supported: .NET Core 1.0 | 02016-06-2727 червня 2016[19] | Visual Studio 2015 Update 3 | 1.0.16 | 02019-05-1414 травня 2019 | 02019-06-2727 червня 2019 |
Old version, no longer supported: .NET Core 1.1 | 02016-11-1616 листопада 2016[20] | Visual Studio 2017 Version 15.0 | 1.1.13 | 02019-05-1414 травня 2019 | 02019-06-2727 червня 2019 |
Old version, no longer supported: .NET Core 2.0 | 02017-08-1414 серпня 2017[21] | Visual Studio 2017 Version 15.3 | 2.0.9 | 02018-07-1010 липня 2018 | 02018-10-011 жовтня 2018 |
Old version, no longer supported: .NET Core 2.1 | 02018-05-3030 травня 2018[22] | Visual Studio 2017 Version 15.7 | 2.1.39 (LTS) | 02023-07-1111 липня 2023 | 02021-08-2121 серпня 2021 |
Old version, no longer supported: .NET Core 2.2 | 02018-12-044 грудня 2018[23] | Visual Studio 2019 Version 16.0 | 2.2.8 | 02019-11-1919 листопада 2019 | 02019-12-2323 грудня 2019 |
Old version, no longer supported: .NET Core 3.0 | 02019-09-2323 вересня 2019[24] | Visual Studio 2019 Version 16.3 | 3.0.3 | 02020-02-1818 лютого 2020 | 02020-03-033 березня 2020 |
Old version, no longer supported: .NET Core 3.1 | 02019-12-033 грудня 2019[25] | Visual Studio 2019 Version 16.4 | 3.1.32 (LTS) | 02022-12-1313 грудня 2022 | 02022-12-1313 грудня 2022 |
Легенда: Стара версія Стара версія, все ще підтримується Остання версія Остання бета-версія Майбутній реліз |
Alpine Linux, який переважно підтримує та використовує musl libc,[26] підтримується з версії .NET Core 2.1.[27]
У листопаді 2020 року Microsoft випустила .NET 5.0.[28] Брендування «Core» було видалено, а версію 4.0 було пропущено, щоб уникнути змішування з . NET Framework, який залишається продуктом для Windows.
Підтримка мови
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/71/Overview_of_the_Common_Language_Infrastructure_2015.svg/280px-Overview_of_the_Common_Language_Infrastructure_2015.svg.png)
.NET повністю підтримує C# і F# (і C++/CLI від 3.1; підтримується лише в Windows) і підтримує Visual Basic. NET (для версії 15.5 у .NET Core 5.0.100-preview.4 і деякі старі версії, які підтримуються в старших версіях .NET Core).[29]
VB.NET компілюється та працює на .NET, але станом на .NET Core 3.1, окреме середовище виконання Visual Basic не реалізовано. Microsoft спочатку оголосила, що .NET Core 3 включатиме Visual Basic Runtime, але через два роки графік такої підтримки було оновлено до .NET 5.[30][31]
Архітектура
.NET підтримує наступні кросплатформні сценарії: вебпрограми на ASP.NET Core, CLI програми, бібліотеки та програми універсальної платформи Windows. До .NET Core 3.0, не було підтримки Windows Forms або Windows Presentation Foundation (WPF), які відображають стандартний графічний інтерфейс для настільного програмного забезпечення в Windows.[32] Однак, починаючи з версії .NET Core 3, він почав впроваджувати їх разом з універсальною платформою Windows (UWP).[33] Також можна писати кросплатформні графічні програми за допомогою .NET використовуючи набір інструментів GTK.
.NET підтримує використання пакетів NuGet. На відміну від .NET Framework, яка обслуговується за допомогою Windows Update, .NET покладається на свій менеджер пакетів для отримання оновлень[32]. Однак із грудня 2020 року, оновлення .NET також почали надходити через Windows Update.[34]
Два основних компоненти .NET — це CoreCLR і CoreFX, які можна порівняти з Common Language Runtime (CLR) і Framework Class Library (FCL) - реалізації спільної мовної інфраструктури (CLI) NET Framework.[35]
Бувши реалізацією віртуальної системи виконання CLI (VES), CoreCLR є повним середовищем виконання та віртуальною машиною для керованого виконання програм CLI та включає оперативний компілятор під назвою RyuJIT.[36][a] .NET Core також містить CoreRT, .NET Native середовищу виконання, оптимізоване для інтеграції в скомпільовані двійкові файли AOT.[38]
Інтерфейс командного рядка .NET пропонує точку входу для старту операційних систем і надає такі можливості для розробника, як компіляція та керування пакетами.[39]
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/UML_dotnet_streams.svg/220px-UML_dotnet_streams.svg.png)
Талісман
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Dotnet-bot.svg/150px-Dotnet-bot.svg.png)
Талісман спільноти .NET — це .NET бот (може писатися як «dotnet-bot» або «dotnet bot»). dotnet bot був як інструмент для перевірки коду, котрий пушиться в .NET, коли той став відкритим кодом.[40] Відтоді він використовується як офіційний талісман.
Подальше читання
- Arif, Hammad; Qureshi, Habib (2020). Adopting .NET 5: Understand modern architectures, migration best practices, and the new features in .NET 5. Packt Publishing. ISBN 978-1800560567.
- Metzgar, Dustin (2018). .NET Core in Action. Manning Publications. ISBN 978-1617294273.
- Price, Mark J. (2021). C# 10 and .NET 6 – Modern Cross-Platform Development. Packt Publishing. ISBN 978-1801077361.
- Price, Mark J. (2020). C# 9 and .NET 5 – Modern Cross-Platform Development. Packt Publishing. ISBN 978-1800568105.
- Price, Mark J. (2019). C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development. Packt Publishing. ISBN 978-1788478120.
- Price, Mark J. (2017). C# 7.1 and .NET Core 2.0 – Modern Cross-Platform Development. Packt Publishing. ISBN 978-1788398077.
- Price, Mark J. (2017). C# 7 and .NET Core: Modern Cross-Platform Development. Packt Publishing. ISBN 978-1787129559.
- Price, Mark J. (2016). C# 6 and .NET Core 1.0: Modern Cross-Platform Development. Packt Publishing. ISBN 978-1785285691.
- Zimarev, Alexey (2019). Hands-On Domain-Driven Design with .NET Core. Packt Publishing. ISBN 978-1788834094.
Див. також
Коментарі
- ↑ Префікс «Рю» — це японське слово, що означає «дракон» (竜, ryū), і є посиланням на книгу «Упорядники: принципи, методи та інструменти» (широко відому як «Книга дракона», з раннього дизайну обкладинки), як а також персонажу з відеогри Street Fighter.[37]
Джерела
- ↑ core/LICENSE.TXT. GitHub. Процитовано 4 червня 2018.
- ↑ Download .NET Core. microsoft.com. Microsoft. Процитовано 31 жовтня 2017.
- ↑ .NET Core is the Future of .NET. 6 травня 2019.
- ↑ .NET Framework is dead – long live .NET 5. 7 травня 2019.
- ↑ dotnet/corefx, .NET Platform, 8 вересня 2024, процитовано 8 вересня 2024
- ↑ de Icaza, Miguel. Microsoft Open Sources .NET and Mono. Personal blog of Miguel de Icaza. Процитовано 16 листопада 2014.
- ↑ Landwerth, Immo (12 листопада 2014). .NET Core is Open Source. .NET Framework Blog. Microsoft. Процитовано 30 грудня 2014.
- ↑ dotnet/corefx. GitHub. Процитовано 16 листопада 2014.
- ↑ Microsoft/referencesource. GitHub. Процитовано 16 листопада 2014.
- ↑ Bright, Peter (27 червня 2016). .NET Core 1.0 released, now officially supported by Red Hat. Ars Technica. Condé Nast.
- ↑ Foley, Mary Jo (27 червня 2016). Microsoft showcases SQL Server, .NET Core on Red Hat Enterprise Linux deliverables. ZDNet. CBS Interactive.
- ↑ Announcing .NET Core Tools 1.0 | .NET Blog. Blogs.msdn.microsoft.com. 7 березня 2017. Процитовано 18 січня 2020.
- ↑ Announcing .NET Core 2.0. .NET Blog. Microsoft. 14 серпня 2017.
- ↑ Announcing .NET Core 2.1. .NET Blog. Microsoft. 30 травня 2018.
- ↑ Announcing .NET Core 2.2. .NET Blog. Microsoft. 4 грудня 2018.
- ↑ .NET Core is the Future of .NET. .NET Blog (амер.). 6 травня 2019. Процитовано 17 травня 2019.
- ↑ What's new in .NET Core 3.0. .NET documentation (амер.). Процитовано 30 грудня 2020.
- ↑ .NET Core official support policy. .NET. Microsoft.
- ↑ Announcing .NET Core 1.0. .NET Blog. Microsoft. 27 червня 2016.
- ↑ Announcing .NET Core 1.1. .NET Blog. Microsoft. 16 листопада 2016.
- ↑ Announcing .NET Core 2.0. .NET Blog. Microsoft. 14 серпня 2017.
- ↑ Announcing .NET Core 2.1. .NET Blog. Microsoft. 30 травня 2018.
- ↑ Announcing .NET Core 2.2. .NET Blog. Microsoft. 4 грудня 2018.
- ↑ Announcing .NET Core 3.0. .NET Blog. Microsoft. 23 вересня 2019.
- ↑ Announcing .NET Core 3.1. .NET Blog. Microsoft. 3 грудня 2019.
- ↑ Alpine 3.10.0 released | Alpine Linux. alpinelinux.org. Процитовано 9 червня 2020.
- ↑ dotnet/core. GitHub (англ.). Процитовано 9 червня 2020.
- ↑ Announcing .NET 5.0. .NET Blog (амер.). 10 листопада 2020. Процитовано 21 листопада 2020.
- ↑ .NET framework supports different programming languages. Процитовано 21 квітня 2022.
- ↑ Visual Basic in .NET Core 3.0 | Visual Basic Blog. Blogs.msdn.microsoft.com. 12 жовтня 2019. Процитовано 18 січня 2020.
- ↑ Visual Basic support planned for .NET 5.0 | Visual Basic Blog. Blogs.msdn.microsoft.com. 11 березня 2020. Процитовано 26 серпня 2020.
- ↑ а б Carter, Phillip; Knezevic, Zlatko (April 2016). .NET Core – .NET Goes Cross-Platform with .NET Core. MSDN Magazine. Microsoft.
- ↑ Lander, Rich (7 травня 2018). .NET Core 3 and Support for Windows Desktop Applications. MSDN. Microsoft.
- ↑ .NET Core 2.1, 3.1, and .NET 5.0 updates are coming to Microsoft Update. .NET Blog (амер.). 3 грудня 2020. Процитовано 15 грудня 2020.
- ↑ Understanding .NET Framework, .NET Core, .NET Standard And Future .NET. www.c-sharpcorner.com (англ.). Процитовано 1 лютого 2021.
- ↑ Landwerth, Immo (3 лютого 2015). CoreCLR is now Open Source. .NET Framework Blog. Microsoft. Процитовано 27 лютого 2015.
- ↑ Why RyuJIT? How was the name chosen?. nuWave eSolutions Development Team Blog. 25 листопада 2014. Процитовано 21 червня 2016.
- ↑ Ramel, David (31 серпня 2020). Microsoft Survey: Developers Held Back by Lack of 'Native AOT' in .NET Core -. Visual Studio Magazine (амер.). Архів оригіналу за 22 жовтня 2020. Процитовано 1 лютого 2021.
- ↑ Intro to CLI. GitHub. 23 квітня 2016.
- ↑ Wang, Abel (9 вересня 2020). What is the dotnet bot? (Podcast). Microsoft. Подія сталася на 4 seconds in. Процитовано 9 березня 2021.