WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 | 3 |

Курс "Обзор перспективных технологий Microsoft.NET"

Для начала

Если вы этого еще не сделали, прочтите, пожалуйста, пояснительный документ под названием «Прочти сначала меня.doc».

Темы курса Курс рассматривает перспективные технологии Microsoft, которые ожидаются в ближайшем будущем, когда слушатели закончат университет. Наличие у выпускника подобных знаний резко повысит его конкурентоспособность на рынке труда. Будут освещены такие технологии как Windows Presentation Foundation, Windows Communication Foundation, Windows Workflow Foundation, Atlas, LINQ и т.д. Также рассматриваются Microsoft Visual Studio.NET 2005 и Microsoft Visual Studio Team System.

Требуемые знания Курс рассчитан на студентов 45 курсов, уже знакомых с Microsoft.NET и имеющих практический опыт работы с платформой. На кафедре системного программирования СанктПетербургского государственного университета этот курс читается после полугодового курса «Платформа Microsoft.NET», в котором слушателям даются необходимые основы. Стоит заметить, что неотъемлемой частью последнего курса являются практические занятия (без которых не принимается экзамен), на которых студенты имеют возможность попробовать все обсуждаемые технологии. Презентации лекций и практические задания можно найти на сайте кафедры http://se.math.spbu.ru/courses/dotnet.

Рекомендуемые знания для слушателей данного курса:

Основы Microsoft.NET. Версия framework не имеет особого значения, это может быть и версия 1.1 и 2.0:

Типы, CLS, CTS Сборки, версионирование, развертывание, GAC и т.п.

MSIL, FCL, JITкомпиляция Сборка мусора Язык C#: основные понятия; атрибуты, рефлексия, основы типов на примере C# и т.п.

Знакомство с Microsoft Visual Studio.NET. Версия продукта не имеет особого значения, но желательно, чтобы это была версия 2003 или 2005. Версии 2005 будет посвящена отдельная лекция этого курса.

Знакомство с основными технологиями.NET. Среди этих технологий:

Windows Forms ADO.NET ASP.NET ASP.NET вебсервисы Remoting Другие знания, не относящиеся в чистом виде к.NET, такие как:

Вебсервисы и стандарты SOA, WSDL, UDDI Основы технологий распределенного взаимодействия Основы баз данных Стоит заметить, что наличия всех этих знаний не требуется: какието из перечисленных вещей потребуются в минимальном объеме, который может быть изложен прямо в момент надобности. Однако преподавателю рекомендуется следить за аудиторией и четко осознавать ее подготовку в тех или иных вопросах. В идеале этот курс стоит читать после аналогичного упомянутому полугодового курса.

Лекция 0. Что было, что будет Первая (то есть, нулевая) лекция дает обзор технологий Microsoft, которые ожидаются в скором будущем, но на данный момент (середина 2006го года) еще не вышли.

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

OLE/COM/ActiveX/DCOM Microsoft Visual Studio 6.0 и COM COM+/MTS/Enterprise Services Появление Microsoft.NET OLE/COM/ActiveX/DCOM Начнем наш экскурс в прошлое с этих четырех (а точнее, двух) технологий. OLE (Object Linking and Embedding, так изначально называлась технология COM) появилась в начале 90х. Технология OLE явилась большим шагом навстречу переиспользованию компонентов на уровне бинарного кода и переросла в дальнейшем в COM и ActiveX. Надо сказать, тут Microsoft породила существенную терминологическую путаницу, и разобраться, какая из этих аббревиатур какое понятие означает, довольно сложно. Поэтому мы будем рассматривать все эти три аббревиатуры вместе: OLE/COM/ActiveX, а для краткости называть COM (Component Object Model).

«COM – это метод разработки программных компонентов, небольших двоичных исполняемых файлов, которые предоставляют необходимые сервисы приложениям, операционным системам и другим компонентам. Разработка компонентам COM подобна разработке динамического объектноориентированного API. Компоненты COM объединяются друг с другом для создания приложений или систем компонентов. Компоненты можно отключать и менять во время выполнения, без перекомпиляции или перекомпоновки приложения» («Основы COM», Дейл Роджерсон).

