.NET Framework — Вікіпедія

.NET Framework

Стек технологій .NET Framework
Типпрограмна платформа
РозробникиMicrosoft
Стабільний випуск4.8 (18 квітня 2019; 5 років тому (2019-04-18))
ПлатформаWindows
Операційна системадля версії 4.0 — Windows XP, Windows Vista SP2, Windows 7 SP1; для версії 4.5.2 — Windows Vista SP2, Windows 7 SP1, Windows 8, Windows 8.1; для версії 4.6.1 — Windows 7 SP1 і вище.
Ліцензіявласницьке програмне забезпечення з деякими відкритими компонентами
Вебсайтdotnet.microsoft.com/en-us/download/dotnet-framework/net40

.NET Framework (читається дот-нет) — програмна технологія, запропонована фірмою Microsoft як платформа для створення як звичайних програм, так і веб-застосунків. Багато в чому є продовженням ідей та принципів, покладених в технологію Java. Однією з ідей .NET є сумісність служб, написаних різними мовами. Хоча ця можливість рекламується Microsoft як перевага .NET, платформа Java має таку саму можливість.

Однак, важливо зазначити, що .NET Framework є орієнтованим виключно на операційну систему Windows і не підтримує кросплатформенність. Для вирішення цієї проблеми Microsoft розробила .NET Core, який став першим кроком до підтримки кількох операційних систем, включаючи Linux та macOS. У 2020 році ці дві платформи були об'єднані в єдину кросплатформну екосистему — .NET, що дозволяє створювати сучасні застосунки для різних пристроїв і платформ, використовуючи одну і ту ж кодову базу.

.NET Framework поділяється на дві основні частини — середовище виконання (по суті віртуальна машина) та інструментарій розробки.

Як і технологія Java, середовище розробки .NET створює байт-код, призначений для виконання віртуальною машиною. Вхідна мова цієї машини в .NET називається CIL (Common Intermediate Language), також відома як MSIL (Microsoft Intermediate Language), або просто IL. Застосування байт-коду дозволяє отримати крос-платформність на рівні скомпільованого проєкту (в термінах .NET: збірка), а не на рівні початкового тексту, як, наприклад, в C. Перед запуском збірки в середовищі виконання (CLR) байт-код перетворюється вбудованим в середовище JIT-компілятором (just in time, компіляція на льоту) в машинні коди цільового процесора.

Історія

[ред. | ред. код]

Розробка Microsoft технології .NET Framework почалась у 1999 році[1]. Офіційно про розробку нової технології було оголошено 13 січня 2000 року. В цей день керівництвом компанії була озвучена нова стратегія, яка отримала назву Next Generation Windows Services (скор. NGWS, укр. Нове покоління служб Windows). Нова стратегія повинна була об'єднати у єдине вже наявні і майбутні розробки Microsoft для надання можливості користувачам працювати з Всесвітньою павутиною з допомогою бездротових пристроїв, що мають доступ в Інтернет, як зі стаціонарних комп'ютерів[2].

Цілі і завдання

[ред. | ред. код]
Частини платформи .NET

Під час конференції, що проходила в цей день Стів Балмер заявив, що незважаючи на великі можливості домашніх комп'ютерів, корпорація вважає важливим гарантувати забезпечення роботи служб нового покоління і на пристроях, відмінних від ПК. Аналітик компанії Patricia Seybold Group Енн Томас Мейнс, проаналізувавши слова Білла Гейтса, заявила про те, що для компанії буде корисним відійти від орієнтації лише на стаціонарні комп'ютери і перехід до розробки під мобільні пристрої. За її оцінкою Гейтс проголосив курс на перехід до нової ери роботи з комп'ютером, що не буде жорстко прив'язана до платформи Windows[2].

