Основы проектирования корпоративных систем - Сергей Зыков
Шрифт:
Интервал:
Закладка:
Подводя итог, следует отметить, что компонентный подход является развитием объектно-ориентированного подхода к разработке программных систем и имеет ряд важных преимуществ. Во-первых, это снижение стоимости разработки программного обеспечения, прежде всего прикладного, в данном случае корпоративных систем. Во-вторых, появляется больше возможностей для повторного и многократного использования кода. Тот код, который создан в виде сборок, имеет стандартные интерфейсы, реализует стандартные функции, и если проектирование ведется целенаправленно, с целью обеспечить максимальную долю многократно используемого кода, то композиция компонентов будет произведена таким образом, что эти самые компоненты, эти самые сборки пригодятся разработчикам при использовании в новых проектах. При этом, естественно, если потребуется коррекция кода программных продуктов, которые были разработаны, во-первых, можно ограничиться крайне незначительным изменением, в идеале – одной сборки или небольшого количества сборок, которые взаимосвязаны или связаны с той функциональностью, которая меняется или дорабатывается в рамках нового технического задания или нового соглашения, разработанного с заказчиком. И во-вторых, концепция компонента является универсальной и не зависит от подхода к разработке программных систем. Неважно, создается ли код на объектно-ориентированном или на функциональном языке, в рамках. NET с точки зрения CLR то, что разработано, есть компонент. Будь это dll библиотека или exe-модуль. Важно, что этот компонент можно переработать, если нужно переработать только его или только несколько компонентов, а остальной продукт оставить без изменений. Используя стандартные интерфейсы, можно переработать эти компоненты на любых языках программирования, или просто выбросить одни компоненты и заменить их другими, используя те языки программирования, которые поддерживаются. NET, а прочие компоненты оставить без изменения и таким образом обеспечить экономичную разработку, высокий процент повторного использования и хорошую сопровождаемость. То есть вносить изменения быстро и в ограниченные фрагменты кода.
И последнее замечание, которое хотелось бы сделать: компонентный подход к разработке приводит к построению приложений, которые являются масштабируемыми, которые можно настраивать и продавать покомпонентно или какими-то блоками, модулями. И с другой стороны, таким образом можно прийти к коробочным, тиражируемым решениям или решениям, которые нужно совсем незначительно изменять, чтобы они удовлетворили следующего клиента, следующего потребителя.
Глава 14
Разработка офисно-ориентированных систем по технологии VSTO
Перейдем к офисным приложениям, или библиотеке приложений на основе Microsoft Office System, которая поддержана Visual Studio Tools для. NET. Естественно, офисные приложения строятся на основе компонентной модели, при этом они могут включать как компоненты в форме сборок для. NET, так и сторонние объекты, например разработанные в рамках COM-модели. Но здесь над. NET как платформой появляется еще одна настройка, которую тоже можно назвать платформой, – Microsoft Office System. То есть появляется новая среда разработки и новая среда или новый уровень среды разработки и функционирования компонентов приложения. Будет обсуждено, какие преимущества имеются у Microsoft Office при использовании ее как платформы, какие средства интеграции используются для Microsoft Office System с известной и достаточно мощной средой разработки Microsoft Visual Studio.
Существует специальное средство, которое называется Microsoft Visual Tools for Microsoft Office System. Как применяется CLR, как среда CLR управляет приложениями, которые созданы на такой сложной, уже, наверное, трехступенчатой системе, где внизу находится Windows, далее – библиотека классов. NET Framework, затем, на уровень выше, – библиотека классов для офисных приложений Microsoft Office System. Более того, будет обсуждено, какие преимущества дает Visual Studio Tools for Microsoft Office, или VSTO. Будут рассмотрены элементы, которые содержатся в 2005 VSTO, в том числе по сравнению с предыдущей версией 2003, какие компоненты можно строить для расширения Office. Также будут затронуты панели действия, Smart Tag. Если написать в Microsoft Word некоторое слово, которое является, предположим, географическим названием, оно выделяется особым образом – при наведении мыши появляется буковка I, и слово подсвечивается, поясняется, что это Smart Tag и где это слово находится на карте. Каким образом осуществляется поддержка на уровне схем, что такое кэширование данных и их размещение в оперативной памяти и использование при частой потребности в них. Каким образом осуществляется связь приложений Microsoft Outlook с другими офисными приложениями. Как реализована модель безопасности, насколько тесно она интегрирована с общей моделью безопасности в среде. NET. Каким образом осуществляется модель развертывания приложений. Как работает технология ClickOnce, которая работает и для офисных приложений, не только для приложений. NET. И посмотрим на Actions Pane – модель команд, как реализовать код, который осуществляет создание меню, создание кнопок меню и обработку событий связанными с этими кнопками.
Следует сказать, что сейчас Microsoft Office System представляет собой единую среду взаимодействия большого количества офисных приложений. Это уже упомянутые нами Word, Outlook, Excel и другие приложения, в том числе в версии 2005 появилась поддержка Info Path – средств поиска. И в целом стратегия компании Microsoft сводится к тому, чтобы на основе обобщенной объектной модели, COM-модели, обеспечить взаимодействие всех продуктов Microsoft Office. И до того как рассмотреть расширения для Visual Studio for Microsoft Office System, нужно обсудить саму платформу.
Выясняется, что средства взаимодействия на основе, например, Object Linking and Embedding (OLE) существуют достаточно давно, и вообще интеграция офисных приложений ведется Microsoft уже более 10 лет. Существуют уже три модели интеграции бизнес-приложений с Microsoft Office. Это ручная интеграция, внешняя автоматизация и интеграция на уровне приложений. Кроме того, существует модель, которая поддерживает обмен данными на основе документов. Ручная интеграция представляет собой обмен информацией в режиме Cut&Paste, например, когда из одного приложения, из Excel или Access, вырезается диаграмма и вставляется в Word. Важные недостатки этой интеграции – низкая производительность, часто не вполне корректная работа, возможность внесения ручных ошибок. Поэтому предпочтительнее модель внешней автоматизации, использующая Office как сервер COM-объектов, который можно назвать внепроцессным. При этом наиболее частый сценарий для данной модели – генерация и редактирование офисных документов. К сожалению, нет возможности обеспечить 100 %-ю функциональную поддержку всех возможностей продуктов семейства Office, и в ряде случаев необходимо реализовывать собственный пользовательский интерфейс. Сервисные сценарии на основе, например ISP, не вполне реализуемы при этом подходе. Таким образом, модель внешней автоматизации также имеет ряд недостатков. Если говорить об интеграции на основе документов – это достаточно серьезное решение. Раньше такая интеграция, например между Word, Excel и Access, производилась на основе макросов, которые в основном писались на языке Visual Basic, теперь существует единая платформа – VSTO и можно создавать полноценные бизнес-приложения на различных языках платформы. NET.