С помощью COM появилась возможность переиспользовать готовые объекты, встраивая одни объекты в другие; в частности, хрестоматийный пример, который всегда приводился для объяснения COM, повествовал о том, как встроить таблицу Excel в документ Word. Собственно говоря, отсюда пошло первое название этой технологии, содержащее слово «встраивание» (embedding).



Вслед за COM, в 1996 году в Windows NT 4.0 появилась технология DCOM (Distributed Component Object Model), распределенная версия COM. Несмотря на то, что с помощью DCOM стало возможным переиспользовать компоненты, находящиеся на других компьютерах, конфигурировать и настраивать приложения, использующие DCOM, было весьма сложно. Кроме того, DCOM использовал механизм RPC, что приводило со сложностями, связанными с файрволами. К минусам можно также отнести отсутствие DCOM на Windows 95/98.

Microsoft Visual Studio 6.0 и COM В 1998м году вышла Microsoft Visual Studio 6.0, включающая в себя IDE для нескольких языков, таких как Visual C++ и Visual Basic. Довольно долго этот пакет являлся рабочим инструментом для разработчиков в мире Microsoft. Поддержка COM была интегрирована в Visual Studio, особенно просто общаться с COM было возможно из Visual Basic. Однако Visual Basic не годится для системного программирования, стандартом дефакто для которого является до сих пор С++. Работа же с COM из Visual C++ была (и есть) весьма нетривиальной. Вообще, программируя COMприложения, программист сталкивался со слишком большим количеством технических тонкостей, отвлекающих его от непосредственной задачей. Скажем, различия в системе типов между разными языками (можно упомянуть, например, индексацию массивов и строк) требовали написания специальных конверторов. Да и внутри одного языка проблем хватало, чего стоили одни только тонкости подсчета ссылок. Вот, например, выдержка из книги Дейла Роджерсона «Основы COM»:

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

Таким образом, несмотря на шаг вперед в интеграции между языками и поддержке этой интеграции в продукте Visual Studio 6.0, у программистов существовали немалые проблемы. По мнению Дона Бокса, одной из причин ухода COM является отсутствие удобной платформы разработки: «Однако не забывайте, что СOM – это не только модель программирования, но и поддерживающая ее платформа разработки. К сожалению, платформа разработки оказалась слабым местом COM. Чтобы модель COM стала солидно технологией программирования, а не просто идеей или научной дисциплиной, ей не хватило именно устойчивой платформы. По этой причине эра COM ближется к закату».

Проблемы COM Перечислим основные недостатки COM:

Дикая сложность. Действительно, для программирования COM требовалось быть тонким знатоком ее устройства, в частности, механизмов ручного подсчета ссылок, маршалинга (передачи между границами процессов) сложных типов, различия делегирующего и неделегирующего IUnknown и т.п.

Физическая природа контрактов. Об этом очень подробно написано в книге Дона Бокса «Essential.NET, Volume 1: The Common Language Runtime». Приведем небольшую цитату из нее: «В модели СОМ контракт компонента является физическим (т.е. двоичным) контрактом. Следовательно, компонент СОМ предъявляет жесткие требования к межкомпонентным вызовам. Для правильной работы контракта СОМ необходимы точные смещения виртуальной таблицы для каждого метода. Контракт СОМ требует точной дисциплины стека (например, stdcall), используемого при вызове методов, точного смещения каждой структуры данных, передаваемой в качестве фактического параметра метода, точной информации о механизме размещения памяти, используемом вызываемым методом, а также точного формата ссылки на объект (называемого указателем интерфейса). В терминах технологии СОМ контракт компонента это всего лишь протокол формирования кадров стека, полностью лишенный семантики приложения».