Зважаючи на невелику потужність джерела живлення мобільних пристроїв, зберігання і передача програм повинна здійснюватися серверами, тоді як на той момент практично вся інформація користувача, ПЗ зберігалися на стаціонарних комп'ютерах локально. Тоді ідея переходу до «сервероцентричної» моделі мала міцну підтримку серед керівників найбільших IT-компаній. Так, наприклад, Скотт МакНілл, голова Sun Microsystems оголосив про придбання компанією офісного програмного забезпечення (StarOffice), щоб конкурувати з Microsoft Office, для того, щоб перейти до сервер-клієнтського ПЗ[2].

У Microsoft на той момент було безліч причин переходу до нової стратегії. Компанія домінувала на ринку операційних систем і веб-браузерів, володіла безліччю напрацювань у галузі ПЗ для Інтернету, включаючи портали MSN і WebTV, а також мала частку в компаніях, що займалися наданням ПЗ на прокат через Інтернет[2]. Крім того, як пізніше згадував Андерс Хейлсберг, у корпорації було безліч різних (і часто несумісних між собою) середовищ і технологій програмування, оскільки розробка інструментів для програмістів була мовноорієнтованою, тобто для Visual Basic існував свій набір програм, а для C++ — свій. Тому однією з цілей розробки нової платформи, було об'єднання всіх найвдаліших напрацювань в рамках єдиної платформи та їх уніфікація. Крім того, ставилося завдання слідуванню усіх актуальних тенденцій в області програмування на той момент. Для прикладу, нова платформа повинна була безпосередньо підтримувати об'єктну-орієнтованість, безпеку типів, збір сміття і структурну обробку винятків. Крім того, корпорації необхідно було надати свою відповідь на Java від Sun, що набирала свою популярність[3].

Згідно з озвученими на той момент планам, в них входила розробка нової версії операційної системи, а також нової версії середовища розробки для програмістів, яка була б призначена для розробки веб-орієнтованих додатків. Крім того, перенесений на нову платформу мав бути і Microsoft Office. Пол Моріц, віце-президент Microsoft, як одну з майбутніх служб нової стратегії навів у приклад службу Passport, що являла собою електронний гаманець, що дозволяє користувачам зареєструвавшись одного разу здійснювати онлайн-покупки без необхідності введення на різних сайтах номерів кредитних карт і персональних даних. Тоді ж, на конференції, Балмер навів приклад реалізації нової стратегії, яка дозволить пацієнтам вирішувати безліч їх проблем через Інтернет починаючи читанням їх медичної карти і закінчуючи оплатою рахунків від лікарів[2].

За словами Моріц, основою для нової стратегії компанії стала розробка Windows DNA 2000, представлена у вересні 1999 року. Windows DNA 2000 об'єднала в собі нову версію СУБД SQL Server і нові програмні інструменти для полегшення розробки веб-застосунків[2].

Перехід до відкритішої моделі розробки

[ред. | ред. код]

Революція смартфонів і планшетів внесла корективи у комп'ютерний світ. Платформа Windows перестала домінувати у світі операційних систем, поруч з апаратною архітектурою x86 значну частку ринку зайняли інші рішення. Крос-платформовість та відкритість, які до того свідомо обмежувалася у Microsoft, вийшла на перший план і стала питанням виживання.

Навесні 2014 компанія Microsoft зробила спробу відродити інтерес розробників до платформи .NET шляхом переходу до відкритого процесу розробки деяких компонентів .NET. Для координації розвитку відкритих компонентів .NET у співпраці із створеною Мігелем де Ікаса компанією Xamarin заснована незалежна некомерційна організація .NET Foundation, націлена на організацію спільної розробки та залучення співтовариства в розвиток платформи .NET[4].

Примітно, що одночасно був представлений новий власницький компілятор .NET Native, що відрізняється підтримкою компіляції .NET проєктів на мові C# в подання на мові C++, яке можна скомпілювати у виконуваний файл за допомогою звичайного C++ компілятора. При цьому, у застосунку зберігаються такі засоби як прибирання сміття, підтримка генериків і віддзеркалень, але скомпільовані програми демонструють на 60 % вищу продуктивність і на 15 % менше споживають пам'яті.

