Электронная библиотека » Сергей Зыков » » онлайн чтение - страница 12


  • Текст добавлен: 19 января 2017, 18:00


Автор книги: Сергей Зыков


Жанр: Экономика, Бизнес-Книги


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 12 (всего у книги 29 страниц)

Шрифт:
- 100% +
Глава 8
Программная платформа Microsoft.NET

В данной главе будет более подробно рассмотрен подход Microsoft к созданию корпоративных систем. Прежде всего речь пойдет о Visual Studio.NET и вообще о. NET подходе. Не стоит ограничивать. NET чисто технологическим аспектом, так как. NET – это платформа в достаточно широком и глубоком смысле этого слова, т. е. это идеология проектирования программного обеспечения, которая имеет в основе такие принципы, как сервисная ориентированность, интернет-распределенность, командная работа, компонентная ориентированность (интероперабельность) и, что еще интереснее, языковая интероперабельность – создание гетерогенных проектов с компонентами, написанными на разных языках и разными людьми в разных точках земного шара. По сути, речь идет об идеологии производства систем корпоративного типа, при этом платформа является достаточно общей и имеет единую среду в форме виртуальной машины, которая предназначена для создания и поддержки таких систем. На основе математических моделей, разработанных Юрием Гуревичем, моделей абстрактных машин с состояниями, построена виртуальная машина, на основе которой происходит создание приложений Microsoft Visual Studio.NET, являющихся уже технологической надстройкой, т. е. NET – это во многом еще и идеология и модель. Рассмотрим ее более подробно.

Четыре основные аспекта

Хотелось бы выделить четыре аспекта в подходе. NET как платформы для разработки корпоративных приложений:

1) концепция, т. е. общий подход;

2) вычислительная модель – в ее основе лежит достаточно формальная математическая модель. Это некая более реальная реалистичная формализация, но тем не менее тоже фактически модель вычисления на компьютере достаточно общего вида. Так же, как в Java-подходе, имеется виртуальная Java-машина, которая работает на любой платформе, так и здесь есть виртуальная машина высокого уровня, в терминах которой компилируется код на различных языках программирования, но эта платформа ограничена множеством ОС Windows;

3) технологическая платформа;

4) инструментальная средства Visual Studio.NET.

Достаточно важным является подход к реализации системы управления этой виртуальной машиной, которая называется Common Language Runtime (CLR) и подразумевает выполнение компонентов программы, написанных на различных языках. Платформа включает среду реализации, среду вычисления с точки зрения абстрактных (виртуальных) машин и. NET Framework общей надстройки, которая представляет собой семейство базовых системных классов. При этом система типов также является достаточно универсальной, т. е. общей common type system (CTS). По сути, с одной стороны, это система типов, которая принята в C#, а с другой – в эту систему типов подгружается на самом деле система типов любого языка программирования, который написан для этой среды.

Одним из достаточно ранних курсов, реализованных в Санкт-Петербургском государственном университете для. NET, является курс создания компилятора для. NET. Он был написан для студентов второго курса, которые за один семестр могли создать компилятор некоего подмножества языка C# для. NET. То есть речь идет о том, что не только на тех языках, которые реализованы для. NET, но и вообще на этой платформе возможно реализовать произвольный язык, если правильно погрузить его в термины виртуальной машины, и, конечно, типы языка, каким бы он ни был, будут оттранслированы в семейство CTS.

Еще одним важным принципом реализации концепции. NET является предоставление ПО как сервиса. На самом деле эта идеология присуща не только Microsoft, но и Java или подходу IBM SOA, но в рамках подхода. NET есть множественные реализации, которые связаны с различным образом организованными сервисами: это веб-сервисы, технология Remoting, более поздняя технология WCF и др., скажем ASP, технологии, связанные с веб-формами, и целый ряд других технологий, которые предназначены для реализации ПО как сервиса и распространении SOA по сети Интернет.

Первое, что приходит на ум при словах «распространение по Интернету», – это вирусы. В этой связи нужно сказать, что важным акцентом после известных событий 11 сентября для Microsoft является безопасность. Платформа. NET во многом ориентирована на реализацию этого принципа безопасности, и компоненты, которые создаются в рамках платформы. NET, учитывают это.

