Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад] [Содержание] [Дальше]

Визуальное проектирование приложений C#


А.В. Фролов, Г.В. Фролов

Аннотация

В книге рассмотрены приемы визуального проектирования автономных приложений на языке программирования C# с использованием инструментальных средств Microsoft Visual Studio .NET. Рассмотрены принципы функционирования приложений Windows, управляемых событиями, на платформе Microsoft .NET Framework. Приведена методика использования Microsoft Visual Studio .NET для создания и отладки проектов приложений Windows на языке C#.

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

Предисловие

Создавая сложные и очень сложные приложения, профессиональные программисты часто используют специальные средства ускоренной разработки приложений (Rapidly Application Development, RAD). Такие средства позволяют значительно сократить сроки разработки и отладки, так что с их использованием приложение, возможно, будет создано еще до того, как в нем отпадет необходимость.

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

За счет чего средства RAD ускоряют разработку приложений?

Во многом это происходит благодаря применению графических средств проектирования пользовательского интерфейса.

Напомним, что первое время приложения для операционной системы (ОС) Microsoft Windows создавались при помощи инструментов, предполагающих использование обычных редакторов текста, дополненных средствами синтаксического выделения конструкций языка, средствами отладки и справочно-информационными системами.

Справедливости ради отметим, что в таких инструментальных средствах, как Microsoft Visual C++, Borland C++ и аналогичных были предусмотрены так называемые редакторы ресурсов. Механизм ресурсов приложений Microsoft Windows был разработан для того, чтобы отделить элементы пользовательского интерфейса (диалоговые окна, кнопки, списки и т.д.) от программного кода. При этом описание элементов интерфейса хранится внутри исполнимого файла приложения и поддается редактированию без перетрансляции исходных текстов самого приложения.

Формально Microsoft Visual C++ в комплекте с библиотекой классов Microsoft Foundation Classes (MFC) может выступать в качестве системы визуального проектирования приложений. Однако на деле создание с его помощью программ, имеющих по-настоящему сложный пользовательский интерфейс, совсем не просто.

К сожалению, внешний вид компонентов пользовательского интерфейса, хранящихся в ресурсах обычных приложений Microsoft Windows, уже не отвечает требованиям сегодняшнего дня. Избалованные хорошо проработанным дизайном Web-сайтов, пользователи требуют аналогичных дизайнерских решений и от автономных приложений Windows. Теоретически механизм ресурсов приложений, библиотека классов MFC и программный интерфейс Win32 API (Application Program Interface, API) позволяют придать приложению самый замысловатый внешний вид, однако это достигается использованием нетривиальных приемов программирования.

В итоге реализация сложного пользовательского интерфейса приложения при помощи Microsoft Visual C++ и MFC доступна только опытным программистам, хорошо знакомыми с архитектурой и принципами работы ОС Microsoft Windows, а также искушенными в использовании программного интерфейса Win32 API.

Библиотека MFC тоже не свободна от недостатков. Ее объектно-ориентированная реализация оставляет желать лучшего, и в добавок вместе с приложениями приходится распространять специальную библиотеку динамической компоновки (Dynamic Load Library, DLL). К настоящему времени существует несколько различных версий этот библиотеки, что создает проблемы при установке приложений MFC на компьютеры пользователей. Эта проблема известна под названием «ада DLL» (Dll Hell).

Успех существующих систем RAD

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

Другим инструментом быстрой разработки приложений, несомненно, заслуживающим упоминания, является Microsoft Visual Basic.

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

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

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

 Такая технология во много раз ускоряет разработку приложений со сложным пользовательским интерфейсом, что и привело к росту популярности Borland Delphi, Microsoft Visual Basic и других аналогичных средств.

Системы RAD для Web-приложений

Процесс создания Web-приложений достаточно сложен. Разрабатывая активные Web-сайты, способные взаимодействовать с посетителями интерактивным образом, обращаться к базам данных, почтовым серверам и другим системам, приходится использовать множество технологий и инструментальных средств. Об этом мы рассказывали в [1] и [2].

Хотя было бы заманчиво использовать для проектирования Web-приложений средства RAD, на сегодняшний день большинство активных Web-сайтов создается традиционным способом.

