.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 році. Офіційно про розробку нової технології було оголошено 13 січня 2000 року. В цей день керівництвом компанії була озвучена нова стратегія, яка отримала назву Next Generation Windows Services (скор. NGWS, ). Нова стратегія повинна була об'єднати у єдине вже наявні і майбутні розробки Microsoft для надання можливості користувачам працювати з Всесвітньою павутиною з допомогою бездротових пристроїв, що мають доступ в Інтернет, як зі стаціонарних комп'ютерів Redmond maps plans for life after the PC .

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

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

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

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

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

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

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

Навесні 2014 компанія Microsoft зробила спробу відродити інтерес розробників до платформи .NET шляхом переходу до відкритого процесу розробки деяких компонентів .NET. Для координації розвитку відкритих компонентів .NET у співпраці із створеною Мігелем де Ікаса компанією Xamarin заснована незалежна некомерційна організація .NET Foundation, націлена на організацію спільної розробки та залучення співтовариства в розвиток платформи .NETMicrosoft открыл код компилятора Roslyn и пытается привлечь сообщество к участию в развитии .NET // opennet.ru 04.04.2014.

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

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

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

У травні 2015 Microsoft оголосила про публікацію на 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За замовчуванням у Windows1.01.0.3705.01 травня 2002Visual Studio. NET1.11.1.4322.5731 квітня 2003Visual Studio. NET 2003Windows Server 20032.02.0.50727.4211 липня 2005Visual Studio 20053.03.0.4506.306 листопада 2006Visual Studio 2005 + розширенняWindows Vista, Windows Server 20083.53.5.21022.89 листопада 2007Visual Studio 2008Windows 7, Windows Server 2008 R24.04.0.30319.112 квітня 2010Visual Studio 20104.54.5.50709.1792915 серпня 2012Visual Studio 2012Windows 8, Windows Server 20124.5.14.5.50938.1840817 жовтня 2013Visual Studio 2013Windows 8.1, Windows Server 2012 R24.5.24.5.51209.342095 травня 20144.64.6.1038.020 липня 2015Visual Studio 2015Windows 10, Windows Server 20164.6.14.6.23123.017 листопада 2015Visual Studio 2015 Update 1Windows 10 v15114.6.24.6.23907.02 серпня 2016Windows 10 v16074.74.7.020465 квітня 2017Visual Studio 2017Windows 10 v17034.7.117 жовтня 20174.7.230 квітня 20184.818 квітня 2019Windows Server 2019

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

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

.NET Framework 2.0