Одним из направлений реализации и принципом подхода SDL (Secure Development Lifecycle) является Seсure by Design, т. е. собственно проектирование ПО ведется таким образом, что оно является изначально безопасным. Во многом на это нацелена идеология. NET и ее компонентная ориентированность механизма сборок assembler, т. е. самодостаточных компонентов для разворачивания ПО, который является основой идеологии. NET и защищен такими средствами, как цифровая подпись, имя автора и версии сборки и целый ряд других аспектов, позволяющих обеспечивать высокую безопасность создаваемого ПО как покомпонентно, так и в целом для корпоративных приложений, строящихся на основе интероперабельности – постоянно взаимодействующих и меняющихся объектов.

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

Прежде всего речь пойдет о технологии Windows Forms и Web Forms, достаточно важных технологиях создания, в том числе и корпоративных приложений, которые обеспечивают стандартизацию пользовательских интерфейсов и взаимодействие в среде Интернет на основе этих интерфейсов. Конечно, мы посмотрим на. NET. Отчасти в сравнении с Java весь San Microsystems тоже имеет достаточно древний и апробированный подход, который называется EJB, по сути, компонентное проектирование тоже на основе виртуальной машины, и даже в различных ОС, не только Windows. Но с языковой точки зрения интероперабельность – подход немного беднее. Мы обсудим некоторые параллели, преимущества и недостатки. NET, которые выявлены и существуют, в том числе и в аспекте проектирования корпоративных приложений.

Что такое Microsoft.NET

Не совсем верно рассматривать. NET как исключительно технологическое средство, платформу. По сути, это достаточно комплексная идеология проектирования ПО, в том числе и корпоративного типа.

NET включает следующие основные аспекты (послойно, от более абстрактного уровня к более конкретному):

1) идеология проектирования и реализации программного обеспечения;

2) модель эффективной поддержки жизненного цикла прикладных систем;

3) унифицированная, интегрированная технологическая платформа;

4) современный, удобный в использовании, безопасный инструментарий для создания, размещения и поддержки программного обеспечения.

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

Кроме того, это модель, в том числе и математическая, достаточно эффективной поддержки ЖЦ программных систем – от концептуальной постановки задачи проектирования до реализации, внедрения, разворачивания по сети Интернет одним кликом приложения и сопровождения. Это технология, обеспечивающая унифицированное проектирование с точки зрения использования открытых протоколов и средств взаимодействия SOA, HTTP, XML, UDDI, WSDL, других стандартов и, наконец, это современный, удобный в использовании и безопасный инструментарий командной разработки больших систем, который поддерживает все этапы ЖЦ – создания, разворачивания, размещения и сопровождения поддержки ПО.

Итак, рассмотрим более подробно основные аспекты. NET.

В чем состоит видение Microsoft этой идеологии?

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

Идеология и основные принципы. NET

NET как идеология (vision) – это:

1) легкость развертывания приложений в глобальной среде Интернет;

2) экономичная разработка программного обеспечения;

3) бесшовная, гибкая интеграция программных продуктов и аппаратных ресурсов;

4) предоставление программного обеспечения как сервиса;

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

1. Важным аспектом является легкость разворачивания приложения в глобальной среде Интернет. На сегодня в Microsoft реализован инструментарий ClickOnce, который позволяет осуществить разворачивание программных системы одним щелчком мыши.

2. Еще один аспект идеологии. NET – экономичная разработка ПО. Здесь речь идет и об экономии средств людских, временных ресурсов при командной работе, которую обеспечивает Visual Studio.NET как инструмент технологический, и собственно о том, что идеологически проектирование представляет собой создание компонентов, неких молекул функциональности, из которых и строится то самое вещество программного продукта корпоративного типа, который благодаря открытым интерфейсам может достаточно гибко и в относительно сжатые сроки с небольшими трудозатратами трансформироваться согласно требованиям программной среды и большого количества различных типов пользователей.