Вже у квітні 2014 Мігель де Ікаса представив[5] варіант компілятора Roslyn, адаптований для роботи в Unix і використанні з платформою Mono.

У листопаді 2014 компанія Microsoft оголосила про переведення серверної частини платформи .Net в розряд відкритих проєктів та забезпеченні підтримки Linux і Mac OS X[6]. Відкритими стають не усі частини платформи .Net, а лише три компоненти: .NET Framework Libraries, .NET Core Framework Libraries і RyuJit VM[7]. Компоненти .Net для побудови користувацьких застосунків відкривати не планується. Сирцеві тексти будуть опубліковані на GitHub і будуть розвиватися в рамках відкритого процесу розробки, в якому зможе взяти участь кожен охочий. Початковий код відкритий під ліцензією MIT, документація буде поставлятися під ліцензією Creative Commons Attribution 4.0.

У травні 2015 Microsoft оголосила[8] про публікацію на GitHub початкових текстів набору бібліотек Windows Communication Foundation. Код відкритий під ліцензією MIT. Слід зазначити, що відкритий не повний набір бібліотек WCF для робочого столу, а тільки його підмножина, орієнтована на взаємодію з сервісами для мобільних і серверних систем. Зокрема, відкриті бібліотеки System.ServiceModel.Primitives.Provides, System.ServiceModel.Http, System.ServiceModel.NetTcp, System.ServiceModel.Duplex і System.ServiceModel.Security. Для порівняння, всього в наборі WCF налічується більше 30 компонентів System.ServiceModel.*. Всього під управління .NET Foundation переданий код 24 пов'язаних з .NET проєктів, шість з яких раніше розвивалися компанією Xamarin. Крім раніше відкритих проєктів, таких як ASP.NET MVC, Mimekit і Mailkit, під заступництво нової організації передані початкові коди пакета .NET Compiler Platform («Roslyn»), що включає компілятори для мов C# і Visual Basic, а також набір компонентів для побудови статичних аналізаторів коду. Код Roslyn відкритий під ліцензією Apache.

Координацією проєкту займеться незалежна некомерційна організація .NET Foundation, створена Microsoft у співпраці зі створеною Мігелем де Ікаса компанією Xamarin. Починаючи з наступного випуску планується повністю відкрити весь серверний стек .NET, включаючи ASP.NET, JIT-компілятор, .NET Core Runtime, Common Language Runtime і основні бібліотеки класів. Крім того, всі компоненти серверної платформи .Net будуть портовані для операційних систем Linux і OS X, які будуть готові для промислового застосування і будуть підтримуватися поряд з Windows.

Для спрощення участі в розробці Microsoft надасть нову редакцію середовища розробки Visual Studio Community 2013, яку зможуть безкоштовно використовувати невеликі команди розробників, в яких налічується 5 і менше учасників. На відміну від безкоштовної версії Express нова редакція дозволить використовувати доповнення та надасть комплексний набір засобів для розробки програм для десктопа, веб-застосунків і мобільних програм.

Версії

[ред. | ред. код]

Microsoft почала розробляти. NET Framework наприкінці 1990-х під ім'ям «Next Generation Windows Services» (NGWS). У 2000 році була випущена перша бета-версія. NET 1.0.

