ТРКСП   VB7 (.NET)   4GL   ММТ   к экономической информатике     ТП     ООП     Алгоритмизация  

Технологии .NET Framework и Mono

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

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

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

Разработка платформы началась в 1999 году. 13 января 2000 года была озвучена новая стратегия компании, получившая название Next Generation Windows Services (сокр. NGWS, рус. Новое поколение служб Windows). Новая стратегия должна была объединить в единый набор существующие и будущие разработки Microsoft для предоставления возможности пользователям работать с Всемирной паутиной с беспроводных устройств, обладающих доступом в Интернет, как со стационарных компьютеров. Было заявлено, что несмотря на огромные возможности домашних компьютеров, корпорация считает важным обеспечение гарантированной работы служб нового поколения и на устройствах, отличных от ПК, то есть “нетбуках”, опирающихся на серверную поддержку.

Ввиду небольшой мощности источников питания мобильных устройств, хранение и передача приложений должна осуществляться серверами, тогда как на тот момент практически вся пользовательская информация и ПО хранились на стационарных компьютерах локально. Тогда идея перехода к “сервероцентрической” модели имела крепкую поддержку среди руководителей крупнейших IT-компаний, так как сулила обеспечение привязки, зависимости конечного пользователя от сервера.

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

Кроме того, ставилась задача следования всем актуальным тенденциям в области программирования на тот момент. Так, например, новая платформа должна была напрямую поддерживать объектно-ориентированность, безопасность типов, сборку мусора и структурную обработку исключений. Кроме того, корпорации необходимо было предоставить свой ответ набиравшей популярность платформе Java от Sun.

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

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

Первым шагом к новой версии платформы стала Windows 2000, которая являлась одной из частей технологии Windows Distributed interNet Applications (DNA) 2000, в рамках которой была представлена последняя на тот момент схема трёхуровневой модели программирования, впервые представленная на Windows NT 4.0.

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

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

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

Через полгода Microsoft переименовала платформу в Microsoft.Net, объявив при этом, что “стратегия корпорации целиком и полностью будет определяться платформой .Net”, а все продукты Microsoft со временем будут переписаны для поддержки этой платформы. Помимо этого изменения должны были затронуть и серверные приложения — Microsoft SQL Server, Exchange, BizTalk, а офисный пакет Microsoft Office должен был быть преобразован в Office.Net.

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

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

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

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

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

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

Программа для .NET Framework, написанная на любом поддерживаемом языке программирования, сначала переводится компилятором в единый для .NET промежуточный байт-код Common Intermediate Language (CIL) (ранее назывался Microsoft Intermediate Language, MSIL). В терминах .NET получается сборка, англ. assembly. Затем код либо исполняется виртуальной машиной 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

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

Версия

Номер версии

Дата выхода

Visual Studio

По умолчанию в Windows

1.0

1.0.3705.0

1 мая 2002 года

Visual Studio .NET

 

1.1

1.1.4322.573

1 апреля 2003 года

Visual Studio .NET 2003

Windows Server 2003

2.0

2.0.50727.42

11 июля 2005 года

Visual Studio 2005

 

3.0

3.0.4506.30

6 ноября 2006 года

Visual Studio 2005 + расширения

Windows Vista, Windows Server 2008

3.5

3.5.21022.8

9 ноября 2007 года

Visual Studio 2008

Windows 7, Windows Server 2008 R2

4.0

4.0.30319.1

12 апреля 2010 года

Visual Studio 2010

 

Генеалогическое развитие технологий .NET Framework

.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

Версия 2.0 была выпущена одновременно с Visual Studio 2005, SQL Server 2005 и BizTalk 2006. С выходом версии 2.0 была добавлена поддержка настраиваемых (обобщенных, исходных, generic) классов, анонимных методов, полная поддержка 64-битных платформ x64 и IA-64.

.NET Framework 3.0

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

.NET Framework 3.5

Выпущенная в ноябре 2007 года .NET 3.5, как и версия 3.0, использует 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 года. Первая бета-версия появилась 20 мая 2009 года, вместе с бета-версией Visual Studio 2010. Нововведения включают в себя:

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

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

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

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

C#