При этом страницы сайта готовятся на языке разметки гипертекста  (HyperText Markup Language, HTML) создаются с помощью специальных редакторов, таких как HomeSite, Dreamwaver, FrontPage и т.п. Что же касается активных компонентов, то они разрабатываются с помощью специальных языков программирования (Perl, PHP, ASP и др.), а также соответствующих инструментальных средств проектирования и отладки, таких как Microsoft InterDev и Cold Fusion Studio.

Используя специальные средства вроде шаблонов HTML и компонентов времени выполнения (Design Time Control, DTC), удается отделить дизайн активного Web-сайта от программного кода. При этом Web-дизайнер может создавать внешний вид страниц Web-сайта, не разбираясь в программировании. В свою очередь, программист может разрабатывать программные компоненты активного сайта, не вникая в детали языка HTML и в особенности реализации дизайна.

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

Платформа Microsoft .NET Framework

Не будет большим преувеличением сказать, что создание компанией Microsoft новой платформы Microsoft .NET Framework можно рассматривать как значительное достижение в области систем RAD. В книге [3] мы рассказали об основных возможностях этой платформы, а также детально рассмотрели язык программирования C#, наилучшим образом подходящий для создания приложений Microsoft .NET Framework.

Платформа Microsoft .NET Framework в сочетании с удобными инструментальными средствами пакета Microsoft Visual Studio .NET позволяет создавать по технологии RAD как автономные программы Microsoft Window, так и активные Web-приложения.

Большим достижением Microsoft является то, что при создании автономных программ и Web-приложений можно использовать одинаковые приемы и инструментальные средства. Таким образом, изучая инструментальные средства Microsoft Visual Studio .NET, можно овладеть универсальными приемами ускоренной разработки автономных программ и активных Web-приложений.

Не вдаваясь в подробное описание преимуществ платформы Microsoft .NET Framework (они описаны в [3]) заметим, что эта платформа предполагает использование так называемого управляемого кода. При этом исходный текст программы преобразуется не в машинные коды, а в так называемый промежуточный язык Microsoft Intermediate Language (MSIL), интерпретируемый средой исполнения Microsoft .NET Framework.

Программы, созданные при помощи Borland Delphi, Microsoft Visual C++ и других аналогичных средств, представляют собой обычные исполнимые модули. Ошибка в таких программах может привести к «зависанию» ОС или даже к потерям данных.

Что же касается управляемых программ Microsoft .NET Framework, то им не разрешается выполнять опасные операции, поэтому даже при возникновении в них серьезных ошибок ОС продолжит свою работу. Сделаем, однако, оговорку — ошибки в самой среде исполнения Microsoft .NET Framework могут привести к зависанию ОС или другим неприятностям, т.к. эта среда представляет собой набор обычных программных модулей.

Что нужно для работы с книгой

Так как наша книга посвящена описанию методик визуальной разработки приложений для платформы Microsoft .NET Framework на языке C#, то для работы с ней потребуется Microsoft Visual C# или более мощный инструмент Microsoft Visual Studio .NET.

Для использования таких инструментальных средств потребуется достаточно мощный компьютер с процессором не хуже Intel Pentium-III и тактовой частотой не менее 600 Мгц. А еще лучше оснастить компьютер процессором Pentium-4. Объем оперативной памяти должен быть не меньше 256 Мбайт (а лучше 512 Мбайт). Что же касается дисковой памяти, то будет вполне достаточно диска объемом 40-60 Гбайт.

Особое внимание мы рекомендуем обратить на видеоадаптер и монитор компьютера. Для работы с Microsoft Visual Studio .NET больше всего подойдет разрешение не менее 1152х864, а лучше 1280х1024 пикселов. В крайнем случае, можно работать и при разрешении 1024х768, однако ни о каком комфорте здесь говорить уже не приходится.

Требования к читателю

Мы предполагаем, что перед чтением этой книги читатель знаком с основными принципами, положенными в основу платформы Microsoft .NET, а также владеет языком программирования C#. Вся эта информация была изложена нами в [3].

Чтение глав, рассказывающих об интеграции приложений C# с базами данных, требует базовых знаний теории реляционных СУБД, а также навыков работы с сервером Microsoft SQL Server. Читатель без труда найдет всю эту информацию в книжных магазинах, так как базам данных посвящено очень много различных изданий.

