WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
.NET Framework

Компоненты .NET Framework до версии 4.5 включительно
Тип Компьютерная платформа
Разработчик Microsoft
Операционная система Windows
Первый выпуск 13 февраля 2002
Последняя версия 4.7.2[1] (30 апреля 2018 года)
Лицензия MIT[2]
Сайт microsoft.com/net
 .NET Framework на Викискладе

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

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

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

Разработка

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

Цели и задачи

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

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

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

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

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

Концепция

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

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

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

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

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

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

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[7].

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

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

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

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

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

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 вовсе не гарантировалась[10]. Данная версия содержала огромное количество ошибок, начиная с проблем при установке и заканчивая неполной поддержкой собственных пространств имён в зависимости от версии Windows[11].

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

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

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

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

Стек технологий .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 также можно разрабатывать в текстовом редакторе, просто вызывая компилятор из командной строки.

Версии

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

ВерсияCLRНомер версииДата выходаVisual StudioПо умолчанию в WindowsЗаменяет
1.01.01.0.3705.01 мая 2002 годаVisual Studio .NETн/дн/д
1.11.11.1.4322.5731 апреля 2003 годаVisual Studio .NET 2003Windows Server 20031.0
2.02.02.0.50727.4211 июля 2005 годаVisual Studio 2005Windows Vista, Windows 7, Windows Server 2008 R2н/д
3.02.03.0.4506.306 ноября 2006 годаVisual Studio 2005 + расширенияWindows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R22.0
3.52.03.5.21022.89 ноября 2007 годаVisual Studio 2008Windows 7, Windows Server 2008 R22.0, 3.0
4.044.0.30319.112 апреля 2010 годаVisual Studio 2010Windows 8, Windows Server 2012н/д
4.544.5.50709.1792915 августа 2012 годаVisual Studio 2012Windows 8, Windows Server 20124.0
4.5.144.5.50938.1840817 октября 2013 годаVisual Studio 2013Windows 8.1, Windows Server 2012 R24.0, 4.5
4.5.244.5.51209.342095 мая 2014 годан/дн/д4.0-4.5.1
4.644.6.1038.020 июля 2015 годаVisual Studio 2015Windows 104.0-4.5.2
4.6.144.6.23123.017 ноября 2015 годаVisual Studio 2015 Update 1Windows 10 v15114.0-4.6
4.6.244.6.23907.020 июля 2016 годаWindows 10 v16074.0-4.6.1
4.744.7.020465 апреля 2017 годаVisual Studio 2017Windows 10 v17034.0-4.6.2
4.7.144.7.0255617 октября 2017 годаVisual Studio 2017 v15.5 [13]Windows 10 v1709, Windows Server 2016 (version 1709) [14]4.0-4.7
4.7.244.7.0305630 апреля 2018 годаVisual Studio 2017 v15.8 [15]Windows 10 v18034.0-4.7.1

Языки программирования в .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
  • J# — последний раз был включён в VS2005

Критика

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

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

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

  • .NET Compact Framework — версия .NET Framework, предназначенная для запуска приложений на устройствах, основанных на платформе Windows CE.
  • .NET Micro Framework — реализация платформы Microsoft .NET для встраиваемого применения в 32- и 64-разрядных микроконтроллерах.
  • Portable.NET
  • DotGNU

Mono

Mono — проект по созданию полноценного воплощения системы .NET Framework на базе свободного программного обеспечения. Основной разработчик проекта Mono — компания Xamarin[18], ранее Novell. После заключения Microsoft договорённости с Novell[19] платформа Mono была официально признана реализацией .NET на Unix-подобных операционных системах: Linux, Mac OS X и других. (Хотя Mono успешно работает и под Microsoft Windows). Однако договорённость касается только Novell и клиентов Novell; также технологии ASP.NET, ADO.NET и Windows Forms не были стандартизированы ECMA/ISO, и использование их в Mono находится под угрозой юридических претензий со стороны Microsoft (претензии возможны только в странах, где существуют патенты на программное обеспечение[20]). Mono предоставляет реализацию ASP.NET, ADO.NET и Windows.Forms, но в то же время рекомендует не использовать эти API[20].