3. Также важным идеологическим аспектом. NET является интеграция программных продуктов и аппаратных ресурсов, которую можно охарактеризовать как бесшовную, гибкую. Вообще, если рассматривать производство ПО как задачу, то можно заметить, что изначально это было искусство, т. е. фактически ручное изготовление штучного товара. Позже наступил период, когда кустарей-одиночек сменили программные проектные команды, создающие ПО с использованием более серьезного инструментария. В настоящее время существующие сборочные конвейеры, такие как Visual Studio.NET и др., позволяют во многом стандартизировать режим и на основе стандартных компонентов вести сборку очень сложных систем, включающих сотни тысяч индивидуальных программных моделей, достаточно сложно взаимодействующих друг с другом. Сегодня все, что строится в мире ПО, во многом связано с интеграцией, т. е. в идеале новое ПО не производится, принципиально новая функциональность даже при создании нового продукта составляет от силы 10–15 %, все остальное – это уже ранее использованное решение, которое просто повторно применяется, и интеграция новых функциональных моделей компонентов с уже реализованными частями, фрагментами программ продуктов.

4. Еще один важный элемент идеологии – предоставление программного обеспечения как сервисов. То есть, с точки зрения пользователей, это фактически может выглядеть как некий сайт со средствами, которые предоставляют достаточно гибкие возможности для выполнения запросов в стандартном интерфейсе, и, по сути, функция ПО может быть реализована как сервис, распределена по интернет-сети и доступна по правилам доступа большому количеству пользователей.

5. Еще два важных аспекта идеологии. NET – новый уровень безопасности и удобства использования.

По поводу удобства: Microsoft удалось завоевать достаточно большое количество пользователей во многом потому, что ОС, которые она предоставляет, являются достаточно удобными с точки зрения удобства пользования (usability) – это хорошие средства, позволяющие достаточно быстро решать сложные или типовые задачи одним щелчком или с помощью мастеров для решения типовых задач. В Microsoft одна из самых сильных команд специалистов по usability. И многие пользователи уже привыкли к интерфейсу Microsoft.

Безопасность – это стратегический приоритет корпорации, и, конечно, NET как идеология не может не отмечать важность этого приоритета и широко его применять.

NET как вычислительная модель

1. Компонентный подход как развитие объектно-ориентированной модели.

2. Универсальная система типизации: «всякая сущность есть объект»; унификация данных и метаданных.

3. Строго иерархическая организация кода, пространств имен и классов.

4. Универсальный интерфейс. NET Framework (включая поддержку различных подходов к программированию).

5. Высокая вариативность экземпляров реализации (в частности, на основе веб-сервисов).

Рассмотрим особенности вычислительной модели работы. NET, как подхода к созданию, в том числе больших корпоративных систем.

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

Еще одним важным аспектом вычислительной модели является универсальная или обобщенная система типизации Common Type System. Здесь реализуется достаточно инновационный подход Microsoft, который сводится к декларации, что каждая сущность есть объект. То есть речь идет о чисто объектно-ориентированном подходе и попытке реализовать эту идею, а также об унификации данных и метаданных. Во всяком случае появляется достаточно хорошее средство использования метаданных. Репозиторий метаданных реализован достаточно эффективно, в частности, следует отметить средство Reflection, которое позволяет восстановить код по метаданным класса. Сборка или представление компонента включают в себя все метаданные, которые необходимы для разворачивания этого компонента как части программного продукта.

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

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

Для. NET реализован целый ряд языков программирования, которые транслируются во внутреннюю среду абстрактной или виртуальной машины. NET. Это прежде всего родной язык. NET Си#; это F#, который, по сути, является развитием языка SML, т. е., с одной стороны, он во многом является функциональным языком, но с другой – реализует и некоторые аспекты ООП, поскольку функция является объектом модели и язык моделирует объектный подход; ряд языков Cobol, Fortran, которые использовались в большом количестве унаследованных проектов, и. NET, позволяет портировать проекты унаследованных приложений, в том числе корпоративных, которых очень много.

Языки логического программирования, такие как Prolog, поддерживаются в. NET, и любой новый или известный язык в виде компилятора для. NET можно реализовать самостоятельно.

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

Перечислим основные особенности технологической платформы. NET.