J# — последний раз был включён в Visual Studio 2005

VB7 (.NET)

JScript .NET

C++/CLI — новая версия Managed C++

F# — член семейства языков программирования ML, включён в Visual Studio 2010

Не встроенные, но активно поддерживаемые языки

Поддерживающие .NET не активно.

Ada — см. A#

APL

Boo, основан на Python

COBOL

Component Pascal (ближе к Oberon чем к Pascal)

Delphi: Delphi 8, Delphi 2005—2010, Delphi XE

Eiffel

Forth

FORTRAN

Haskell

IronRuby — реализация языка Ruby

IronPython — реализация языка Python

Lexico

Lisp

Mercury

Mondrian

Nemerle — гибридный функционально/императивный язык

Oberon for .NET (ETH) — незначительные расширения для .NET. Проект приостановлен.

Oxygene

Perl

PHP

PascalABC.NET

Prolog

RPG

Smalltalk

Zonnon — полностью интегрируется в Visual Studio

Критика реализации технологии Microsoft .NET Framework

Реализация платформы .NET Framework вызывала и вызывает множество нареканий. Одним из главных объектов критики является менее рациональное использование ресурсов системы по сравнению с другими технологиями. Так, например, несколько приложений, выполняющихся в управляемой среде, стремятся захватить больше ресурсов, чем приложения того же типа, но обладающие более прямым доступом к ресурсам компьютера.

Недовольство разработчиков вызывает и тот факт, что управляемый CIL-байткод, не подвергшийся обфускации, легко может быть декомпилирован в сравнении с естественным кодом. Подобная уязвимость может привести к потере коммерческой тайны или дать возможность обхода механизмов контроля соблюдения лицензионных соглашений.

Новые версии платформы (3.5 и далее) вызвали новую волну недовольства тем, что они не предустанавливаются в версии Windows, предшествовавшие выходу Windows 7, что вынуждает пользователей тратить значительное время на их установку.

С технической точки зрения платформа также подвергается критике из-за отсутствия поддержки вызовов Streaming SIMD Extensions (SSE) в управляемом коде. Правда, в Mono решили эту проблему, добавив поддержку SIMD Extensions версии 2.2 в пространство имён Mono.Simd. Ещё одним поводом для критики является поддержка стандартов, фактически ограничивающих кроссплатформенную реализацию .NET Framework, в результате чего полноценная реализация платформы присутствует лишь для Windows. Частично, отсутствие мобильности компенсируется разработкой нескольких версий платформы для мобильных устройств, а также урезанными версиями .NET Framework для других операционных систем. Однако, несмотря на близость стандартов, принятых при разработке этих версий, конечные реализации полной совместимостью не обладают.

Проект Mono

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

Проект возглавляет Мигель де Икаса, известный разработчик, основатель проекта GNOME. Реализации Mono существуют для следующих операционных систем:

Поддерживаются платформы:

ТРКСП   VB7 (.NET)   4GL   ММТ   к экономической информатике     ТП     ООП     Алгоритмизация  

Знаете ли Вы, как разрешается парадокс Ольберса?
(Фотометрический парадокс, парадокс Ольберса - это один из парадоксов космологии, заключающийся в том, что во Вселенной, равномерно заполненной звёздами, яркость неба (в том числе ночного) должна быть примерно равна яркости солнечного диска. Это должно иметь место потому, что по любому направлению неба луч зрения рано или поздно упрется в поверхность звезды.
Иными словами парадос Ольберса заключается в том, что если Вселенная бесконечна, то черного неба мы не увидим, так как излучение дальних звезд будет суммироваться с излучением ближних, и небо должно иметь среднюю температуру фотосфер звезд. При поглощении света межзвездным веществом, оно будет разогреваться до температуры звездных фотосфер и излучать также ярко, как звезды. Однако в дело вступает явление "усталости света", открытое Эдвином Хабблом, который показал, что чем дальше от нас расположена галактика, тем больше становится красным свет ее излучения, то есть фотоны как бы "устают", отдают свою энергию межзвездной среде. На очень больших расстояниях галактики видны только в радиодиапазоне, так как их свет вовсе потерял энергию идя через бескрайние просторы Вселенной. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution