Часть 1. Из истории возникновения платформы .NET
Лекция 1
Обзор платформы .NET
(Из книги Симона Робертса и др.)
Часть 1. Из истории возникновения платформы .NET
Под платформой .NET понимается новая, разработанная за последнее десятилетие, многоцелевая технология (фактически новая среда), предназначенная для разработки практически любых приложений, действующих под управлением Windows и других систем.
В свою очередь C# - новый язык программирования, созданный специально для работы с этой платформой.
Слово .NET в названии платформы – не аббревиатура, оно всего лишь подчеркивает уверенность Microsoft в том, что будущее за распределенными приложениями, в которых обработка информации распределена между клиентом и сервером.
Соответственно, C# представляет собой язык (инструментальное средство) для написания сетевых и интернет-приложений.
Если говорить о причинах возникновения платформы .NET, то они сводятся к следующему:
1. По части операционных систем для домашнего компьютера развитие идет от Windows 3.1 (выпущенной в 1992 г.) через Windоws 95, 98, Windows ME (Millennium Edition). При этом офисные системы прошли через Windows NT 3.5, NT 4.0 и т.д., до Windows 7.
Хотя внешне последние версии операционных систем Windows заметно отличаются от Windows 3.1 (a после Windows 2000 система стала иметь совершенно иное ядро), процесс программирования всех этих систем чрезвычайно схож.
Дело в том, что все они имеют в своей основе хорошо известный Windows API.
Всякий раз по мере появления новых версий Windows к этому API добавлялось большое количество новых функций. В целом это был процесс расширения и развития, а не замены API.
В процессе разработки Windows-приложений могут использоваться многие платформы и технологии. Одной из таких технологий является компонентная объектная модель СОМ, которая произошла от OLE (Object Linking and Embedding).
По большому счету обе технологии - это просто метод, с помощью которого различные типы офисных документов могли быть связаны друг с другом; например, с помощью OLEможно было поместить небольшую таблицу Excel в документ Word.
Для этого разрабатывались СОМ, DCOM (распределенная СОМ) и СОМ+ как версии этих технологий.Все онинаправлены на то, чтобы обеспечить взаимодействие практически всех компонентов, работающих под управлением Windows, а также реализовать обработку транзакций и обеспечить службами передачи сообщений и функциями работы с пулом объектов.
Эти примеры показывают эволюционное развитие. Новые технологии, конечно же, появлялись, но основной акцент делался на развитие и расширение существующих технологий. Microsoft выбрала этот путь по одной простой причине обеспечение обратной совместимости с уже имеющимися программными продуктами.
Хотя обратная совместимость является ключевой особенностью технологий Windows и одним из ее наиболее сильных моментов, она обладает огромным недостатком. Каждый раз, когда какая-нибудь технология расширяется и приобретает новые возможности, она становится более сложной. В результате появилось много областей программирования, для которых написание кода стало затруднительным именно потому, что в них предусматривается обратная совместимость с техно логиями, появившимися много лет назад.
Например, СОМ основывается на относительно сложных потоковых моделях, которые являются таковыми лишь потому, что им необходимо сочетать текущую многопотоковую технологию с компонентами, написанными для Windows 3.1, в которой вообще не существовало многопотоковых процессов. COM - хороший пример семейства технологий, чья полезность отрицательно сказалась на сложности, когда даже опытные разработчики сталкиваются с необходимостью тратить много времени на освоение лабиринта интерфейсов GUID (Globally Unique IDentifiers), сложных процессов переносаданных (marshalling) и других низкоуровневых хитростей, которыми пользуется в СОМ.
Ясно, что что-то должно было измениться, Microsoft не могла больше расширять всё те же инструменты и языки разработки, делая их все более и более сложными для удовлетворения конфликтующих между собой требований поддержки современного оборудования и обеспечения обратной совместимости с теми продуктами, которые были созданы в начале 1990-х гг. во время первого появления Windows.
Наступает момент, когда необходимо начать с чистого листа для того, чтобы создать простой, но имеющий сложную структуру набор языков, сред и средств разработки, которые позволят разработчику лег ко создавать современные программные продукты.
С# и .NET являются той самой отправной точкой. Если говорить упрощенно, то .NET представляет собой новую платформу, новый API для программирования в Windows, а С# - новый язык, созданный с нуля, для работы с этой платформой и для извлечения всех выгод из прогресса сред разработки. В нем заложены все принципы объектно-ориентированного программирования, развитые в течение последних 20 лет.
Необходимо отметить, что обратная совместимость не потеряна. Существующие программы в среде .NET будут выполняться. Связь между компонентами в Windows сейчас почти целиком осуществляется при помощи СОМ.
С учетом этого .NET обладает способностью
а) создавать оболочки (wrappers) вокруг существующих компонентов СОМ, так что компоненты .NET могут общаться с ними;
б) создавать оболочки вокруг компонентов .NET, что позволяет им выглядеть как обычные СОМ-компоненты.
Чтобы писать код для платформы .NET, помимо C# можно пользоваться языками C++ и VB.Net. Однако в настоящее время C++ и VB.Net отягощены наследством, приобретенным в процессе длительного развития Windows-технологий. Поэтому писать программы на C# эффективнее, чем на более ранних языках C++ и VB.Net.