Версія Номер версії Дата виходу Visual Studio За замовчуванням у Windows
1.0 1.0.3705.0 1 травня 2002 Visual Studio. NET
1.1 1.1.4322.573 1 квітня 2003 Visual Studio. NET 2003 Windows Server 2003
2.0 2.0.50727.42 11 липня 2005 Visual Studio 2005
3.0 3.0.4506.30 6 листопада 2006 Visual Studio 2005 + розширення Windows Vista, Windows Server 2008
3.5 3.5.21022.8 9 листопада 2007 Visual Studio 2008 Windows 7, Windows Server 2008 R2
4.0 4.0.30319.1 12 квітня 2010 Visual Studio 2010
4.5 4.5.50709.17929 15 серпня 2012 Visual Studio 2012 Windows 8, Windows Server 2012
4.5.1 4.5.50938.18408 17 жовтня 2013 Visual Studio 2013 Windows 8.1, Windows Server 2012 R2
4.5.2 4.5.51209.34209 5 травня 2014
4.6 4.6.1038.0 20 липня 2015 Visual Studio 2015 Windows 10, Windows Server 2016
4.6.1 4.6.23123.0 17 листопада 2015 Visual Studio 2015 Update 1 Windows 10 v1511
4.6.2 4.6.23907.0 2 серпня 2016[9] Windows 10 v1607
4.7 4.7.02046 5 квітня 2017[10] Visual Studio 2017 Windows 10 v1703
4.7.1 17 жовтня 2017[11]
4.7.2 30 квітня 2018[12]
4.8 18 квітня 2019[13] Windows Server 2019

.NET Framework 1.0

[ред. | ред. код]

Перший реліз .NET Framework вийшов 5 січня 2002 року для Windows 98, NT 4.0, 2000 та XP. Загальна підтримка здійснювалась компанією Майкрософт, закінчилася 10 липня 2007 року, а розширена підтримка закінчилася 14 липня 2009 року[14].

.NET Framework 1.1

[ред. | ред. код]

Наступний реліз .NET Framework вийшов 1 квітня 2003 року. Це була перша версія, що автоматично встановлювалась разом з операційною системою (Windows Server 2003). Для старіших операційних систем. NET Framework 1.1 була доступна у вигляді окремого пакету. Загальна підтримка, здійснювана компанією Майкрософт, закінчилася 14 жовтня 2008 року, а розширена підтримка повинна була закінчитися 8 жовтня 2013[14].

.NET Framework 2.0

[ред. | ред. код]

Версія 2.0 була випущена одночасно з Visual Studio 2005, SQL Server 2005 та BizTalk 2006. З виходом версії 2.0 була додана підтримка узагальнених (англ. generic) класів, анонімних методів, повна підтримка 64-бітових платформ x64 та IA-64.

.NET Framework 3.0

[ред. | ред. код]

.NET Framework 3.0, що спочатку називався WinFXпрограмний інтерфейс програмування застосунків, який входить до складу операційної системи Windows Vista і майбутньої Windows Server Longhorn. Старий інтерфейс, Windows API‎, буде як і раніше доступний, але з нього не буде прямого доступу до всієї нової функціональності, що з'явилася в .NET Framework 3.0. Фінальна версія .NET Framework 3.0 була випущена 6 листопада 2006 року.

У основі .NET Framework 3.0 лежать в точності ті ж компілятори та бібліотеки (CLR), що і в .NET Framework 2.0. Цим створюється деяка плутанина, оскільки попередні версії .NET Framework (1.0, 1.1, 2.0) завжди містили свої власні версії компіляторів і CLR.

Крім того, .NET Framework 3.0 включає чотири нові частки:

  • Windows Presentation Foundation (WPF) — система для побудови клієнтських програм з привабливою візуальною можливістю взаємодії з користувачем, тобто графічна підсистема
  • Windows Communication Foundation (WCF) — підсистема для обміну даними між програмами
  • Windows Workflow Foundation (WF) — підсистема візуального програмування
  • Windows CardSpace — технологія для керування ідентифікацією при роботі в інтернет

.NET Framework 3.5

[ред. | ред. код]

