MS Project Download
Имя: Пароль:
Забыли пароль?

Статьи

Методика управления проектами [86]

Методические пособия и книги [28]

Готовые отраслевые решения [60]

Обзоры программ для управления проектами [63]

События в мире Управлениия Проектами [129]

Сравнение разных программ для управления проектами [26]

Обучение и сертификация [54]

Управление рисками [4]

Опыт внедрения [38]

Разрешение проблем MS Project и др. системах [4]

Скачать Microsoft Project [3]

Администрирование MS Project Server [36]

Разработка для Microsoft Project [5]


472 пользователей нашли статью интересной, если согласны нажмите тут 
30.11.2013

Чудеса Wrapper: Ускорение MS Project в 10 раз и независимость от коррекций будущих технологий Microsoft

Владимир Иванов

В этой статье я хотел бы поговорить о технологии, которая в 2014 году для очень многих приложений сделанных для продуктов Microsoft, в том числе MS Project, может дать воистину чудесные результаты. Программы могут начать работать в 10 раз быстрее, стать более надежными, и обладающими эффектом совместимости даже при больших коррекциях в технологиях платформенных вендоров. Об этом надо писать, тем более, что мы ее хотим сделать технологией с открытым кодом (Open Source) для MS Project. Поэтому все эти чудеса будут доступны бесплатно любым корпоративным разработчикам под MS Project.

Перед тем как описать в чем суть технологии "Панциря" (Wrapper) давайте поговорим от чего такие "Панцири" стали надевать партнеры Microsoft и почему весь 2013й год многие партнеры Microsoft интенсивно инвестировали в эти "доспехи". Огромное ускорение и повышенная надежность тут вторичные эффекты. Первичной была стратегия партнеров Microsoft защитить свои инвестиции в разработки от "броуновских движений" в стратегиях платформенных вендоров как Microsoft или Oracle. В случае Microsoft, например, на самом деле до выборов нового руководителя корпорации никто не знает какие технологии Microsoft будет продвигать, а какие закроет. Например, сейчас Microsoft объявил, что закроет либо проект Windows RT или Windows Phone. Может быть закрыт проект XBOX и куплен box.com, как хочет Эллоп. Какой проект MS закроет или откроет, не знает никто, включая Билла Гейтса, фактически битва за пост главы Microsoft - это конкуренция разных технологических стратегий развития в том числе. Поскольку ввиду неопределенности стратегии Microsoft  партнеры стали защищать свои инвестиции в разработки технологией "Панциря" (Wrapper). Такая технология делает разработчика в целом независимым от платформенного вендора и позволяет ему с очень маленькими трудозатратами мигрировать между его новыми продуктами. Клиентам очень важно понимать сейчас применяет ли "Панцирь" для своего решения партнер Microsoft или нет, т.к. если не применяет, то существует угроза технологической несовместимости при очередной "гениальной идее" где-то в Редмонде.

В чем суть концепции технологии Wrapper? На деле она чрезвычайно проста. Партнер Microsoft отказывается от прямого использования платформы Microsoft и заменяет функции (API) платформы на ровно такие же свои, которые в свою очередь вызывают уже функции Microsoft. Вроде бы действия почти бессмысленное на первый взгляд, т.к. вызывается все равно функция Microsoft. Но это не так. Дело в том, что до вызова функции Microsoft партнер может сделать какие-то свои действия. Например, "кешировать" вызов функции Microsoft. В случае Microsoft Project, партнер в таком случае, получает решение, которое работает примерно в 10 раз быстрее, чем например макрос написанный для MS Project. Ниже на графике наш лаборант сделал тест год назад первых "врапперов" для MS Project. Как видите, даже простые прототипы 2х разных "Панцирей" показывали ускорение обращения к задачам проекта в 10 раз.


Скорость перебора строк проекта MS Project через обычное API в макросах и через "врапперы", последние ускоряют MSP в 10 раз
График показывает время выполнения перебора задач проекта в секундах для 100 разных замеров.

Ускорение достигается за счет того, что Wrapper запоминает либо в массиве, либо в "списке", предыдущее значение, возвращенное через API от Microsoft. В следующий раз когда делается вызов уже не требуется запускать медленную функцию Microsoft, а значение извлекается из "кеша". Это дает не только огромное ускорение, но и повышает надежность, т.к. чем меньше вызываешь функции Microsoft, тем меньше вероятность, что там что-то упадет.

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

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

Wrapper'ы - это очень важная технология, которая делает быстрее и надежнее приложения и делает их независимыми от внезапных коррекциях в технологических стратегиях вендоров.

Мы решили сделать такую технологию Open Source и приглашаем разработчиков под Microsoft Project в проект такого "Панциря" для собственных разработок.

Для этого я открыл отдельную группу на Facebook. Вступившим в эту группу мы дадим доступ к исходному коду нашего Wrapper.

 

Расскажите о статье друзьям

Вы не вошли под своим пользователем на MicrosoftProject.ru.
Рекомендуется нажать "Закрыть" и зарегистрироваться на сайте.
Зарегистрированные пользователи, выступающие как редакторы,
имеют различные бонусы по доступу к закрытым материалам.
Если Вам не важны бонусы, можете отправить правку прямо сейчас.

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

Если вы заметили любую ошибку в статье, вы можете сообщить об этой ошибке редакторам сайта, выделив мышью отрывок текста с ошибкой и нажав Ctrl+Enter. Ваша помощь в улучшении материалов для нас неоценима!

© 2003-2017, Портал MicrosoftProject.Ru. Все права защищены.

E-mail: обратная связь