Интенсивное использование реестра Отсутствие общей системы типов (у разных языков разные типы, что приводило к тонким ошибкам, В частности, при работы с объектами С++ из VB приходилось писать код для адаптации некоторых типов).

По сути, ориентация на С++ Отсутствие хорошей среды разработки COM+/MTS/Enterprise Services В конце 96 года появился COM+. Под этой аббревиатурой подразумевалось использование DCOM вместе с MTS (Microsoft Transaction Server). COM+ стал следующим шагом в сторону решения сложных инфраструктурных вопросов. В COM+, построенной на основе COM, появилось автоматическое управление транзакциями, пулы ресурсов и пулы потоков, защита на основе ролей и т.д. Именно в COM+ появилось аспектноориентированное программирование.

К недостаткам DCOM и COM+/MTS можно отнести еще большую сложность, чем сложность COM. Вместе с тем COM+ по сути является прародителем.NET. Существенная часть функциональности COM+ перешла в.NET под именем Enterprise Services.

Появление Microsoft.NET В результате длинной и славной истории, описанной выше, появился.NET – не только следующий шаг Microsoft в направлении компонентной разработки, но целая платформа, помогающая в борьбе за удешевление разработки по всем фронтам:

Использование языков более высокого уровня: C#, VB.NET Использование более мощных инструментов поддержки разработки: современная среда разработки Visual Studio.NET Увеличение объема переиспользования собственного кода: новая технология компонентной разработки, основанная на метаданных Увеличение объема использования сторонних библиотек: мощная библиотека классов FCL Хронология событий примерно такая:

Год CTP (Community Technology Preview) Visual Studio 7.0 Beta Год VS Beta 2, Release Candidate Приняты стандарты C# и CLI Год.Net Framework SDK Visual Studio.Net Год Visual Studio 2003 &.NET Framework 1. Год Visual Studio 2005 &.NET Framework 2. Преимущества Microsoft.NET Перечислим основные преимущества платформы Microsoft.NET перед предыдущими технологии компании:

Единая программная модель Упрощенная модель программирования Автоматическое управление версиями Упрощенное развертывание Многоплатформенность (по крайней мере потенциальная J, страстным противникам этого преимущества можно указать на существование проектов Mono, http://www.monoproject.com, http://ru.wikipedia.org/wiki/Mono_development_platform и dotGNU http://dotgnu.org, http://ru.wikipedia.org/wiki/DotGNU) Автоматическое управление ресурсами Проверка безопасности типов Единая среда разработки Возможность отладки многоязыковых приложений Единая модель обработки ошибок Современная модель безопасности Интеграция языков программирования Стандартизация основных частей.NET Эти пункты обычно подробно освещаются во вводном курсе по.NET, но их можно бегло обсудить и в данном курсе.

ASP.NET Отдельно хочется сказать про технологию ASP.NET. Эта технология явилась авангардом, «локомотивом», тянущим за собой платформу.NET. Этому факту есть простое объяснение: для работы с клиентскими приложениями, использующими ASP.NET, не нужен framework, он должен быть установлен только на серверной машине. А в настольных приложениях, где framework нужен, производители ПО вынуждены требовать от пользователя скачать и поставить его (или же framework включался в инсталляционный пакет, существенно «утяжеляя» его). Таким образом, долгое время единственной востребованной технологией из.NET была ASP.NET. Собственно, сейчас этот эффект хоть и смягчился, но все равно наблюдается – ASP.NET приложения преобладают над остальными.

В дальнейшем, надо полагать, что с постепенным распространением.NET Framework (в частности, благодаря Windows Update и переходу на новые ОС Microsoft, которые уже содержат в себе framework) доля desktop приложений среди всех приложений, реализованных с помощью.NET, будет увеличиваться.

Миф о том, что MS не использует.NET В связи с предыдущим слайдом возникает вопрос – а кто же тогда вообще использует.NET? Есть мнение, что и Microsoft сама не особенно использует свою же технологию, предпочитая работать на старом добром Visual C++.

Pages:     || 2 | 3 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.