Як і версія 3.0, .NET 3.5 використовує CLR версії 2.0. Відсутня офіційна підтримка Windows 2000, проте є не офіційна інструкція по встановленню пакета для цієї версії ОС. Нововведенням в порівнянні з .NET Framework 3.0 включають в себе:

  • C # 3.0 і VB.NET 9.0
  • Додавання мов LINQ і провайдерів LINQ to Objects, LINQ to XML і LINQ to SQL
  • Доданий ASP.NET AJAX
  • Розширено функціональність WF і WCF
  • Додано простір імен System.CodeDom

.NET Framework 4.0

[ред. | ред. код]

Microsoft анонсувала .NET 4.0 29 вересня 2008 року[15]. Перша бета-версія з'явилася 20 травня 2009 року, разом з бета-версією Visual Studio 2010[16]. Нововведення включають в себе:

  • Parallel Extensions — PLINQ (Parallel LINQ) і Task Parallel Library, призначені для спрощення програмування для багатопроцесорних і розподілених систем
  • Нововведення в Visual Basic і C#
  • Технологія Managed Extensibility Framework (MEF)
  • Повна підтримка IronPython, IronRuby та F#
  • Підтримка підмножин .NET Framework і ASP.NET у варіанті «Server Core»
  • Підтримка Code Contracts
  • Засоби моделювання Oslo і мова програмування M, призначений для створення предметно-орієнтованих мов і моделей

.NET Framework 4.5

[ред. | ред. код]

4.5 версія вийшла 15 серпня 2012 року[17] Відсутня офіційна підтримка Windows XP.

  • .NET для Metro додатків

Підмножина в пакеті яка надає можливість для мов C# та VB.NET писати Metro додатки.

  • Зміни в ядрі

Консоль тепер повністю підтримує кодування в Юнікоді UTF-16

  • Асинхронні операції

В 4.5 версії додано нові асинхронні можливості. В основних мовах C# та VB.NET це здійснено через ключові слова await та async.

.NET Framework 4.5.1

[ред. | ред. код]

Оновлена версія фреймворку .Net 4.5.1 була презентована разом із Visual Studio 2013 та вийшла у світ 17 жовтня 2013-го року.

Основні нововведення торкались інструментарію налагоджування та покращення продуктивності застосунків[18]:

  • Налагоджування (debugging):
    • Підтримка Edit & Continue для 64-бітної архітектури.
    • Підтримка обриву та збою зв'язку в ADO.NET.
    • Покращення асинхронного налагоджування.
  • Оптимізація продуктивності застосунків:
    • Механізм стиснення великих об'єктів у пам'яті по запиту[19].
    • Вдосконалення системи побудови програм Just-In-Time для підтримки багатьох платформ.
    • Новий функціонал ASP.NET App Suspend, який дозволяє автоматично вимикати неактивні сайти та завантажувати їх по запиту[20].

.NET Framework 4.5.2

[ред. | ред. код]

.NET Framework 4.6

[ред. | ред. код]

.NET Framework 4.6.1

[ред. | ред. код]

.NET Framework 4.6.2

[ред. | ред. код]

.NET Framework 4.7

[ред. | ред. код]

.NET Framework 4.8

[ред. | ред. код]

Альтернативні версії

[ред. | ред. код]

.NET Compact Framework

[ред. | ред. код]

Окрім повної версії .Net, компанією Microsoft також випускається так званий «.Net Compact Framework». .Net Compact Framework є обрізаною версією повного фреймворка і несумісний з ним на рівні виконання (програми, написані для Compact Framework не можуть виконуватись виконавчим середовищем від повної версії фреймворка, для їх виконання необхідно встановити виконавче середовище саме від Compact Framework). Внутрішньо Compact Framework працює дещо інакше, ніж повний фреймворк, наприклад «збирач сміття» працює значно більш агресивно, не розділяючи об'єкти на покоління. Відмінності здебільшого обумовлені особливостями роботи компактних пристроїв: меншими розрахунковими можливостями, значно вищими вимогами до низьких енергозатрат, обмеженими графічними можливостями.