.NET Core

.NET Core является кроссплатформенным (Windows, Mac, Linux) аналогом .NET Framework с открытым исходным кодом[21][22][23][24]. Он содержит среду CoreCLR — кросс-платформенную реализацию CLR, в которую входит JIT-компилятор — RyuJIT. Также .NET Core включает в себя CoreFX — набор библиотек, функциональность которых частично совпадает с BCL: API .NET Core предоставляет подмножество API .NET Framework, но также и предоставляет ряд собственных API. .NET Core был создан в 2014 году.

.NET Core версии 1.0 выпущен 27 июня 2016 года[25], вместе с Microsoft Visual Studio 2015 Update 3, в которой поддерживается разработка под .NET Core.

16 ноября 2016 года был выпущен .NET Core версии 1.1[26]

14 августа 2017 года состоялся релиз .NET Core версии 2.0[27]

См. также

Примечания

  1. Announcing the .NET Framework 4.7.2 | .NET blog
  2. Компания Microsoft анонсировала открытие платформы .Net и её портирование для Linux (рус.)
  3. Стив Резник, Ричард Крейн, Крис Боуэн. Вступление // Основы Windows Communication Foundation для .NET Framework 3.5 = Windows Communication Foundation for .NET Framework 3.5 / Пер. с англ. Слинкина А. А.. М.: ДМК Пресс, 2008. — С. 16. — 480 с. ISBN 978-5-94074-465-8.
  4. 1 2 3 4 5 6 Redmond maps plans for life after the PC (англ.)
  5. The A-Z of Programming Languages: C# (англ.)
  6. 1 2 3 4 5 An Early Look at Microsoft’s Next Generation Windows Services Архивная копия от 17 октября 2011 на Wayback Machine (англ.)
  7. Windows разделят на услуги
  8. Microsoft .NET: Realizing the Next Generation Internet (англ.)
  9. Microsoft .NET Framework Unites Programming Languages For Web-Based Future (англ.)
  10. MSDN Online Downloads. .NET Framework SDK Beta 1 (англ.)
  11. .NET Framework SDK: Late-Breaking Known Issues (англ.)
  12. 1 2 Principal Design Features of .NET Framework (англ.)
  13. Announcing the .NET Framework 4.7.1
  14. Install the .NET Framework on Windows 10 and Windows Server 2016
  15. Visual Studio 2017 version 15.8
  16. RyuJIT CTP5: Getting closer to shipping, and with better SIMD support (англ.) (недоступная ссылка) (30 October 2014). Проверено 12 августа 2015. Архивировано 31 августа 2015 года.
  17. Criticism Of Microsoft .NET Framework (англ.)
  18. Mobile App Development & App Creation Software — Xamarin
  19. Совместное письмо Novell и Microsoft Сообществу Open Source
  20. 1 2 FAQ: Licensing — Mono
  21. Microsoft Open Sources .NET and Mono - Miguel de Icaza
  22. .NET Core is Open Source | .NET blog
  23. GitHub - dotnet/corefx: This repo contains the .NET Core foundational libraries, called CoreFX. It includes classes for collections, file systems, console, XML, async and many others. We welcome contributions.
  24. GitHub - Microsoft/referencesource: Source from the Microsoft .NET Reference Source that represent a subset of the .NET Framework
  25. .NET Core 1.0 released, now officially supported by Red Hat. Ars Technica. Condé Nast (27 июня 2016).
  26. Announcing .NET Core 1.1 (англ.). .NET Blog (16 November 2016). Проверено 22 января 2017.
  27. Announcing .NET Core 2.0 (англ.). .NET Blog (14 August 2017). Проверено 22 августа 2017.

Литература

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии