Основы проектирования корпоративных систем - Сергей Зыков
Шрифт:
Интервал:
Закладка:
Рис. 9.3. Набор предопределенных элементов управления
Кроме тех элементов, которые были перечислены, пользователь может создать свои элементы. Для этого используется специальный класс user control. Естественно, можно использовать те классы, которые уже предопределены в. Net, конкретно в Windows Forms, в пространстве имен System.Windows.Forms и на основе классов – каждый элемент управления является классом – можно создавать собственные элементы управления, добавляя и убавляя свойства.
Для создания собственных форм и элементов управления и коррекции их в визуальном режиме используется средство Windows Forms Designer. Это компонент, встроенный в Visual Studio. Он позволяет создавать свои формы путем комбинирования элементов управления. Существует возможность выравнивания без особых затрат труда, поскольку это происходит визуально. В связи с этим есть возможность построения интерактивных интерфейсов, поскольку пользователь может взаимодействовать с ними посредством событий, и интеграция с Microsoft Office. Это интерфейс, который основан на знакомых нам приложениях и ОС Windows, и MS Office. Скажем, существуют элементы управления Tool strip и Menu strip, как в Word. Это может быть представлено как в форме меню, так и в форме инструментов – командных кнопок. По сути, они уже существуют в виде примитивов в пространстве имен и могут быть использованы в нужной конфигурации и автоматически собраны при просто визуальном перенесении пользователем их на форму. Таким образом можно быстро создавать меню, глубокую вложенность подменю, которые могут содержать и другие элементы управления.
Как упоминалось ранее, пользователь может создавать собственные элементы управления, для этого используются классы, содержащиеся в System.Drawing. Напомним, что структура. NET Framework достаточно четко разграничена. Прямо на форме можно осуществлять прорисовку или выполнение несложных иллюстраций, скажем, рисовать линии, прямоугольники, овалы и т. д. В Word тоже есть панель рисования. Очень важным является вопрос интеграции данных из гетерогенных источников. В части корпоративных приложений речь идет о гетерогенных системах, которые могут включать как хорошо структурированную информацию, так и плохо структурированную – видео, аудио, сканы. К каждому фотоизображению прилагается информация о том, когда была сделана фотография, каким фотоаппаратом, каков ее размер. При этом Windows Forms имеет специальный элемент управления DataGrid-View, чтобы из гетерогенных источников можно было извлекать данные и формировать отчеты. При этом могут быть использованы разные источники данных – БД: SQL Server, Access. Позже мы посмотрим, как выглядит отчет в DataGridView. Это представление среза данных, которое хешируется и хранится на клиентской части приложения и необязательно отражает актуальное состояние базы данных. Можно брать данные из специализированных данных формата XML, веб-сервисов и т. д. Какие возможности получает пользователь при работе с этим сложным элементом управления? Какие потери могут быть понесены, если попытаться создавать его самостоятельно? Мы можем динамически менять размер строк и столбцов, фиксировать их, настраивать представление, цвет фона, шрифта и т. д. Наконец, можно осуществлять отображение сложных объектов внутри каждой ячейки – не только текст, но и фото, видео. При этом внедрение на форму элемента управления DataGridView происходит стереотипно и так же легко для пользователя, как и размещение элементарной кнопки – drag&drop из репозитория на форму.
Очень важным при этом является свойство Entry Point – связь с гетерогенным источником данных – различной природы. Это могут быть хорошо структурированные реляционные данные, гетерогенно представленные в хранилище данных на основе xml метаданных.
Еще одной технологией, которая активно используется в связи с WinForms, является технология интеллектуальных клиентов SmartClients. С помощью этой технологии есть возможность взаимодействия с источником данных через сетевое соединение (через интернет-канал). Это крайне важно для корпоративных систем, так как дает возможность получения корпоративных данных через Интернет из любой точки земного шара. Для корпорации значение этой технологии трудно переоценить. На рис. 9.4 показан компонент BindingSource, мы видим его в Solution Explorer и в левом окне, которое представляет собой Design View, т. е. визуальное представление формы. Данный компонент дает возможность связать определенный элемент DataGridView с тем или иным источником данных, который позволяет нам извлечь гетерогенные данные той или иной природы (мы уже описывали виды источников данных, которые используются) и разместить их в форме.
Рис. 9.4. Компонент BindingNavigator
Компонент BindingSource является частью среды Microsoft.NET Framework и позволяет управлять целым рядом параметров взаимодействия корпоративного пользователя с источником данных. Это такие характеристики, как параметры соединения с источником данных, организация связи данных, которые извлекаются из того или иного источника с элементами управления (например, с ячейкой DataGridView), с определенными текстовыми элементами, скажем, многострочный вывод, однострочный и т. д., веб-страница, навигация между записями источника данных, если этот источник возможно представить в виде нескольких записей, например файл или таблицу в базе данных, редактирование записей источника данных – можно вносить через сетевое соединение изменения в данные на этом удаленном источнике и записывать изменения в источник данных.
Здесь есть достаточно серьезная проблема, связанная с управлением транзакциями, поскольку корпоративных пользователей, которые занимаются редактированием или просмотром объекта одновременно, достаточно много. Возникает вопрос: какие изменения и в какой последовательности записывать и как они будут отражены? Оптимально при правильном управлении транзакциями пользователь должен воспринимать информацию в параллельном режиме с другими пользователями, как будто он взаимодействует с базой только один. BindingSource и технология SmartClients во многом, естественно вкупе с другими технологиями, позволяют решить эти проблемы. Кроме того, существует элемент управления BindingNavigator, который дает возможность разработчикам использовать данный интерфейс для визуальной обработки записей данных из гетерогенных источников через сетевое соединение. На рис. 9.5 показан пример применения BindingNavigator и его размещение на Windows Form (на форме Form1 в данном случае) и организации визуального интерфейса с гетерогенным источником данных. При этом используется компонент BindingSource, построен конкретный пример объекта этого класса, который называется BindingSource1 и присутствует как в Solution Explorer, так и в Design View.