Многоязыковая поддержка. Нет ни одной другой платформы, на которой можно использовать так много языков программирования, как в. NET: всего их насчитывается около сотни.

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

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

Независимо от языка программирования и программной модели поддерживается унификация доступа к библиотекам за счет общего интерфейса с виртуальной машиной. NET. Здесь используется аналог API-интерфейса, т. е. открытого интерфейса на основе классов, который можно достаточно гибко настраивать.

Также важно отметить, что. NET во многом соответствует современным технологическим стандартам. Язык C# сейчас фактически стандартизован европейской ассоциацией стандартов, и во многом используются стандартные протоколы обмена и стандарты таких данных, как HTTP, XML, UML, SOAP, протоколы взаимодействия.

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

При реализации бизнес-логики и интерфейса их, конечно, необходимо разделять. Бизнес-логику лучше реализовать на Прологе как набор условий и логических альтернатив, другой подход – сделать это на функциональном языке, таком как F#, а интерфейс можно достаточно легко реализовать на C#, который включает все механизмы взаимодействия с Windows и библиотеками. NET Framework наиболее быстрым и прозрачным способом, т. е. различные компоненты достаточно быстро реализуются.

И в этом смысле у. NET практически нет альтернатив, такого большого спектра языков и разнообразия подходов больше не найти. Причем сервисные средства. NET, такие как отладка, анализ кода и т. д., поддерживаются для всех без исключения языков, реализованных в рамках Visual Studio. То есть на каком бы языке ни велась разработка, программист получает все сервисные возможности, интегрированные в среду разработки. Как было сказано ранее, можно разрабатывать собственные языки программирования, это достаточно интересно и актуально. Одним из современных направлений развития программной инженерии является создание программного обеспечения на основе DSL – предметно-ориентированных языков, т. е. языков для приложений того или иного рода, той или иной предметной области.

Можно заметить, что одни языки разработаны Microsoft, другие – сторонними организациями и т. д. То есть существует бесконечное их разнообразие, поскольку есть возможность создать любой язык, погрузить его в. NET и экспериментировать.

Посмотрим на архитектурную схему: сбоку, интегрируя все доступные сервисы (рис. 8.1), начиная с уровня естественного языка, с уровня исходного кода на языке программирования, находится Visual Studio.NET – как средство разработки, оно интегрирует все особенности платформы. Основой для программирования являются различные языки программирования. Работа происходит в исходном тексте, в стандартном редакторе Visual Studio.NET, при этом на любом языке. Типы этого языка, какими бы своеобразными они ни были, транслируются автоматически при трансляции кода в стандартные системные типы. NET, т. е. имеют место трансляции в типы Common Language Specification (CLS). Далее используются на уровне пользовательского интерфейса различные веб-формы, веб-сервисы, скажем, средства SP.NET Windows Forms, технологии, связанные с. NET Remoting, и т. д. На уровне взаимодействия с данными используются технологии ADO.NET и т. д., слабоструктурированные данные могут преобразовываться по средствам форматов в стандарты XML. Естественно, все взаимодействие со средой выполнения строится на основе базовых классов. NET Framework, которые едины для любого языка программирования, строятся на основе компонентов, берущих свое начало в базовых классах. И все трансляции осуществляются в термины ассемблера высокого уровня – это ассемблер Common Language Runtime (CLR), т. е. виртуальной машины. NET (рис. 8.2).


Рис. 8.1. Архитектурная схема. NET Framework и Visual Studio.NET


Рис. 8.2. Схема компиляции в Common Language Runtime


При компиляции некоторого модуля программного текста, который написан на том или ином языке, запускается компилятор, зависящий от языка программирования, но среда у них общая, и в итоге получается сборка в форме DLL или EXE, который содержит все необходимые метаданные, чтобы развернуть и запустить эту сборку в составе корпоративного приложения.

Естественно, трансляция осуществляется в терминал языка MSIL – это ассемблер высокого уровня, который в 3–5 раз плотнее, чем обычный ассемблер, если рассматривать, например, процессор Intel 8086 или ассемблер Z80.


Рис. 8.3. Схема выполнения CLR


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

