Опубликован: 19.08.2004 | Уровень: для всех | Доступ: платный | ВУЗ: Национальный исследовательский ядерный университет «МИФИ»

Лекция 3: Платформа.NET и ее применение для объектно-ориентированного подхода к программированию

< Лекция 2 || Лекция 3: 123 || Лекция 4 >
Аннотация: В лекции рассматриваются вопросы, относящиеся к идеологии, технологии и обзору практических возможностей создания программных систем на основе Microsoft .NET – подхода к проектированию и реализации программного обеспечения. При этом подход .NET обсуждается в приложении к специфике объектно-ориентированного подхода к программированию.
Ключевые слова: net, компонентно-ориентированный подход, интерфейс, компонент, повторное использование, среда вычислений, Common Type System, CTS, Internet, веб-сервис, .NET Framework, технологическая платформа, COBOL, FORTRAN, Visual Basic, финансовая деятельности, масштабируемость, интероперабельность, унификация, приложение, application programming, interface, ECMA, computer, manufacturer, association, Common Language Runtime, Common Language Infrastructure, программное обеспечение, символьная обработка, предметная область, опыт, язык программирования, отладка, анализ, компилятор, среда разработки, visual, значение, CLR, управление памятью, развертывание, deployment, многоязычность, Common Language Specification, форма, Windows, ASP, трансляция, исходный текст, SML, сборка, динамически присоединяемая библиотека, dynamic linking, среда времени выполнения, отображение, абстрактная машина, MSIL, microsoft intermediate language, цифровая подпись, безопасность кода, динамическое распределение памяти, компоновка, Just-In-Time, означивание, промежуточный код, JIT, система типизации, программа, система типов, частичная упорядоченность, ISA-иерархия, ISA, высказывание, аналогия, тип-ссылка, тип-значение, вызов, вызов по значению, CBN, вызов по ссылке, CBR, целый, веб-форма, язык гипертекстовой разметки, HTML, markup, language, HTTP, hypertext transfer protocol, XML, определение, Веб-служба, распределение функций, программирование, ООП, пользователь, SUN, брокер объектных запросов, CORBA, Object, management, group, компонентная модель, component, object model, Java Beans, базовая, указатель, операции, механизмы, мегабайт, гигабайт, поддержка, корпорация, список

Исследуем особенности приложения идеологии .NET для проектирования и реализации объектно-ориентированных программ.

Корпорацией Microsoft предложен новаторский компонентно-ориентированный подход к программированию, который является развитием объектно-ориентированного направления. Согласно этому подходу, интеграция объектов (возможно, гетерогенной природы) производится на основе интерфейсов, представляющих эти объекты (или фрагменты программ) как независимые компоненты . Такой подход существенно облегчает написание и взаимодействие программных "молекул"-компонент в гетерогенной среде проектирования и реализации. Стандартизируется хранение и повторное использование компонент программного проекта в условиях распределенной сетевой среды вычислений, где различные компьютеры и пользователи обмениваются информацией, например, взаимодействуя в рамках исследовательского или бизнес-проекта.

Существенным преимуществом следует считать и возможность практической реализации принципа "всякая сущность является объектом" в гетерогенной программной среде. Во многом это стало возможным благодаря усовершенствованной, обобщенной системе типизации Common Type System, или CTS, которая будет подробнее рассмотрена в одной из следующих лекций.

Строгая иерархичность организации пространств для типов, классов и имен сущностей программы позволяет стандартизировать и унифицировать реализацию.

Новый подход к интеграции компонент приложений в среде вычислений Internet (или так называемые веб-сервисы ) дает возможность ускоренного создания приложений для широкого круга пользователей.

Универсальный интерфейс .NET Framework обеспечивает интегрированное проектирование и реализацию компонентов приложений, разработанных согласно различным подходам к программированию.

Говоря о .NET как о технологической платформе, нельзя не отметить тот факт, что она обеспечивает одновременную поддержку проектирования и реализации программного обеспечения с использованием различных языков программирования. При этом поддерживаются десятки языков программирования, начиная от самых первых (в частности, COBOL и FORTRAN) и заканчивая современными (например, C# и Visual Basic). Ранние языки программирования до сих пор активно используются, в частности, для обеспечения совместимости с ранее созданными приложениями, критичными для бизнеса (скажем, COBOL весьма широко применялся для создания прикладных программ, поддерживающих финансовую деятельность).

Применение технологии веб-сервисов – это не просто дань моде на Internet, а реальная (и, пожалуй, наиболее приемлемая) возможность обеспечения масштабируемости и интероперабельности приложений. Под масштабируемостью понимают возможность плавного роста времени ответа программной системы на запрос с ростом числа одновременно работающих пользователей; в случае веб-сервисов масштабируемость реализуется посредством распределения вычислительных ресурсов между сервером, на котором выполняется прикладная программа (или хранятся данные) и компьютером пользователя.

Под интероперабельностью понимается возможность интегрированной обработки гетерогенных данных, поступающих от разнородных прикладных программ. Именно благодаря интероперабельности возможна унификация взаимодействия пользователей через приложение с операционной системой на основе специализированного интерфейса прикладных программ, или API-интерфейса (Application Programming Interface).

Следует отметить и то обстоятельство, что новая технология .NET не только востребована мировой общественностью, но и официально признана, что отражено в соответствующих стандартах ECMA (European Computer Manufacturers Association).

Теперь рассмотрим инструментальные возможности .NET как средства проектирования и реализации программного обеспечения, то есть, собственно, программирования в широком смысле этого слова.

Прежде всего, необходимо отметить поддержку многоязыковой среды разработки приложений CLR ( Common Language Runtime ).

Эта возможность появилась благодаря универсальному межъязыковому интерфейсу Common Language Infrastructure, или CLI, который поддерживает разработку программных компонентов на различных языках программирования.

При этом несомненным преимуществом для программистов является то, что они могут разрабатывать (или дорабатывать) программное обеспечение на наиболее подходящем языке программирования. Здесь следует учитывать характер задачи (скажем, рекурсию или символьную обработку более естественно реализовать на языке функционального программирования, а формализацию структуры предметной области – на объектно-ориентированном языке). Кроме того, необходимо принимать во внимание опыт работы программистов в команде разработчиков и тот язык программирования, на котором изначально создавалась система.

Отметим еще два существенных обстоятельства. Во-первых, основные сервисные возможности для разработчиков, которые предоставляет среда .NET (отладка, анализ кода и т. д.) не зависят от конкретного языка программирования, и, следовательно, программистам нет необходимости заново постигать особенности среды разработки, если требуется перейти с одного языка на другой. Во-вторых, несмотря на то, что еще не все языки программирования поддерживаются .NET, существует возможность самостоятельной разработки транслятора для любого языка программирования, причем это не вызывает трудностей даже у программистов, практически не имеющих профессиональной подготовки в области разработки компиляторов.

< Лекция 2 || Лекция 3: 123 || Лекция 4 >