Какого-либо опыта создания приложений для ОС Microsoft Windows не требуется, хотя, без сомнения, этот опыт будет очень полезен. Мы, однако, полагаем, что Вы хорошо владеете приемами работы с готовыми приложениями Windows на уровне опытного пользователя.

Содержимое книги

В первой главе книги мы рассказали о принципах, положенных в основу работы ОС Microsoft Windows. По своей структуре и принципам работы приложения Microsoft Windows значительно отличаются от старых программ MS-DOS. Если Вы никогда не создавали ранее программ для ОС Microsoft Windows, то мы настоятельно рекомендуем ознакомиться с этой главой. Опытные программисты, знакомые с программным интерфейсом WinAPI 32 или библиотекой MFC, могут сразу переходить к чтению второй главы.

Вторая глава рассказывает о работе с инструментальным средством проектирования приложений Microsoft Visual Studio .NET. На момент создания книги это был единственный инструмент, позволяющий создавать приложения для платформы Microsoft .NET, хотя авторам известно о планах компании Borland выпустить инструментарий аналогичного назначения.

Во второй главе Вы научитесь создавать проекты приложений и отлаживать приложения C# с визуальным графическим интерфейсом.

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

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

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

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

Многооконный пользовательский интерфейс рассмотрен в 7 главе. Здесь мы рассказали о создании оконных приложений с фреймами, а также с многооконным интерфейсом документов MDI. Попутно мы рассмотрели элементы управления TreeView и ListView, которые очень часто используются именно в приложениях с многооконным интерфейсом.

Глава 8 посвящена созданию приложений с базами данных. В ней мы рассмотрели различные методы доступа к базам данных и применяемые в этих методах доступа программные интерфейсы, а также подробно рассмотрели работу с элементами управления DataSet и DataGrid. Эти элементы управления позволяют создавать приложения с базами данных, расположенных в оперативной памяти, и отображать их содержимое в табличном виде, соответственно. Использование упомянутых элементов управления демонстрируется на примере исходных текстов простейшего приложения с базой данных — телефонного справочника.

В главе 9 мы рассказали об интеграции приложений C# с сервером СУБД Microsoft SQL Server. Этот вопрос имеет большое значение, так как многие приложения бизнеса требуют хранения информации в базе данных. Вы узнаете о том, как создавать базы данных и связывать их с наборами данных DataSet, рассмотренными в 8 главе.

Кроме этого, мы расскажем о том, как создавать клиент-серверные приложения C#, устанавливая соединения с базой данных и выполняя запросы SQL. Вы научитесь выполнять такие запросы напрямую, или делать это с применением механизма хранимых процедур сервера  Microsoft SQL Server. В качестве практического примера мы создадим приложение, позволяющее создавать в базе данных и редактировать древовидную структуру данных.

Глава 10 рассказывает о графическом интерфейсе GDI+, с помощью которого приложения C# могут рисовать в своих окнах практически любые изображения, а также текст со шрифтовым оформлением. В этой главе мы рассмотрели основные понятия, знание которых необходимо для работы с интерфейсом  GDI+, в частности, рассмотрели механизм перерисовки окон и обработку события Paint. Мы ввели понятие контекста отображения и показали, как его использовать для рисования. Прочитав 10 главу, вы научитесь рисовать различные геометрические фигуры (прямые линии, эллипсы и др.), кривые линии с использованием обычных сплайнов и сплайнов Безье, выбирать необходимые для рисования кисти и перья.

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

И, наконец, в приложении к нашей книге мы привели довольно полные исходные тексты редактора текста Simple Notepad, которые мы будем подробно обсуждать в 4 и 5 главе книги.

Как связаться с авторами книги

Свои замечания по этой книге и предложения присылайте авторам по адресу alexandre@frolov.pp.ru. Информацию о других наших книгах и проектах можно найти по адресам http://www.frolov.pp.ru, http://www.datarecovery.ru.

Благодарности

Мы благодарим Сергея Ноженко, который натолкнул нас на идею использования языка C# в системе удаленного восстановления данных через Интернет для службы DataRecovery.Ru, а также на идею создания этой книги.

[Назад] [Содержание] [Дальше]