Русская Википедия:.NET Framework: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 1: Строка 1:
{{Русская Википедия/Панель перехода}}
{{Русская Википедия/Панель перехода}}
{{другие значения термина|Net|Net}}
{{другие значения термина|Net|Net}}
Строка 593: Строка 592:
[[Категория:Программное обеспечение, разработанное в 2002 году]]
[[Категория:Программное обеспечение, разработанное в 2002 году]]
[[Категория:.NET|*]]
[[Категория:.NET|*]]
{{#set:
Текст статьи={{другие значения термина|Net|Net}}
{{карточка программы
| name = .NET Framework
| logo = Microsoft .NET logo.svg
| screenshot = DotNet.svg
| caption = Компоненты .NET Framework до версии 4.5 включительно
| developer = [[Microsoft]]
| latest_release_version = 4.8.1<ref>[https://devblogs.microsoft.com/dotnet/announcing-dotnet-framework-481/ Announcing .NET Framework 4.8.1 | .NET blog] {{Wayback|url=https://web.archive.org/web/20220810140115/https://devblogs.microsoft.com/dotnet/announcing-dotnet-framework-481/ |date=20220810140115 }}{{ref-en}}</ref>
| latest_release_date = [[9 августа]] [[2022 год]]а
| operating_system = [[Windows]]
| genre = [[Фреймворк]]
| состояние =
| license = [[Лицензия MIT|MIT]]<ref>[http://www.opennet.ru/opennews/art.shtml?num=41045 Компания Microsoft анонсировала открытие платформы .Net и её портирование для Linux] {{Wayback|url=http://www.opennet.ru/opennews/art.shtml?num=41045 |date=20141209034834 }}{{ref-ru}}</ref>
| website = {{url|https://dotnet.microsoft.com/}}
}}
'''.NET Framework''' — программная платформа, выпущенная компанией [[Microsoft]] в [[2002 год]]у. Основой платформы является общеязыковая среда исполнения [[Common Language Runtime|Common Language Runtime (CLR)]], которая подходит для различных языков программирования. Функциональные возможности CLR доступны в любых языках программирования, использующих эту среду. В настоящее время .NET Framework развивается в виде [[.NET]].
Считается, что платформа .NET Framework является ответом компании [[Microsoft]] на набравшую к тому времени большую популярность платформу [[Java (программная платформа)|Java]] компании [[Sun Microsystems]] (ныне принадлежит [[Oracle]]).
Хотя .NET Framework является патентованной технологией корпорации Microsoft и официально рассчитана на работу под операционными системами семейства [[Windows]], существуют независимые проекты (прежде всего это [[Mono]] и [[Portable.NET]]), позволяющие запускать программы .NET Framework на некоторых других операционных системах.
== Разработка ==
Разработка платформы началась в 1999 году<ref>{{книга
|автор        = Стив Резник, Ричард Крейн, Крис Боуэн.
|часть        = Вступление
|заглавие      = Основы Windows Communication Foundation для .NET Framework 3.5
|оригинал      = Windows Communication Foundation for .NET Framework 3.5
|ссылка        = https://archive.org/details/windowscommunica00libg
|url-access        = registration
|издание      =
|ответственный = Пер. с англ. Слинкина А. А.
|место        = М.
|издательство  = ДМК Пресс
|год          = 2008
|том          =
|страницы      = [https://archive.org/details/windowscommunica00libg/page/n5 16]
|страниц      = 480
|isbn          = 978-5-94074-465-8
}}</ref>.
Официально о разработке новой технологии было объявлено 13 января 2000 года, в день, когда [[Билл Гейтс]] официально объявил о передаче поста главы Microsoft [[Стив Балмер|Стиву Балмеру]]. В этот день руководство корпорации объявило о новой стратегии компании, получившей название Next Generation Windows Services (NGWS, «новое поколение служб Windows»). Новая стратегия должна была объединить в единый набор существующие и будущие разработки Microsoft для предоставления возможности пользователям работать со [[Всемирная паутина|Всемирной паутиной]] с беспроводных устройств, обладающих доступом в [[Интернет]], как со стационарных компьютеров<ref name="RedmondMaps">[http://news.cnet.com/2100-1001-235651.html Redmond maps plans for life after the PC] {{Wayback|url=http://news.cnet.com/2100-1001-235651.html |date=20140315054316 }}{{ref-en}}</ref>.
=== Цели и задачи ===
Во время проходившей в тот день пресс-конференции Балмер заявил, что, несмотря на огромные возможности домашних компьютеров, корпорация считает важным обеспечение гарантированной работы служб нового поколения и на устройствах, отличных от ПК. Что касается Гейтса, то аналитик компании Patricia Seybold Group Энн Томас Мейнс, проанализировав его слова, заявила о том, что компании будет полезен отход от ориентации исключительно на стационарные компьютеры и переход к разработке под мобильные устройства. По её оценке, Гейтс провозгласил курс на переход к новой эре работы с компьютером, которая не будет жёстко привязана к Windows<ref name="RedmondMaps"/>.
Ввиду небольшой мощности источников питания мобильных устройств хранение и передача приложений должна осуществляться серверами, тогда как на тот момент практически вся пользовательская информация и ПО хранились на стационарных компьютерах локально. Тогда идея перехода к «сервероцентрической» модели имела крепкую поддержку среди руководителей крупнейших IT-компаний. Так, например, Скотт МакНили, глава [[Sun Microsystems]], объявил о приобретении компании [[StarOffice|офисного ПО]], конкурировавшего с [[Microsoft Office]], для перехода к сервер-клиентскому ПО<ref name="RedmondMaps"/>.
У Microsoft на тот момент было множество причин перехода к новой стратегии. Компания доминировала на рынке операционных систем и веб-[[браузер]]ов, обладала множеством наработок в области ПО для Интернета, включая порталы MSN и WebTV, а также имела долю в компаниях, занимавшихся предоставлением ПО в прокат через Интернет<ref name="RedmondMaps"/>. Кроме того, как позднее вспоминал [[Андерс Хейлсберг]], у корпорации имелось множество различных (и зачастую несовместимых между собой) сред и технологий программирования, поскольку разработка инструментов для программистов была языкоориентированной, то есть для [[Visual Basic]] существовал свой набор приложений, а для [[C++]] — свой. Поэтому одной из целей разработки новой платформы было объединение всех наиболее удачных наработок в рамках единой платформы и их унификация. Кроме того, ставилась задача следования всем актуальным тенденциям в области программирования на тот момент. Так, например, новая платформа должна была напрямую поддерживать объектно-ориентированность, безопасность типов, сборку мусора и структурную обработку исключений. Кроме того, корпорации необходимо было предоставить свой ответ набиравшей популярность платформе [[Java]] от [[Sun Microsystems]]<ref>[http://www.computerworld.com.au/article/261958/-z_programming_languages_c The A-Z of Programming Languages: C#] {{Wayback|url=http://www.computerworld.com.au/article/261958/-z_programming_languages_c |date=20090218231908 }}{{ref-en}}</ref>.
Согласно опубликованным на тот момент планам, в них входила разработка новой версии операционной системы, а также новой версии среды разработки для программистов, которая была бы предназначена для разработки веб-ориентированных приложений. Кроме того, переведён на новую платформу должен был быть и Microsoft Office. Пол Моритц, вице-президент Microsoft, в качестве одной из будущих служб новой стратегии привёл в пример службу Passport, представлявшую собой электронный бумажник, позволяющий пользователям, зарегистрировавшись однажды, совершать онлайн-покупки без необходимости ввода на различных сайтах номеров кредитных карт и персональных данных. Тогда же, на конференции, Балмер привёл пример реализации новой стратегии, которая позволит пациентам решать множество их проблем через Интернет, начиная с чтения своей медицинской карты и заканчивая оплатой счетов от врачей за медицинские услуги<ref name="RedmondMaps"/>.
По словам Моритца, основой для новой стратегии компании послужила разработка [[Windows DNA|Windows DNA 2000]], представленная в сентябре 1999 года. Windows DNA 2000 объединила в себе новую версию СУБД SQL Server и новые программные инструменты для облегчения разработки веб-приложений<ref name="RedmondMaps"/>.
=== Концепция ===
В феврале 2000 года Стив Балмер, выступая на конференции VBITS 2000 в [[Сан-Франциско]], рассказал о новой версии [[Visual Basic]] и [[Visual C++]], являвшихся до той поры краеугольными камнями [[Visual Studio]]. Поскольку график выхода версий Visual Studio к тому моменту был заметно нарушен (Visual Studio 6.0 вышла в сентябре 1998 года, а до этого выпуски входящих в её состав инструментов происходили ежегодно), то информация о нововведениях вызывала изрядный интерес<ref name="EarlyLookAtNGWS">[http://www.windowsitpro.com/article/windows-2000/an-early-look-at-microsoft-s-next-generation-windows-services An Early Look at Microsoft’s Next Generation Windows Services] {{Wayback|url=http://www.windowsitpro.com/article/windows-2000/an-early-look-at-microsoft-s-next-generation-windows-services |date=20111017074939 }}{{ref-en}}</ref>{{битая ссылка|число=02|месяц=12|год=2017}}.
Тогда же Балмер и представил концепцию стратегии NGWS (рабочее название которой Балмер счёл весьма ужасным и пообещал сменить его к моменту выпуска) в виде некоей программной платформы, которая позволит пользователям Windows получать доступ к множеству веб-служб. Для этого Microsoft рассчитывала значительно изменить Windows-платформу. Первым шагом к новой версии платформы стала [[Windows 2000]], которую Балмер назвал основой «пользовательского знакомства с Интернетом». Windows 2000 являлась одной из частей технологии Windows Distributed interNet Applications (DNA) 2000, в рамках которой была представлена последняя на тот момент схема трёхуровневой модели программирования, впервые представленная на [[Windows NT 4.0]]<ref name="EarlyLookAtNGWS"/>.
На тот момент данная схема состояла из клиентской части (Windows- или веб-приложение), среднего уровня, базировавшегося на компонентах [[COM+]], и базы данных (как правило, [[Microsoft SQL Server|SQL Server]]). NGWS должна была сменить путь разработки Windows DNA на исключительное использование [[XML]] как стандарта обмена данными. XML был выбран потому, что являлся развитием языка разметки [[HTML]], ставшего основным языком разметки во Всемирной паутине, а кроме того, он предоставлял удобный способ описания данных. В модели NGWS каждая часть трёхзвенной структуры (клиентское приложение, промежуточный слой и база данных) должна была взаимодействовать с остальными при помощи XML-пакетов. Для упрощения разработки кода с использованием XML предполагалось, что новая версия Visual Studio будет генерировать XML-код, освобождая разработчиков от необходимости ручного написания XML-кода<ref name="EarlyLookAtNGWS"/>.
Так, например, планировалось, что разработчики смогут писать веб-сайт для электронной коммерции целиком на новой версии Visual Basic, а благодаря тому, что обмен информацией будет происходить при помощи XML, разработчики смогут создавать клиентские приложения, функционирующие на [[Linux]], [[Solaris]] и [[Mac OS]]. То есть для того, чтобы приложение или операционная система могли взаимодействовать друг с другом, нужна была лишь поддержка стандарта с их стороны<ref name="EarlyLookAtNGWS"/>.
Для демонстрации своего замысла Microsoft запустила веб-сайт [https://web.archive.org/web/20000304201714/http://www.passport.com/ Passport], зайдя на который, пользователь мог бесплатно завести себе электронный кошелёк (eWallet), упрощавший процесс совершения покупок в интернет-магазинах<ref name="EarlyLookAtNGWS"/>.
=== Смена названия ===
22 июня 2000 года на проходившем в [[Редмонд (Вашингтон)|Редмонде]] Forum 2000 Билл Гейтс заявил о переименовании платформы в Microsoft.Net, объявив при этом, что «стратегия корпорации целиком и полностью будет определяться платформой .Net», а все продукты Microsoft со временем будут переписаны для поддержки этой платформы. Также, по его словам, в течение ближайших двух лет Microsoft планировала выпуск новой версии своей ОС (которую изначально назвали Windows.Net, позже её реализовали как [[Microsoft Singularity]]) и комплекта средств разработки, который должен был называться Visual Studio.Net. Помимо этого, изменения должны были затронуть и серверные приложения — Microsoft SQL Server, Exchange, BizTalk, а офисный пакет Microsoft Office должен был быть преобразован в Office.Net<ref>{{Cite web |url=http://www.osp.ru/cw/2000/25/5618/ |title=Windows разделят на услуги |lang=ru|access-date=2011-08-17 |archive-date=2014-04-26 |archive-url=https://web.archive.org/web/20140426212120/http://www.osp.ru/cw/2000/25/5618/ |deadlink=no }}</ref>.
К выступлению Гейтса на июньском Forum 2000 было приурочено и опубликование документа под названием Microsoft .NET: Realizing the Next Generation Internet ({{lang-en|Microsoft .NET: Создавая Интернет следующего поколения}}) на официальном сайте Microsoft. В нём приводился общий обзор новой платформы, а само появление новой платформы описывалось как некая «революция». В этом документе впервые было приведено описание (хотя и краткое) технической реализации платформы. Так, разработчикам предлагалось вместо ручного набора большой массы кода собирать свои приложения из готовых блоков, что должно было ускорить разработку ПО. К таким «строительным блокам» относились, в частности, следующие модули:
* Identity («Личность») — технология, объединяющая Windows-аутентификацию и Microsoft Passport, созданная для обеспечения различных уровней безопасности, начиная от паролей и электронных кошельков и заканчивая смарт-картами и устройствами биометрической идентификации<ref>[https://web.archive.org/web/20000815055022/http://www.microsoft.com/net/whitepaper.asp Microsoft .NET: Realizing the Next Generation Internet]{{ref-en}}</ref>.
=== Презентация предварительной версии .NET ===
11 июля 2000 года на [[Professional Developers Conference|PDC]] во [[Флорида|Флориде]] состоялась презентация предварительной версии .NET Framework, которая была представлена как «часть .NET Platform»<ref>[https://web.archive.org/web/20000815094324/http://www.microsoft.com/presspass/features/2000/jul00/07-11.NETframework.asp Microsoft .NET Framework Unites Programming Languages For Web-Based Future]{{ref-en}}</ref>.
=== Выпуск первых версий ===
12 ноября 2000 года Microsoft опубликовала на своём сайте .NET Framework SDK Beta 1, содержащий всё необходимое для первых опытов с новой платформой. Однако из-за «сырости» программы компания рекомендовала ставить её только на компьютеры, предназначенные исключительно для тестов. Данный SDK мог работать лишь в [[Windows 2000]], [[Windows NT 4.0]] (содержащий NTOP для поддержки ASP.NET), [[Windows 98]] и [[Windows Me]], причём стабильная работа с незадолго до этого вышедшим [[SQL Server 2000]] вовсе не гарантировалась<ref>[https://web.archive.org/web/20001027031350/http://msdn.microsoft.com/downloads/default.asp?URL=%2Fcode%2Fsample.asp%3Furl%3D%2Fmsdn-files%2F027%2F000%2F976%2Fmsdncompositedoc.xml MSDN Online Downloads. .NET Framework SDK Beta 1]{{ref-en}}</ref>. Данная версия содержала огромное количество ошибок, начиная с проблем при установке и заканчивая неполной поддержкой собственных пространств имён в зависимости от версии Windows<ref>[https://web.archive.org/web/20010502071039/http://beta.visualstudio.net/NonSecuredContent.aspx?ContentID=374#setupissues .NET Framework SDK: Late-Breaking Known Issues]{{ref-en}}</ref>.
== Базовые принципы проектирования ==
Основной идеей при разработке .NET Framework являлось обеспечение свободы разработчика за счёт предоставления ему возможности создавать приложения различных типов, способные выполняться на различных типах устройств и в различных средах<ref name="PrincipalDesignFeatures">[http://www.zabalnet.com/overview-highlight-principal-design-features.html Principal Design Features of .NET Framework] {{Wayback|url=http://www.zabalnet.com/overview-highlight-principal-design-features.html |date=20110901225725 }}{{ref-en}}</ref>.
Вторым принципом стала ориентация на системы, работающие под управлением семейства операционных систем Microsoft Windows<ref name="PrincipalDesignFeatures"/>.
== Архитектура .NET ==
[[Файл:DotNet.svg|thumb|right|250px|Стек технологий .NET Framework]]
Программа для .NET Framework, написанная на любом поддерживаемом языке программирования, сначала переводится компилятором в единый для .NET промежуточный [[байт-код]] [[Common Intermediate Language|Common Intermediate Language (CIL)]] (ранее назывался Microsoft Intermediate Language, MSIL). В терминах .NET получается ''сборка'', англ. ''assembly''. Затем код либо исполняется виртуальной машиной [[Common Language Runtime|Common Language Runtime (CLR)]], либо транслируется утилитой NGen.exe в исполняемый код для конкретного целевого процессора. Использование виртуальной машины предпочтительно, так как избавляет разработчиков от необходимости заботиться об особенностях аппаратной части. В случае использования виртуальной машины CLR встроенный в неё [[JIT|JIT-компилятор]] «на лету» (just in time) преобразует промежуточный [[байт-код]] в машинные коды нужного процессора. Современная технология динамической компиляции позволяет достигнуть высокого уровня быстродействия. Виртуальная машина CLR также сама заботится о базовой безопасности, управлении памятью и [[Обработка исключений|системе исключений]], избавляя разработчика от части работы.
Архитектура .NET Framework описана и опубликована в спецификации [[Common Language Infrastructure|Common Language Infrastructure (CLI)]], разработанной Microsoft и утверждённой [[ISO]] и [[ECMA]]. В CLI описаны типы данных .NET, формат метаданных о структуре программы, система исполнения [[байт-код]]а и многое другое.
Объектные классы .NET, доступные для всех поддерживаемых языков программирования, содержатся в библиотеке [[Framework Class Library|Framework Class Library (FCL)]]. В FCL входят классы [[Windows Forms]], [[ADO.NET]], [[ASP.NET]], [[Language Integrated Query]], [[Windows Presentation Foundation]], [[Windows Communication Foundation]] и другие. Ядро FCL называется [[Base Class Library|Base Class Library (BCL)]].
== Среды разработки ==
Среды разработки, поддерживающие .NET:
* [[Microsoft Visual Studio]] (C#, Visual Basic .NET, Managed C++, F#)
* [[SharpDevelop]]
* [[MonoDevelop]]
* [[Embarcadero RAD Studio]] (Delphi for .NET); ранее [[Borland Developer Studio]] (Delphi for .NET, C#)
* [[Ада (язык программирования)|A#]]
* [[Zonnon]]
* [[PascalABC.NET]]
* [[JetBrains Rider]]
Приложения .NET также можно разрабатывать в текстовом редакторе, просто вызывая [[компилятор]] из [[Командная строка|командной строки]].
== Версии ==
Версии и пакеты обновлений .NET Framework доступны тремя основными способами: через механизм автообновления Windows Update, для скачивания на сайте Microsoft Download Center и в составе новых версий операционных систем<ref>[http://msdn.microsoft.com/en-us/kb/kbarticle.aspx?id=829019 Benefits of the Microsoft .NET Framework] {{Wayback|url=http://msdn.microsoft.com/en-us/kb/kbarticle.aspx?id=829019 |date=20130831100046 }}{{ref-en}}</ref>.
{| class="wikitable"
!Версия!![[Common Language Runtime|CLR]]!!Номер версии!!Дата выхода!!Visual Studio!!По умолчанию в Windows!!Заменяет
|-
|1.0||1.0||1.0.3705.0||1 мая 2002 года||Visual Studio .NET||Работает на Windows 98, Windows 98 SE, Windows Me, Windows NT 4.0 SP6, Windows 2000 и Windows XP. .NET Framework 1.0 несовместим с Windows 95.|| {{NA}}
|-
|1.1||1.1||1.1.4322.573||1 апреля 2003 года||Visual Studio .NET 2003||Windows Server 2003<br>''последняя поддерживаемая версия .NET Framework для Windows 98 FE и Windows NT 4.0 SP6''|| 1.0
|-
|2.0||2.0||2.0.50727.42||11 июля 2005 года||Visual Studio 2005||Windows Vista, Windows 7, Windows Server 2008 R2<br>''.NET Framework 2.0 без пакетов обновлений — последняя поддерживаемая версия .NET Framework для Windows 98 SE и Windows Me''<br>''.NET Framework 2.0 SP2 — последняя поддерживаемая версия .NET Framework для Windows 2000 SP4''|| {{NA}}
|-
|3.0||2.0||3.0.4506.30||6 ноября 2006 года|| Visual Studio 2005 + расширения ||Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2||2.0
|-
|3.5||2.0||3.5.21022.8||9 ноября 2007 года||Visual Studio 2008||Windows 7, Windows Server 2008 R2<br>''последняя поддерживаемая версия .NET Framework для Windows XP SP2''||2.0, 3.0
|-
|4.0||4||4.0.30319.1||12 апреля 2010 года||Visual Studio 2010||Windows 8, Windows Server 2012<br>''последняя поддерживаемая версия .NET Framework для Windows XP SP3''|| {{NA}}
|-
|4.5||4||4.5.50709.17929||15 августа 2012 года||Visual Studio 2012||Windows 8, Windows Server 2012||4.0
|-
|4.5.1||4||4.5.50938.18408||17 октября 2013 года||Visual Studio 2013||Windows 8.1, Windows Server 2012 R2||4.0, 4.5
|-
|4.5.2||4||4.5.51209.34209||5 мая 2014 года||{{NA}}||{{NA}}||4.0-4.5.1
|-
|4.6||4||4.6.1038.0||20 июля 2015 года||Visual Studio 2015||[[Windows 10]]||4.0-4.5.2
|-
|4.6.1||4||4.6.23123.0||17 ноября 2015 года||Visual Studio 2015 Update 1||Windows 10 v1511<br>''последняя поддерживаемая версия .NET Framework для Windows Vista SP2''||4.0-4.6
|-
|4.6.2||4||4.6.23907.0||20 июля 2016 года|| ||Windows 10 v1607||4.0-4.6.1
|-
|4.7||4||4.7.02046||5 апреля 2017 года||Visual Studio 2017||Windows 10 v1703||4.0-4.6.2
|-
|4.7.1||4||4.7.02556||17 октября 2017 года||Visual Studio 2017 v15.5<ref>{{Cite web |url=https://blogs.msdn.microsoft.com/dotnet/2017/10/17/announcing-the-net-framework-4-7-1/ |title=Announcing the .NET Framework 4.7.1 |lang=en|access-date=2017-12-06 |archive-date=2017-12-31 |archive-url=https://web.archive.org/web/20171231121950/https://blogs.msdn.microsoft.com/dotnet/2017/10/17/announcing-the-net-framework-4-7-1/ |deadlink=no }}</ref> ||Windows 10 v1709, Windows Server 2016 (version 1709)<ref>{{Cite web |url=https://docs.microsoft.com/en-us/dotnet/framework/install/on-windows-10#net-framework-471 |title=Install the .NET Framework on Windows 10 and Windows Server 2016 |lang=en|access-date=2017-12-06 |archive-date=2017-12-06 |archive-url=https://web.archive.org/web/20171206211349/https://docs.microsoft.com/en-us/dotnet/framework/install/on-windows-10#net-framework-471 |deadlink=no }}</ref>||4.0-4.7
|-
|4.7.2||4||4.7.03056||30 апреля 2018 года||Visual Studio 2017 v15.8<ref>{{Cite web |url=https://blogs.msdn.microsoft.com/visualstudio/2018/08/14/visual-studio-2017-version-15-8/ |title=Visual Studio 2017 version 15.8 |lang=en|access-date=2018-08-17 |archive-date=2018-08-17 |archive-url=https://web.archive.org/web/20180817193435/https://blogs.msdn.microsoft.com/visualstudio/2018/08/14/visual-studio-2017-version-15-8/ |deadlink=no }}</ref>||Windows 10 v1803||4.0-4.7.1
|-
|4.8
|4
|4.8.3761.0
|18 апреля 2019 года
|
|Windows 10 v1903,<br>{{нет АИ 2|последняя поддерживаемая версия .NET Framework для Windows 7 SP1|9|02|2022}}
|4.0-4.7.2
|}
=== .NET Framework 1.0 ===
Первый релиз .NET Framework вышел [[5 января]] [[2002 год]]а для [[Windows 98]], [[Windows NT 4.0|NT 4.0]], [[Windows 2000|2000]] и [[Windows XP|XP]]. Общая поддержка, осуществляемая компанией Майкрософт, закончилась [[10 июля]] [[2007 год]]а, расширенная поддержка закончилась [[14 июля]] [[2009 год]]а<ref name="lifecycle">{{Cite web |url=http://support.microsoft.com/lifecycle/search/?sort=PN&alpha=.NET+Framework |title=Сведения о жизненном цикле различных версий .NET Framework |lang=en|access-date=2008-08-29 |archive-date=2009-07-26|archive-url=https://web.archive.org/web/20090726214651/http://support.microsoft.com/lifecycle/search/?sort=PN&alpha=.NET+Framework |deadlink=no }}</ref>.
=== .NET Framework 1.1 ===
Следующий релиз .NET Framework вышел [[1 апреля]] [[2003 год]]а. Это была первая версия, автоматически устанавливаемая вместе с операционной системой ([[Windows Server 2003]]). Для более старых операционных систем .NET Framework 1.1 была доступна в виде отдельного установочного пакета. Общая поддержка, осуществляемая компанией Майкрософт, закончилась [[14 октября]] [[2008 год]]а, а расширенная поддержка закончилась [[8 октября]] [[2013 год]]а<ref name="lifecycle"/>.
=== .NET Framework 2.0 ===
Версия 2.0 была выпущена одновременно с [[Visual Studio 2005]], [[SQL Server 2005]] и [[Microsoft BizTalk Server|BizTalk 2006]]. С выходом версии 2.0 была добавлена поддержка настраиваемых (обобщённых) ({{lang-en|generic}}) классов, [[анонимная функция|анонимных методов]], полная поддержка 64-битных платформ [[x64]] и [[IA-64]]. Общая поддержка, осуществляемая компанией Майкрософт, закончилась [[12 апреля]] [[2011 год]]а, а расширенная поддержка закончилась [[12 апреля]] [[2016 год]]а<ref name="lifecycle"/>.
=== .NET Framework 3.0 ===
Первоначально .NET Framework 3.0 носила имя WinFX, что отражало её суть: расширение .NET Framework 2.0 с сохранением всех библиотек и добавлением четырёх новых компонентов:
* [[Windows Presentation Foundation|Windows Presentation Foundation (WPF)]] — презентационная графическая подсистема, использующая [[XAML]];
* [[Windows Communication Foundation|Windows Communication Foundation (WCF)]] — унифицированная программная модель межплатформенного взаимодействия;
* [[Windows Workflow Foundation|Windows Workflow Foundation (WF)]] — технология определения, выполнения и управления рабочими процессами;
* [[Windows CardSpace]] — технология унифицированной идентификации.
Поддержка, осуществляемая компанией Майкрософт, закончилась [[12 июля]] [[2011 год]]а<ref name="lifecycle"/>.
=== .NET Framework 3.5 ===
Как и версия 3.0, .NET 3.5 использует CLR версии 2.0. Новшества по сравнению с .NET Framework 3.0 включают в себя:
* C# 3.0 и VB.NET 9.0
* Добавлен язык [[Language Integrated Query|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 год]]а<ref>{{Cite web |url=http://www.cnews.ru/news/line/index.shtml?2008%2F09%2F30%2F320602 |title=CNews: Microsoft анонсировала Visual Studio 2010 и .NET Framework 4.0|lang=ru|accessdate=2019-06-11 |archiveurl=https://web.archive.org/web/20140727101317/http://www.cnews.ru/news/line/index.shtml?2008%2F09%2F30%2F320602 |archivedate=2014-07-27 |deadlink=yes }}</ref>. Первая бета-версия появилась 20 мая 2009 года, вместе с бета-версией [[Visual Studio 2010]]<ref>{{Cite web |url=http://blogs.msdn.com/somasegar/archive/2009/05/18/visual-studio-2010-and-net-fx-4-beta-1-ships.aspx |title=Visual Studio 2010 and .NET FX 4 Beta 1 ships! |lang=en|access-date=2009-07-15 |archive-date=2009-05-23 |archive-url=https://web.archive.org/web/20090523110420/http://blogs.msdn.com/somasegar/archive/2009/05/18/visual-studio-2010-and-net-fx-4-beta-1-ships.aspx |deadlink=yes }}</ref>. Нововведения включают в себя:
* Parallel Extensions — [[PLINQ]] (Parallel [[LINQ]]) и библиотеку параллельных задач (Task Parallel Library)<ref>{{Cite web |url=http://msdn.microsoft.com/ru-ru/library/dd537609.aspx |title=Task Parallel Library — библиотека параллельных задач |lang=ru|access-date=2012-02-09 |archive-date=2012-02-21 |archive-url=https://web.archive.org/web/20120221005321/http://msdn.microsoft.com/ru-ru/library/dd537609.aspx |deadlink=no }}</ref>, предназначенные для упрощения программирования для многопроцессорных и распределённых систем
* Нововведения в Visual Basic и C#
* Технологию Managed Extensibility Framework (MEF)
* Полную поддержку [[IronPython]], [[IronRuby]] и [[F Sharp|F#]]
* Поддержку подмножеств .NET Framework и ASP.NET в варианте Server Core
* Поддержку Code Contracts
* Средства моделирования [[Oslo]] и язык программирования [[M (язык программирования)|M]], предназначенный для создания предметно-ориентированных языков и моделей
Окончательная версия .NET Framework 4.0 была выпущена [[12 апреля]] [[2010 год]]а вместе с окончательной версией [[Visual Studio 2010]].
Версия 4.0.3 это максимальная которая может быть установлена на Windows XP
=== .NET Framework 4.5 ===
При установке заменяет .NET Framework 4.0.
Несовместима с Windows XP и более ранними версиями Windows. Нововведения включают в себя:
* Возможность уменьшения количества перезапусков системы путём обнаружения и закрытия приложений платформы .NET Framework версии 4 во время развёртывания.
* Поддержка массивов, размер которых превышает 2 гигабайта (ГБ) на 64-разрядных платформах.
* Улучшенная производительность благодаря фоновой сборке мусора для серверов. При использовании серверной сборки мусора в .NET Framework 4.5 фоновая сборка мусора включается автоматически.
* Фоновая компиляция по требованию (JIT), которая опционально доступна на многоядерных процессорах для повышения производительности приложения.
* Возможность ограничить, как долго обработчик регулярных выражений будет пытаться разрешить регулярное выражение до истечения времени ожидания.
* Возможность определить культуру по умолчанию для домена приложения.
* Поддержка кодировки Юникод (UTF-16) в консоли.
* Поддержка управления версиями культурных данных сортировки и сравнения строк.
* Улучшенная производительность при извлечении ресурсов.
* Улучшения сжатия ZIP.
* Возможность настраивать контекст отражения для переопределения поведения отражения по умолчанию.
* Поддержка версии 2008 стандарта интернационализированных доменных имён в приложениях, когда класс используется в Windows 8.
* Делегирование сравнения строк операционной системе, которая реализует Юникод 6.0, если платформа .NET Framework используется в Windows 8. При работе на других платформах платформа .NET Framework включает собственные сведения о сравнении строк, которые реализуют Юникод 5.xx.
* Возможность вычисления хеш-кода для строк на основе домена для каждого приложения.
* Поддержка [[JSON]]
==== .NET Framework 4.5.1 ====
.NET Framework 4.5.1 выпущен 17 октября 2013 года вместе с Visual Studio 2013. Эта версия требует Windows Vista SP2 или более свежую версию, и поставляется вместе с [[Windows 8.1]] и [[Windows Server 2012 R2]].
==== .NET Framework 4.5.2 ====
.NET Framework 4.5.2 является обновлением .NET Framework 4.5.1, .NET Framework 4.5, и .NET Framework 4. Устанавливается, при необходимости, бок о бок с .NET Framework 3.5 Service Pack 1.
=== .NET Framework 4.6 ===
.NET Framework 4.6 является обновлением .NET Framework 4.5.2, .NET Framework 4.5.1, .NET Framework 4.5, и .NET Framework 4. Устанавливается, при необходимости, бок о бок с .NET Framework 3.5 Service Pack 1.
Является частью редакции Microsoft Visual Studio 2015.
.NET Framework 4.6 поддерживает новый JIT-компилятор для 64-разрядных систем (RyuJIT); WPF и WinForms обновлены для поддержки экранов с высоким DPI; в WCF была добавлена поддержка [[TLS]] 1.1 и TLS 1.2. Криптографический API в .NET Framework 4.6 использует последнюю версию API от Microsoft [[CryptoAPI]], благодаря этому стал доступен набор алгоритмов шифрования «Suite B» — AES, SHA-2, Elliptic curve Diffie-Hellman, [[ECDSA]]<ref>{{cite web|last1=Lander|first1=Rich|title=Announcing .NET Framework 4.6|url=http://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-net-framework-4-6.aspx|lang=en|website=.NET Blog|publisher=[[Microsoft]]|date=2015-07-20|archiveurl=https://web.archive.org/web/20150806231047/http://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-net-framework-4-6.aspx|archivedate=2015-08-06|deadurl=yes}}</ref>.
==== .NET Framework 4.6.1 ====
.NET Framework 4.6.1 является обновлением .NET Framework 4.6, .NET Framework 4.5.2, .NET Framework 4.5.1, .NET Framework 4.5, и .NET Framework 4. Устанавливается, при необходимости, бок о бок с .NET Framework 3.5 Service Pack 1.
Является частью редакции Microsoft Visual Studio 2015 Update 1.
==== .NET Framework 4.6.2 ====
.NET Framework 4.6.2 был выпущен 30 марта 2016 года и выпущен 2 августа 2016 года<ref>{{cite web|title=Announcing .NET Framework 4.6.2|url=https://blogs.msdn.microsoft.com/dotnet/2016/08/02/announcing-net-framework-4-6-2/|lang=en|website=.NET Blog|publisher=Microsoft|access-date=2022-02-09|archive-date=2016-10-24|archive-url=https://web.archive.org/web/20161024011115/https://blogs.msdn.microsoft.com/dotnet/2016/08/02/announcing-net-framework-4-6-2/|deadlink=no}}</ref>.
Является обновлением .NET Framework версий 4.6.1, 4.6, 4.5.2, 4.5.1, 4.5 и 4.
Для установки требуется Windows 7 SP1 или выше.
Устанавливается, при необходимости, бок о бок с .NET Framework 3.5 Service Pack 1.
=== .NET Framework 4.7 ===
.NET Framework 4.7 был выпущен 5 апреля 2017 года.
==== .NET Framework 4.7.1 ====
.NET Framework 4.7.1 был выпущен 17 октября 2017 года.
==== .NET Framework 4.7.2 ====
.NET Framework 4.7.2 был выпущен 30 апреля 2018 года.
=== .NET Framework 4.8 ===
.NET Framework 4.8 был выпущен 18 апреля 2019 года<ref>{{Cite news|url=https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8/|title=Announcing the .NET Framework 4.8|access-date=2018-04-18|lang=en|accessdate=2019-06-09|archivedate=2019-04-19|archiveurl=https://web.archive.org/web/20190419141220/https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8/}}</ref><ref>{{Cite news|url=https://devblogs.microsoft.com/dotnet/upcoming-updates-for-net-framework-4-8/|title=Upcoming Updates for .NET Framework 4.8|access-date=2018-04-19|lang=en|accessdate=2022-02-09|archivedate=2019-04-20|archiveurl=https://web.archive.org/web/20190420052208/https://devblogs.microsoft.com/dotnet/upcoming-updates-for-net-framework-4-8/}}</ref>
=== Поддержка ОС ===
<ref>{{Cite web|lang=ru|url=https://docs.microsoft.com/ru-ru/dotnet/framework/get-started/system-requirements|title=Требования к системе для .NET Framework - .NET Framework|author=gewarren|website=docs.microsoft.com|access-date=2022-02-09|archive-date=2022-02-09|archive-url=https://web.archive.org/web/20220209153053/https://docs.microsoft.com/ru-ru/dotnet/framework/get-started/system-requirements|deadlink=no}}</ref>
{| class="wikitable"
!
! colspan="12" |Версия .NET Framework
!
!
!
!
|-
!ОС
!1.0
!1.1
!2.0
!3.0
!3.5
!4.0
!4.5
!4.5.1
!4.5.2
!4.6
!4.6.1
!4.6.2
!4.7
!4.7.1
!4.7.2
!4.8
|-
|Windows 98
| +
| +
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|-
|Windows NT 4.0
| +
| +
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|-
|Windows Me
| +
| +
| +
|
|
|
|
|
|
|
|
|
|
|
|
|
|-
|Windows 2000
| +
| +
| +
|
|
|
|
|
|
|
|
|
|
|
|
|
|-
|Windows XP
| +
| +
| +
| +
| +
| +
|
|
|
|
|
|
|
|
|
|
|-
|Windows Server 2003
|
| +
| +
| +
| +
| +
|
|
|
|
|
|
|
|
|
|
|-
|Windows Server 2008
|
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
|
|
|
|
|
|-
|Windows Vista
|
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
|
|
|
|
|
|-
|Windows 7
|
|
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
|-
|Windows Server 2008 R2
|
|
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
|-
|Windows Server 2012
|
|
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
|-
|Windows 8
|
|
| +
| +
| +
| +
| +
| +
| +
| +
| +
|
|
|
|
|
|-
|Windows 8.1
|
|
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
|-
|Windows Server 2012 R2
|
|
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
|-
|Windows 10
|
|
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
| +
|}
== Языки программирования в .NET ==
{{Основная статья|Список .NET-языков}}
Одной из основных идей Microsoft .NET является совместимость программных частей, написанных на разных языках. Например, служба, написанная на C++ для Microsoft .NET, может обратиться к методу класса из библиотеки, написанной на Delphi; на C# можно написать класс, наследованный от класса, написанного на Visual Basic .NET, а исключение, созданное методом, написанным на C#, может быть перехвачено и обработано в Delphi. Каждая библиотека (сборка) в .NET имеет сведения о своей версии, что позволяет устранить возможные конфликты между разными версиями сборок.
Языки, поставляемые вместе с [[Microsoft Visual Studio]]:
* [[C Sharp|C#]]
* [[Visual Basic .NET]]
* [[JScript .NET]]
* [[C++/CLI]] — новая версия [[Managed C Plus Plus|Managed C++]]
* [[F Sharp|F#]] — член семейства языков программирования [[ML]], включён в VS2010/VS2012/VS2015/VS2017/VS2019/VS2022
* [[Visual J Sharp|J#]] — последний раз был включён в VS2005
== Критика ==
Реализация платформы .NET Framework вызывала и вызывает множество нареканий.
* С технической точки зрения платформа также подвергалась критике из-за отсутствия поддержки вызовов [[SSE|Streaming SIMD Extensions (SSE)]] в управляемом коде. В Mono решили эту проблему, добавив поддержку SIMD Extensions версии 2.2 в пространство имён <code>Mono.Simd</code>. В состав .NET Framework 4.6 входит новый JIT-компилятор RyuJIT, поддерживающий SIMD через пространство имён <code>System.Numerics</code><ref>{{cite web |url=http://blogs.msdn.com/b/clrcodegeneration/archive/2014/10/31/ryujit-ctp5-getting-closer-to-shipping-and-with-better-simd-support.aspx |title=RyuJIT CTP5: Getting closer to shipping, and with better SIMD support |date=2014-10-30 |lang=en |accessdate=2015-08-12 |archiveurl=https://web.archive.org/web/20150831041014/http://blogs.msdn.com/b/clrcodegeneration/archive/2014/10/31/ryujit-ctp5-getting-closer-to-shipping-and-with-better-simd-support.aspx |archivedate=2015-08-31 |deadlink=yes }}</ref>.
* Новые версии платформы (3.5 и далее) вызвали новую волну недовольства тем, что они не предустанавливаются в версии Windows, предшествовавшие выходу [[Windows 7]], что вынуждает пользователей тратить значительное время на их установку<ref name="ZabalnetCriticism">[http://www.zabalnet.com/discussion-criticism-microsoft-net.html Criticism Of Microsoft .NET Framework] {{Wayback|url=http://www.zabalnet.com/discussion-criticism-microsoft-net.html |date=20110827010554 }}{{ref-en}}</ref>.
== Альтернативные реализации ==
* [[.NET]] (ранее известна как '''.NET Core''') — преемник .NET Framework, является [[Открытое программное обеспечение|открытой]] и [[Кроссплатформенность|кроссплатформенной]] реализацией .NET Framework от корпорации [[Microsoft]].
* [[.NET Compact Framework]] — версия .NET Framework, предназначенная для запуска приложений на устройствах, основанных на платформе Windows CE.
* [[.NET Micro Framework]] — реализация платформы Microsoft .NET для встраиваемого применения в 32- и 64-разрядных микроконтроллерах.
* [[Mono]] — проект по созданию полноценного воплощения системы .NET Framework на базе [[Свободное программное обеспечение|свободного программного обеспечения]].
* [[Portable.NET]]
* [[DotGNU]]
== См. также ==
* [[.NET Remoting]] — компонент, созданный компанией Microsoft для межпроцессного взаимодействия.
* [[Microsoft Silverlight]]
* [[Common Language Infrastructure]]
* [[Code Access Security]]
* [[Сравнение C Sharp и Java|Сравнение C# и Java]]
* [[The .NET Show]]
== Примечания ==
{{примечания|2}}
== Литература ==
* {{книга|заглавие=C# 5.0 и платформа .NET 4.5 для профессионалов|оригинал=Professional C# 5.0 and .NET 4.5|автор=Кристиан Нейгел и др.|страниц=1440|isbn=978-5-8459-1850-5|год=2013|место=М.|издательство=[[Диалектика (издательство)|«Диалектика»]]}}
* {{книга|заглавие=Язык программирования C# 5.0 и платформа .NET 4.5, 6-е издание|оригинал=Pro C# 5.0 and the .NET 4.5 Framework, 6th edition|автор=Эндрю Троелсен|страниц=1312|isbn=978-5-8459-1814-7|год=2013|место=М.|издательство=[[Вильямс (издательство)|«Вильямс»]]}}
* {{книга|заглавие=Программирование для Microsoft .NET|оригинал=Programming Microsoft .NET|автор=[[Джеф Просиз]]|страницы=704|isbn=5-7502-0217-8|год=2003|место=М.|издательство=[[Русская редакция (издательство)|Русская редакция]]}}
== Ссылки ==
* {{официальный сайт|https://dotnet.microsoft.com}}
{{C Sharp}}
{{Компоненты Microsoft Windows}}
{{.NET}}
{{Microsoft}}
{{Свободное и открытое программное обеспечение Microsoft}}
[[Категория:Программное обеспечение, разработанное в 2002 году]]
[[Категория:.NET|*]]
}}
{{Навигационная таблица/Портал/Русская Википедия}}
{{Навигационная таблица/Портал/Русская Википедия}}
[[Категория:Русская Википедия]]
[[Категория:Русская Википедия]]

Текущая версия от 23:14, 10 июля 2023

Шаблон:Другие значения термина Шаблон:Карточка программы .NET Framework — программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), которая подходит для различных языков программирования. Функциональные возможности CLR доступны в любых языках программирования, использующих эту среду. В настоящее время .NET Framework развивается в виде .NET.

Считается, что платформа .NET Framework является ответом компании Microsoft на набравшую к тому времени большую популярность платформу Java компании Sun Microsystems (ныне принадлежит Oracle).

Хотя .NET Framework является патентованной технологией корпорации Microsoft и официально рассчитана на работу под операционными системами семейства Windows, существуют независимые проекты (прежде всего это Mono и Portable.NET), позволяющие запускать программы .NET Framework на некоторых других операционных системах.

Разработка

Разработка платформы началась в 1999 году[1]. Официально о разработке новой технологии было объявлено 13 января 2000 года, в день, когда Билл Гейтс официально объявил о передаче поста главы Microsoft Стиву Балмеру. В этот день руководство корпорации объявило о новой стратегии компании, получившей название Next Generation Windows Services (NGWS, «новое поколение служб Windows»). Новая стратегия должна была объединить в единый набор существующие и будущие разработки Microsoft для предоставления возможности пользователям работать со Всемирной паутиной с беспроводных устройств, обладающих доступом в Интернет, как со стационарных компьютеров[2].

Цели и задачи

Во время проходившей в тот день пресс-конференции Балмер заявил, что, несмотря на огромные возможности домашних компьютеров, корпорация считает важным обеспечение гарантированной работы служб нового поколения и на устройствах, отличных от ПК. Что касается Гейтса, то аналитик компании Patricia Seybold Group Энн Томас Мейнс, проанализировав его слова, заявила о том, что компании будет полезен отход от ориентации исключительно на стационарные компьютеры и переход к разработке под мобильные устройства. По её оценке, Гейтс провозгласил курс на переход к новой эре работы с компьютером, которая не будет жёстко привязана к Windows[2].

Ввиду небольшой мощности источников питания мобильных устройств хранение и передача приложений должна осуществляться серверами, тогда как на тот момент практически вся пользовательская информация и ПО хранились на стационарных компьютерах локально. Тогда идея перехода к «сервероцентрической» модели имела крепкую поддержку среди руководителей крупнейших IT-компаний. Так, например, Скотт МакНили, глава Sun Microsystems, объявил о приобретении компании офисного ПО, конкурировавшего с Microsoft Office, для перехода к сервер-клиентскому ПО[2].

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

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

По словам Моритца, основой для новой стратегии компании послужила разработка Windows DNA 2000, представленная в сентябре 1999 года. Windows DNA 2000 объединила в себе новую версию СУБД SQL Server и новые программные инструменты для облегчения разработки веб-приложений[2].

Концепция

В феврале 2000 года Стив Балмер, выступая на конференции VBITS 2000 в Сан-Франциско, рассказал о новой версии Visual Basic и Visual C++, являвшихся до той поры краеугольными камнями Visual Studio. Поскольку график выхода версий Visual Studio к тому моменту был заметно нарушен (Visual Studio 6.0 вышла в сентябре 1998 года, а до этого выпуски входящих в её состав инструментов происходили ежегодно), то информация о нововведениях вызывала изрядный интерес[4]Шаблон:Битая ссылка.

Тогда же Балмер и представил концепцию стратегии NGWS (рабочее название которой Балмер счёл весьма ужасным и пообещал сменить его к моменту выпуска) в виде некоей программной платформы, которая позволит пользователям Windows получать доступ к множеству веб-служб. Для этого Microsoft рассчитывала значительно изменить Windows-платформу. Первым шагом к новой версии платформы стала Windows 2000, которую Балмер назвал основой «пользовательского знакомства с Интернетом». Windows 2000 являлась одной из частей технологии Windows Distributed interNet Applications (DNA) 2000, в рамках которой была представлена последняя на тот момент схема трёхуровневой модели программирования, впервые представленная на Windows NT 4.0[4].

На тот момент данная схема состояла из клиентской части (Windows- или веб-приложение), среднего уровня, базировавшегося на компонентах COM+, и базы данных (как правило, SQL Server). NGWS должна была сменить путь разработки Windows DNA на исключительное использование XML как стандарта обмена данными. XML был выбран потому, что являлся развитием языка разметки HTML, ставшего основным языком разметки во Всемирной паутине, а кроме того, он предоставлял удобный способ описания данных. В модели NGWS каждая часть трёхзвенной структуры (клиентское приложение, промежуточный слой и база данных) должна была взаимодействовать с остальными при помощи XML-пакетов. Для упрощения разработки кода с использованием XML предполагалось, что новая версия Visual Studio будет генерировать XML-код, освобождая разработчиков от необходимости ручного написания XML-кода[4].

Так, например, планировалось, что разработчики смогут писать веб-сайт для электронной коммерции целиком на новой версии Visual Basic, а благодаря тому, что обмен информацией будет происходить при помощи XML, разработчики смогут создавать клиентские приложения, функционирующие на Linux, Solaris и Mac OS. То есть для того, чтобы приложение или операционная система могли взаимодействовать друг с другом, нужна была лишь поддержка стандарта с их стороны[4].

Для демонстрации своего замысла Microsoft запустила веб-сайт Passport, зайдя на который, пользователь мог бесплатно завести себе электронный кошелёк (eWallet), упрощавший процесс совершения покупок в интернет-магазинах[4].

Смена названия

22 июня 2000 года на проходившем в Редмонде Forum 2000 Билл Гейтс заявил о переименовании платформы в Microsoft.Net, объявив при этом, что «стратегия корпорации целиком и полностью будет определяться платформой .Net», а все продукты Microsoft со временем будут переписаны для поддержки этой платформы. Также, по его словам, в течение ближайших двух лет Microsoft планировала выпуск новой версии своей ОС (которую изначально назвали Windows.Net, позже её реализовали как Microsoft Singularity) и комплекта средств разработки, который должен был называться Visual Studio.Net. Помимо этого, изменения должны были затронуть и серверные приложения — Microsoft SQL Server, Exchange, BizTalk, а офисный пакет Microsoft Office должен был быть преобразован в Office.Net[5].

К выступлению Гейтса на июньском Forum 2000 было приурочено и опубликование документа под названием Microsoft .NET: Realizing the Next Generation Internet (Шаблон:Lang-en) на официальном сайте Microsoft. В нём приводился общий обзор новой платформы, а само появление новой платформы описывалось как некая «революция». В этом документе впервые было приведено описание (хотя и краткое) технической реализации платформы. Так, разработчикам предлагалось вместо ручного набора большой массы кода собирать свои приложения из готовых блоков, что должно было ускорить разработку ПО. К таким «строительным блокам» относились, в частности, следующие модули:

  • Identity («Личность») — технология, объединяющая Windows-аутентификацию и Microsoft Passport, созданная для обеспечения различных уровней безопасности, начиная от паролей и электронных кошельков и заканчивая смарт-картами и устройствами биометрической идентификации[6].

Презентация предварительной версии .NET

11 июля 2000 года на PDC во Флориде состоялась презентация предварительной версии .NET Framework, которая была представлена как «часть .NET Platform»[7].

Выпуск первых версий

12 ноября 2000 года Microsoft опубликовала на своём сайте .NET Framework SDK Beta 1, содержащий всё необходимое для первых опытов с новой платформой. Однако из-за «сырости» программы компания рекомендовала ставить её только на компьютеры, предназначенные исключительно для тестов. Данный SDK мог работать лишь в Windows 2000, Windows NT 4.0 (содержащий NTOP для поддержки ASP.NET), Windows 98 и Windows Me, причём стабильная работа с незадолго до этого вышедшим SQL Server 2000 вовсе не гарантировалась[8]. Данная версия содержала огромное количество ошибок, начиная с проблем при установке и заканчивая неполной поддержкой собственных пространств имён в зависимости от версии Windows[9].

Базовые принципы проектирования

Основной идеей при разработке .NET Framework являлось обеспечение свободы разработчика за счёт предоставления ему возможности создавать приложения различных типов, способные выполняться на различных типах устройств и в различных средах[10].

Вторым принципом стала ориентация на системы, работающие под управлением семейства операционных систем Microsoft Windows[10].

Архитектура .NET

Файл:DotNet.svg
Стек технологий .NET Framework

Программа для .NET Framework, написанная на любом поддерживаемом языке программирования, сначала переводится компилятором в единый для .NET промежуточный байт-код Common Intermediate Language (CIL) (ранее назывался Microsoft Intermediate Language, MSIL). В терминах .NET получается сборка, англ. assembly. Затем код либо исполняется виртуальной машиной Common Language Runtime (CLR), либо транслируется утилитой NGen.exe в исполняемый код для конкретного целевого процессора. Использование виртуальной машины предпочтительно, так как избавляет разработчиков от необходимости заботиться об особенностях аппаратной части. В случае использования виртуальной машины CLR встроенный в неё JIT-компилятор «на лету» (just in time) преобразует промежуточный байт-код в машинные коды нужного процессора. Современная технология динамической компиляции позволяет достигнуть высокого уровня быстродействия. Виртуальная машина CLR также сама заботится о базовой безопасности, управлении памятью и системе исключений, избавляя разработчика от части работы.

Архитектура .NET Framework описана и опубликована в спецификации Common Language Infrastructure (CLI), разработанной Microsoft и утверждённой ISO и ECMA. В CLI описаны типы данных .NET, формат метаданных о структуре программы, система исполнения байт-кода и многое другое.

Объектные классы .NET, доступные для всех поддерживаемых языков программирования, содержатся в библиотеке Framework Class Library (FCL). В FCL входят классы Windows Forms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation и другие. Ядро FCL называется Base Class Library (BCL).

Среды разработки

Среды разработки, поддерживающие .NET:

Приложения .NET также можно разрабатывать в текстовом редакторе, просто вызывая компилятор из командной строки.

Версии

Версии и пакеты обновлений .NET Framework доступны тремя основными способами: через механизм автообновления Windows Update, для скачивания на сайте Microsoft Download Center и в составе новых версий операционных систем[11].

Версия CLR Номер версии Дата выхода Visual Studio По умолчанию в Windows Заменяет
1.0 1.0 1.0.3705.0 1 мая 2002 года Visual Studio .NET Работает на Windows 98, Windows 98 SE, Windows Me, Windows NT 4.0 SP6, Windows 2000 и Windows XP. .NET Framework 1.0 несовместим с Windows 95. Шаблон:NA
1.1 1.1 1.1.4322.573 1 апреля 2003 года Visual Studio .NET 2003 Windows Server 2003
последняя поддерживаемая версия .NET Framework для Windows 98 FE и Windows NT 4.0 SP6
1.0
2.0 2.0 2.0.50727.42 11 июля 2005 года Visual Studio 2005 Windows Vista, Windows 7, Windows Server 2008 R2
.NET Framework 2.0 без пакетов обновлений — последняя поддерживаемая версия .NET Framework для Windows 98 SE и Windows Me
.NET Framework 2.0 SP2 — последняя поддерживаемая версия .NET Framework для Windows 2000 SP4
Шаблон:NA
3.0 2.0 3.0.4506.30 6 ноября 2006 года Visual Studio 2005 + расширения Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2 2.0
3.5 2.0 3.5.21022.8 9 ноября 2007 года Visual Studio 2008 Windows 7, Windows Server 2008 R2
последняя поддерживаемая версия .NET Framework для Windows XP SP2
2.0, 3.0
4.0 4 4.0.30319.1 12 апреля 2010 года Visual Studio 2010 Windows 8, Windows Server 2012
последняя поддерживаемая версия .NET Framework для Windows XP SP3
Шаблон:NA
4.5 4 4.5.50709.17929 15 августа 2012 года Visual Studio 2012 Windows 8, Windows Server 2012 4.0
4.5.1 4 4.5.50938.18408 17 октября 2013 года Visual Studio 2013 Windows 8.1, Windows Server 2012 R2 4.0, 4.5
4.5.2 4 4.5.51209.34209 5 мая 2014 года Шаблон:NA Шаблон:NA 4.0-4.5.1
4.6 4 4.6.1038.0 20 июля 2015 года Visual Studio 2015 Windows 10 4.0-4.5.2
4.6.1 4 4.6.23123.0 17 ноября 2015 года Visual Studio 2015 Update 1 Windows 10 v1511
последняя поддерживаемая версия .NET Framework для Windows Vista SP2
4.0-4.6
4.6.2 4 4.6.23907.0 20 июля 2016 года Windows 10 v1607 4.0-4.6.1
4.7 4 4.7.02046 5 апреля 2017 года Visual Studio 2017 Windows 10 v1703 4.0-4.6.2
4.7.1 4 4.7.02556 17 октября 2017 года Visual Studio 2017 v15.5[12] Windows 10 v1709, Windows Server 2016 (version 1709)[13] 4.0-4.7
4.7.2 4 4.7.03056 30 апреля 2018 года Visual Studio 2017 v15.8[14] Windows 10 v1803 4.0-4.7.1
4.8 4 4.8.3761.0 18 апреля 2019 года Windows 10 v1903,
Шаблон:Нет АИ 2
4.0-4.7.2

.NET Framework 1.0

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

.NET Framework 1.1

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

.NET Framework 2.0

Версия 2.0 была выпущена одновременно с Visual Studio 2005, SQL Server 2005 и BizTalk 2006. С выходом версии 2.0 была добавлена поддержка настраиваемых (обобщённых) (Шаблон:Lang-en) классов, анонимных методов, полная поддержка 64-битных платформ x64 и IA-64. Общая поддержка, осуществляемая компанией Майкрософт, закончилась 12 апреля 2011 года, а расширенная поддержка закончилась 12 апреля 2016 года[15].

.NET Framework 3.0

Первоначально .NET Framework 3.0 носила имя WinFX, что отражало её суть: расширение .NET Framework 2.0 с сохранением всех библиотек и добавлением четырёх новых компонентов:

Поддержка, осуществляемая компанией Майкрософт, закончилась 12 июля 2011 года[15].

.NET Framework 3.5

Как и версия 3.0, .NET 3.5 использует CLR версии 2.0. Новшества по сравнению с .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 года[16]. Первая бета-версия появилась 20 мая 2009 года, вместе с бета-версией Visual Studio 2010[17]. Нововведения включают в себя:

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

Окончательная версия .NET Framework 4.0 была выпущена 12 апреля 2010 года вместе с окончательной версией Visual Studio 2010.

Версия 4.0.3 это максимальная которая может быть установлена на Windows XP

.NET Framework 4.5

При установке заменяет .NET Framework 4.0. Несовместима с Windows XP и более ранними версиями Windows. Нововведения включают в себя:

  • Возможность уменьшения количества перезапусков системы путём обнаружения и закрытия приложений платформы .NET Framework версии 4 во время развёртывания.
  • Поддержка массивов, размер которых превышает 2 гигабайта (ГБ) на 64-разрядных платформах.
  • Улучшенная производительность благодаря фоновой сборке мусора для серверов. При использовании серверной сборки мусора в .NET Framework 4.5 фоновая сборка мусора включается автоматически.
  • Фоновая компиляция по требованию (JIT), которая опционально доступна на многоядерных процессорах для повышения производительности приложения.
  • Возможность ограничить, как долго обработчик регулярных выражений будет пытаться разрешить регулярное выражение до истечения времени ожидания.
  • Возможность определить культуру по умолчанию для домена приложения.
  • Поддержка кодировки Юникод (UTF-16) в консоли.
  • Поддержка управления версиями культурных данных сортировки и сравнения строк.
  • Улучшенная производительность при извлечении ресурсов.
  • Улучшения сжатия ZIP.
  • Возможность настраивать контекст отражения для переопределения поведения отражения по умолчанию.
  • Поддержка версии 2008 стандарта интернационализированных доменных имён в приложениях, когда класс используется в Windows 8.
  • Делегирование сравнения строк операционной системе, которая реализует Юникод 6.0, если платформа .NET Framework используется в Windows 8. При работе на других платформах платформа .NET Framework включает собственные сведения о сравнении строк, которые реализуют Юникод 5.xx.
  • Возможность вычисления хеш-кода для строк на основе домена для каждого приложения.
  • Поддержка JSON

.NET Framework 4.5.1

.NET Framework 4.5.1 выпущен 17 октября 2013 года вместе с Visual Studio 2013. Эта версия требует Windows Vista SP2 или более свежую версию, и поставляется вместе с Windows 8.1 и Windows Server 2012 R2.

.NET Framework 4.5.2

.NET Framework 4.5.2 является обновлением .NET Framework 4.5.1, .NET Framework 4.5, и .NET Framework 4. Устанавливается, при необходимости, бок о бок с .NET Framework 3.5 Service Pack 1.

.NET Framework 4.6

.NET Framework 4.6 является обновлением .NET Framework 4.5.2, .NET Framework 4.5.1, .NET Framework 4.5, и .NET Framework 4. Устанавливается, при необходимости, бок о бок с .NET Framework 3.5 Service Pack 1.

Является частью редакции Microsoft Visual Studio 2015.

.NET Framework 4.6 поддерживает новый JIT-компилятор для 64-разрядных систем (RyuJIT); WPF и WinForms обновлены для поддержки экранов с высоким DPI; в WCF была добавлена поддержка TLS 1.1 и TLS 1.2. Криптографический API в .NET Framework 4.6 использует последнюю версию API от Microsoft CryptoAPI, благодаря этому стал доступен набор алгоритмов шифрования «Suite B» — AES, SHA-2, Elliptic curve Diffie-Hellman, ECDSA[19].

.NET Framework 4.6.1

.NET Framework 4.6.1 является обновлением .NET Framework 4.6, .NET Framework 4.5.2, .NET Framework 4.5.1, .NET Framework 4.5, и .NET Framework 4. Устанавливается, при необходимости, бок о бок с .NET Framework 3.5 Service Pack 1.

Является частью редакции Microsoft Visual Studio 2015 Update 1.

.NET Framework 4.6.2

.NET Framework 4.6.2 был выпущен 30 марта 2016 года и выпущен 2 августа 2016 года[20]. Является обновлением .NET Framework версий 4.6.1, 4.6, 4.5.2, 4.5.1, 4.5 и 4. Для установки требуется Windows 7 SP1 или выше. Устанавливается, при необходимости, бок о бок с .NET Framework 3.5 Service Pack 1.

.NET Framework 4.7

.NET Framework 4.7 был выпущен 5 апреля 2017 года.

.NET Framework 4.7.1

.NET Framework 4.7.1 был выпущен 17 октября 2017 года.

.NET Framework 4.7.2

.NET Framework 4.7.2 был выпущен 30 апреля 2018 года.

.NET Framework 4.8

.NET Framework 4.8 был выпущен 18 апреля 2019 года[21][22]

Поддержка ОС

[23]

Версия .NET Framework
ОС 1.0 1.1 2.0 3.0 3.5 4.0 4.5 4.5.1 4.5.2 4.6 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.8
Windows 98 + +
Windows NT 4.0 + +
Windows Me + + +
Windows 2000 + + +
Windows XP + + + + + +
Windows Server 2003 + + + + +
Windows Server 2008 + + + + + + + + + +
Windows Vista + + + + + + + + + +
Windows 7 + + + + + + + + + + + + + +
Windows Server 2008 R2 + + + + + + + + + + + + + +
Windows Server 2012 + + + + + + + + + + + + + +
Windows 8 + + + + + + + + +
Windows 8.1 + + + + + + + + + + + + + +
Windows Server 2012 R2 + + + + + + + + + + + + + +
Windows 10 + + + + + + + + + + + + + +

Языки программирования в .NET

Шаблон:Основная статья Одной из основных идей Microsoft .NET является совместимость программных частей, написанных на разных языках. Например, служба, написанная на C++ для Microsoft .NET, может обратиться к методу класса из библиотеки, написанной на Delphi; на C# можно написать класс, наследованный от класса, написанного на Visual Basic .NET, а исключение, созданное методом, написанным на C#, может быть перехвачено и обработано в Delphi. Каждая библиотека (сборка) в .NET имеет сведения о своей версии, что позволяет устранить возможные конфликты между разными версиями сборок.

Языки, поставляемые вместе с Microsoft Visual Studio:

  • C#
  • Visual Basic .NET
  • JScript .NET
  • C++/CLI — новая версия Managed C++
  • F# — член семейства языков программирования ML, включён в VS2010/VS2012/VS2015/VS2017/VS2019/VS2022
  • J# — последний раз был включён в VS2005

Критика

Реализация платформы .NET Framework вызывала и вызывает множество нареканий.

  • С технической точки зрения платформа также подвергалась критике из-за отсутствия поддержки вызовов Streaming SIMD Extensions (SSE) в управляемом коде. В Mono решили эту проблему, добавив поддержку SIMD Extensions версии 2.2 в пространство имён Mono.Simd. В состав .NET Framework 4.6 входит новый JIT-компилятор RyuJIT, поддерживающий SIMD через пространство имён System.Numerics[24].
  • Новые версии платформы (3.5 и далее) вызвали новую волну недовольства тем, что они не предустанавливаются в версии Windows, предшествовавшие выходу Windows 7, что вынуждает пользователей тратить значительное время на их установку[25].

Альтернативные реализации

См. также

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:C Sharp Шаблон:Компоненты Microsoft Windows Шаблон:.NET Шаблон:Microsoft Шаблон:Свободное и открытое программное обеспечение Microsoft