Основные возможности, которые предоставляет среда CLR:

• поддержка стандартных типов и правил создания новых типов;

• межъязыковая интеграция:

– включение в код на одном ЯП классов на другом ЯП;

– обработка исключений из программы на одном ЯП программой на другом ЯП;

– и т. д.

• единый набор библиотек классов для всех поддерживаемых ЯП;

• самоописываемые компоненты – не требуют дополнительных файлов (IDL, TLB, Proxy/Stub и т. п.); компонент является самодостаточным, имеет всю необходимую информацию для встраивания его в программный продукт и разворачивания;

• поддержка версий компонентов и сборок кода;

• сервисы безопасности (запрет неавторизованного доступа к ресурсам для пользователей – Role-Based Security, доступ на основе безопасности кода – Code-Based Security и автор кода, версия сборки и др.).

Рассмотрим работу универсальной системы типизации (рис. 8.4).

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

Типы-ссылки – это классы, интерфейсы, массивы, делегаты и т. д.

Типы-значения – это перечислимые типы структуры и простые типы, такие как целочисленный, логический и т. д. Все типы, определяемые пользователями, фактически являются типами-ссылками. Таким образом, имеет место строгая иерархия классов.


Рис. 8.4. Универсальная система типизации (UTS)


В основе архитектуры. NET лежит понятие «сборка».

Сборка кода (assembly) – группа ресурсов, типов и метаданные, описывающие эти ресурсы и типы, необходимые для функционирования компонентов. Сборка реализуется как единое целое. Сборка – это самодостаточная единица кода.

К особенностям сборок кода прежде всего относятся следующие:

• сборка распространяется и реализуется как единое целое;

• метаданные сборки содержат информацию о зависимостях между ресурсами, версиях и т. п.;

• сборка характеризуется номером версии (последняя, специфичная и т. п.).

На уровне сервисов архитектура выглядит следующим образом:

• принцип. NET – «ПО как сервис»;

• следующий уровень архитектуры – уровень сервисов (рис. 8.5);

• сервисы доступны на уровне классов любого ЯП для. NET.

На нижнем уровне архитектуры существуют системные сервисы Microsoft Windows. На более высоких уровнях – различные надстройки, сервисы для работы с данными, сервисы интерфейсные и т. д. Сервисы. NET находятся на более высоком уровне, чем сервисы для Windows.


Рис. 8.5. Архитектура. NET – уровень сервисов


И для любого языка программирования, который реализован для. NET, мы можем использовать эти системные сервисы. NET, это фактически просто элементы классов. NET, которые доступны для любого языка.

Абстрактная машина. NET. CLR располагается над уровнем сервисов ОС (Windows CE, Windows ME, Windows 2000, Windows.NET).

Системные сервисы располагаются над CLR (доступ – через библиотеки классов): доступ к функциям ОС, управление данными, отладка, другие сервисы и т. п.; еще выше – компоненты и сервисы для разработки веб-узлов, веб-сервисов, пользовательских интерфейсов (GUI).

Веб-приложения – архитектура клиент – сервер с доступом пользователей к данным через веб-браузер (технология ASP.NET).

Распределенные приложения на основе иных механизмов удаленного взаимодействия компонентов XML Web Services – на основе открытых стандартов, NET Remoting – на основе внутренних протоколов Microsoft и целый ряд других подходов.

По сути, NET представляет собой виды базовых классов для сервисов:

• доступ к сервисам ОС (Windows CE, ME, 2000, NET);

• доступ к графическим функциям (двумерная графика, обработка изображений, шрифты, в том числе технология ClearType, интеграция с GDI и DirectX);

• сетевые функции;

• управление потоками;

• глобализация;

• криптография;

• доступ к данным (библиотека классов ADO+ и OLE DB-драйверы);

• классы для средств разработки (отладка, трассировка, управление ресурсами, компиляция, установка ПО, протоколирование событий и т. д.);

• другие классы (в том числе поддержка протокола SOAP).

Назначение Windows Forms – обеспечение разработки традиционных Windows-приложений на основе сервисов Microsoft.NET и соответствующих библиотек классов.

