Концепция и возможности подхода .NET
Попытаемся найти ответ на вопрос: что такое .NET? Несмотря на популярность термина, однозначно ответить непросто, прежде всего по той причине, что ответ представляется многоаспектным.
Итак, можно сказать, что .NET – это подход к проектированию и реализации программного обеспечения, включающий, по меньшей мере, четыре компонента:
-
идеология проектирования и реализации программного обеспечения;
- модель эффективной поддержки жизненного цикла прикладных систем;
- унифицированная, интегрированная технологическая платформа для программирования;
- современный, удобный в использовании, безопасный инструментарий для создания, развертывания и поддержки программного обеспечения.
Остановимся подробнее на каждом из этих аспектов.
Прежде всего, постараемся объяснить идеологию подхода Microsoft .NET.
Самой корпорацией-разработчиком сформулированы приблизительно следующие важнейшие аспекты видения (vision) идеологии .NET:
- легкость развертывания приложений в глобальной среде Internet;
- экономичная разработка программного обеспечения;
- "бесшовная", гибкая интеграция программных продуктов и аппаратных ресурсов;
- предоставление программного обеспечения как сервиса;
- новый уровень безопасности и удобства использования.
Действительно, как мы увидим в ходе лекции, все аспекты видения .NET удалось реализовать на качественно новом уровне, обеспечив существенное продвижение вперед в направлениях гибкости интеграции с программно-аппаратными ресурсами, безопасности и удобства использования кода, а также снижения затрат на производство программного обеспечения.
Рассмотрим подробнее, как идеология .NET претворяется в практические вопросы проектирования программного обеспечения.
Корпорацией Microsoft предложен новаторский компонентно-ориентированный подход к проектированию, который является развитием объектно-ориентированного направления. Согласно этому подходу, интеграция объектов (возможно, гетерогенной природы), производится на основе интерфейсов, представляющих эти объекты (или фрагменты программ) как независимые компоненты.
Такой подход существенно облегчает написание и взаимодействие программных "молекул"-компонентов в гетерогенной среде проектирования и реализации. Стандартизируется хранение и повторное использование компонентов программного проекта в условиях распределенной сетевой среды вычислений, где различные компьютеры и пользователи обмениваются информацией, например, взаимодействуя в рамках исследовательского или бизнес-проекта.
Существенным преимуществом является и возможность практической реализации принципа "всякая сущность представляет собой объект гетерогенной программной среды". Во многом это стало реализуемым благодаря усовершенствованной, обобщенной системе типизации Common Type System, или CTS, которая будет подробнее рассмотрена в одной из следующих лекций.
Строгая иерархичность организации пространств для типов, классов и имен сущностей программы позволяет стандартизировать и унифицировать реализацию.
Новый подход к интеграции компонентов приложений в среде вычислений Internet (или так называемые web-сервисы) дает возможность ускоренного создания приложений для глобальной аудитории пользователей.
Универсальный интерфейс .NET Framework обеспечивает интегрированное проектирование и реализацию компонентов приложений, разработанных в соответствии с различными подходами к программированию.
Говоря о .NET как о технологической платформе, нельзя не отметить тот факт, что она обеспечивает одновременную поддержку проектирования и реализации программного обеспечения с использованием различных языков программирования. При этом поддерживаются десятки языков программирования, начиная от самых первых (в частности, COBOL и FORTRAN) и заканчивая современными (например, C# и Visual Basic). Ранние языки программирования до сих пор активно используются, в частности, для обеспечения совместимости с ранее созданными приложениями (скажем, COBOL весьма широко применялся для создания прикладных программ, поддерживающих финансовую деятельность).
Технология web-сервисов – это не просто дань моде на Internet, а реальная (и, пожалуй, наиболее приемлемая практически) возможность обеспечения масштабируемости и интероперабельности приложений.
Под масштабируемостью понимают возможность плавного роста времени ответа программной системы на запрос с ростом числа одновременно работающих пользователей; в случае web-сервисов масштабируемость реализуется посредством распределения вычислительных ресурсов между сервером, на котором выполняется прикладная программа (или хранятся данные), и компьютером пользователя.
Под интероперабельностью следует понимать возможность интегрированной обработки гетерогенных данных, поступающих от разнородных прикладных программ. Именно благодаря интероперабельности возможна унификация взаимодействия пользователей через приложение с операционной системой на основе специализированного интерфейса прикладных программ, или API-интерфейса (Application Programming Interface).
Немаловажно отметить и то обстоятельство, что новая технология .NET не только востребована мировой общественностью, но и официально признана, что отражено в соответствующих стандартах ECMA (European Computer Manufacturers Association).