Mono — багато-платформове вільна відкрита реалізация .NET Framework, що відповідає стандартам ECMA, включаючи серед іншого і компілятор C#, і Common Language Runtime.

Мови програмування в .NET

[ред. | ред. код]

Див. також

[ред. | ред. код]

Джерела

[ред. | ред. код]
  1. Crane, Richard; Resnick, Steve; Bowen, Chris (11 лютого 2008). Essential Windows Communication Foundation (WCF): For .NET Framework 3.5 (англ.). Pearson Education. ISBN 978-0-13-270160-0.
  2. а б в г д е Redmond maps plans for life after the PC [Архівовано 15 березня 2014 у Wayback Machine.] (англ.)
  3. The AZ of Programming Languages: C # [Архівовано 18 лютого 2009 у Wayback Machine.] (англ.)
  4. Microsoft открыл код компилятора Roslyn и пытается привлечь сообщество к участию в развитии .NET [Архівовано 7 квітня 2014 у Wayback Machine.] // opennet.ru 04.04.2014
  5. Roslyn Update [Архівовано 29 квітня 2014 у Wayback Machine.] // tirania.org/blog/
  6. Microsoft takes .NET open source and cross-platform, adds new development capabilities with Visual Studio 2015, .NET 2015 and Visual Studio Online. Архів оригіналу за 6 грудня 2014. Процитовано 14 грудня 2014.
  7. Microsoft откроет серверную часть платформы .Net и портирует её для Linux. Архів оригіналу за 9 грудня 2014. Процитовано 14 грудня 2014.
  8. WCF Client is Open Source. Архів оригіналу за 22 травня 2015. Процитовано 21 травня 2015. Архівована копія. Архів оригіналу за 22 травня 2015. Процитовано 21 травня 2015.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  9. Announcing .NET Framework 4.6.2. .NET Blog. Microsoft. Архів оригіналу за 24 жовтня 2016. Процитовано 20 грудня 2016.
  10. Announcing the .NET Framework 4.7. .NET Blog. Microsoft. Архів оригіналу за 10 липня 2018. Процитовано 19 травня 2017.
  11. Announcing the .NET Framework 4.7.1. .NET Blog (амер.). 17 жовтня 2017. Архів оригіналу за 14 березня 2020. Процитовано 30 жовтня 2019.
  12. Announcing the .NET Framework 4.7.2. .NET Blog (амер.). 30 квітня 2018. Архів оригіналу за 15 грудня 2019. Процитовано 30 жовтня 2019.
  13. Announcing the .NET Framework 4.8. .NET Blog (амер.). 18 квітня 2019. Архів оригіналу за 19 квітня 2019. Процитовано 30 жовтня 2019.
  14. а б Сведения о жизненном цикле различных версий .NET Framework. Архів оригіналу за 6 вересня 2009. Процитовано 21 січня 2012.
  15. CNews: Microsoft анонсировала Visual Studio 2010 и .NET Framework 4.0. Архів оригіналу за 27 липня 2014. Процитовано 2 грудня 2018.
  16. Visual Studio 2010 and .NET FX 4 Beta 1 ships!. Архів оригіналу за 27 травня 2009. Процитовано 21 січня 2012.
  17. What's Announcing the release of .NET Framework 4.5 RTM — Product and Source Code [Архівовано 17 серпня 2012 у Wayback Machine.] (англ.)
  18. What's New in .NET Framework 4.5.1. www.dotnetcurry.com. Архів оригіналу за 21 березня 2016. Процитовано 3 квітня 2016.
  19. GCSettings.LargeObjectHeapCompactionMode Property (System.Runtime). msdn.microsoft.com. Архів оригіналу за 5 квітня 2016. Процитовано 3 квітня 2016.
  20. ASP.NET App Suspend – responsive shared .NET web hosting. blogs.msdn.microsoft.com. Архів оригіналу за 26 травня 2016. Процитовано 3 квітня 2016.