Особенности разработки – унификация доступа:

• к библиотекам классов;

• механизмам распространения сервисов;

• механизмам поддержки версий;

• сервисам безопасности.

Вывод: создание Windows-приложений в архитектуре Microsoft.NET дает разработчикам существенные преимущества, поскольку огромное количество классов уже реализовано, и остается заполнить пробелы только с реализацией бизнес-логики по сравнению с традиционным API-ориентированным подходом.

Назначение Web Forms — основа веб-сервисов и веб-приложений в архитектуре Microsoft.NET.

Особенность – программная модель основана на ASP+ – новом поколении активных серверных страниц (эволюция технологии ASP – более 1 млн разработчиков).

Идея веб-форм (из Visual Basic 6): отделение логики веб-приложения от интерфейса (за счет объединения в рамках формы ASP– и HTML-кода).

Преимущества:

• более строгая структурированность приложений;

• широкий спектр (серверных) интерфейсных элементов;

• простая и мощная объектная модель;

• легкость разработки (и масштабирования) веб-приложений.

Основное средство для разработки приложений и сервисов в архитектуре. NET – Microsoft Visual Studio.NET (современная версия Microsoft Visual Studio).

Вот какого рода веб-сервисы можно создавать в. NET, так выглядит общая архитектура (рис. 8.6).


Рис. 8.6. Веб-сервисы в. NET


Веб-сервисы в. NET:

1) программируемые компоненты приложений, доступные посредством стандартных интернет-протоколов;

2) центральная часть архитектуры. NET;

3) распределяют функциональность по глобальной сети;

4) строятся на существующих и развивающихся стандартах: HTTP, XML, SOAP, UDDI, WSDL.

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

Поддерживаемые форматы: HTTP, XML, SOAP, UDDI, WSDL и др.

Компонентное программирование в. NET. Компоненты – это:

• независимые, повторно используемые и тиражируемые модули, из которых строятся приложения;

• в целом более крупные, чем объект (объекты – конструкции уровня ЯП);

• могут содержать множественные классы, которые реализуют большое количество объектов;

• независимы от языка реализации.

В общем случае разработчик и пользователь компонента территориально разделены и пользуются разными языками программирования в единой среде. NET.

Компонентная объектная модель (COM):

• основной стандарт Microsoft для компонентов;

• содержит протокол для инициализации и использования компонентов внутри одного процесса, между процессами или между компьютерами;

• основа для ActiveX, OLE и многих других технологий взаимодействия;

• поддерживается в Visual Basic, C++, NET и др.

Модель Java Beans:

• основной стандарт Sun Microsystems для компонентов;

• зависима от языка реализации.

Сравнение компонентно– и объектно-ориентированного программирования.

Основные понятия объектно-ориентированного программирования:

• класс (class);

• интерфейс (interface).

Основные понятия компонентно-ориентированного программирования:

• свойство (property);

• событие (event);

• сборка (assembly).

Говоря об основных возможностях. NET, следует отметить, что кроме плюсов существуют и значительные недостатки.

Наиболее существенные недостатки. NET:

1) высокие требования к аппаратному обеспечению (минимум 256M RAM, 10G HDD для работы с Microsoft Visual Studio.NET);

2) сложности работы с некоммерческими релизами программного обеспечения (некоторая неустойчивость, отсутствие полномасштабной документации); сервис – это не всегда надежно и предсказуемо. Не всегда имеется документация. Некоторые языки не до конца стандартизованы, а некоторые не до конца реализованы как продукты;

3) поддержка ряда теоретически интересных и практически полезных языков программирвоания не в полном объеме (SML для Visual Studio.NET – в процессе реализации);

4) инструментарий. NET и компиляторы для языков программирования не ратифицированы по международным стандартам.

Платформа. NET – выводы.

1. Стратегическая идеология – это и технологическая платформа, и подход, который определяет стратегию Microsoft на ближайшее десятилетие.

2. Несомненное качественное превосходство над аналогами (Borland Delphi, Microsoft Visual Studio и др.) за счет:

• интероперабельности и межъязыкового взаимодействия;


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | Следующая
  • 0 Оценок: 0

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации