|
Программирование >> Web ориентированные приложения
Web-ориентированные приложения Платформа .NET Framework позволяет разрабатывать интеллектуальные клиентские приложения с богатыми возможностями, при этом избегая проблем с развертыванием и DLL-адом , как это было раньше. Независимо от того, что будет выбрано - Windows Forms или Windows Presentation Foundation (см. главу 34) - разработка или развертывание клиентских приложений теперь не представляет особой сложности. Windows Forms уже оказал влияние на разработки для Windows. Теперь, когда приложение находится на начальной стадии проектирования, принять решение о том, нужно ли строить Web-ориентированное приложение либо же полностью клиентское, стало немного труднее. Клиентские приложения Windows могут быть разработаны быстро и эффективно, при этом они предлагают пользователям гораздо более широкие возможности. Windows Forms покажется вам знакомым, если у вас есть опыт разработки на Visual Basic. Вы создаете новые формы (также известные как окна или диалоги) в той же манере - перетаскивая и размещая элементы управления из панели инструментов на поверхность визуального дизайнера форм (Form Designer). Однако если ваш опыт в основном касается классического стиля языка C для Windows-программирования, где приходилось создавать конвейеры сообщений и отслеживать эти сообщения, или же если вы - программист, применяющий MFC, то в этом случае вы обнаружите, что и здесь при необходимости у вас есть возможность работать с низкоуровневыми деталями. Вы можете переопределить оконную процедуру (WndProc) и перехват1вать сообщения, но в действительности вас удивит, что делать это придется нечасто. В этой главе мы рассмотрим следующие аспекта: Windows Forms: □ класс Form; □ иерархия классов Windows Forms; □ элементы управления и компоненты, являющиеся частью пространства имен System.Windows.Forms; □ меню и панели инструментов; □ создание элементов управления; □ создание пользовательских элементов управления. Создание приложения Windows Forms Первое, что необходимо сделать - создать приложение Windows Forms. Для примера создадим пустую форму и отобразим ее на экране. При разработке этого примера мы не будем использовать Visual Studio .NET. Наберем его в текстовом редакторе и соберем с помощью компилятора командной строки. Ниже показан код примера. using System; using System.Windows.Forms; namespace NotepadForms { public class MyForm : System.Windows.Forms.Form public MyForm() [STAThread] static void Main() Application.Run(new MyForm()); Когда мы скомпилируем и запустим этот пример, то получим маленькую пустую форму без заголовка. Никаких реальных функций, но это - Windows Forms. В приведенном коде заслуживают внимания две вещи. Первая - тот факт, что при создании класса MyForm используется наследование. Следующая строка объявляет MyForm как наследника System.Windows.Forms.Form: public class MyForm : System.Windows.Forms.Form Класс Form - один из главных классов в пространстве имен System.Windows.Forms. Следующий фрагмент кода стоит рассмотреть более подробно: [STAThread] static void Main() { Application.Run(new MyForm()); Main - точка входа по умолчанию в любое клиентское приложение на C#. Как правило, в более крупных приложениях метод Main() не будет находиться в классе формы, а скорее в классе, отвечающем за процесс запуска. В данном случае вы должны установить имя такого запускающего класса в диалоговом окне свойств проекта. Обратите внимание на атрибут [STAThread]. Он устанавливает модель многопоточности COM в STA (однопоточный апартамент). Модель многопоточности STA требуется для взаимодействия с COM и устанавливается по умолчанию в каждом проекте Windows Forms. Метод Application.Run() отвечает за запуск стандартного цикла сообщений приложения. Application.Run() имеет три перегрузки. Первая из них не принимает параметров; вторая принимает в качестве параметра объект ApplicationContext. В нашем примере объект MyForm становится главной формой приложения. Это означает, что когда форма закрывается, то приложение завершается. Используя класс ApplicationContext, можно в большей степени контролировать завершение главного цикла сообщений и выход из приложения. Класс Application содержит в себе очень полезную функциональность. Он предоставляет группу статических методов и свойств для управления процессом запуска и останова приложения, а также обеспечивает доступ к сообщениям Windows, обра-бат1ваемым приложением. В табл. 31.1 перечислены некоторые из этих наиболее полезных методов и свойств. Таблица 31.1. Некоторые полезные методы и свойства класса Application Метод/свойство Описание CommonAppDataPath ExecutablePath LocalUserAppDataPath MessageLoop StartupPath AddMessageFilter DoEvents EnableVisualStyles Exit и ExitThread Путь к данным, общий для всех пользователей приложения. Обычно это Базов]йПуть\Название компании\Название продукта\Версия, где Базов]йПуть - C:\Documents and Settings\имя пользователя\ ApplicationData. Если путь не существует, он будет создан. Путь и имя исполняемого файла, запускающего приложение. Подобно CommonAppDataPath, но с тем отличием, что поддерживается роуминг (перемещаемость). True или false - в зависимости от того, существует ли цикл сообщений в текущем потоке. Подобно ExecutablePath, с тем отличием, что имя файла не возвращается. Используется для предварительной обработки сообщений. Объект, реализующий IMessageFilter, позволяет фильтровать сообщения в цикле или организовать специальную обработку, выполняемую перед тем, как сообщение попадет в цикл. Аналогично оператору DoEvents языка Visual Basic. Позволяет обработать сообщения в очереди. Обеспечивает визуальный стиль Windows XP для различных визуальных элементов приложения. Существуют две перегрузки, принимающие информацию манифеста. Одна работает с потоком манифеста, вторая - принимает полное имя и путь файла манифеста. Exit завершает текущий работающий цикл сообщений и вызывает выход из приложения. ExitThread завершает цикл сообщений и закрывает все окна текущего потока. А теперь как будет выглядеть это приложение, если его сгенерировать в Visual Studio 2008? Первое, что следует отметить - будет создано два файла. Причина в том, что Visual Studio 2008 использует возможность частичных (partial) классов и выделяет весь код, сгенерированный визуальным дизайнером, в отдельный файл. Если используется имя по умолчанию - Form1, то эти два файла будет называться Form1.cs и Form1.Designer.cs. Если только у вас не включена опция Show All Files (Показать все файлы) в меню Project (Проект), то вы не увидите в проводнике Solution Explorer файла Form1.Designer.cs. Ниже показан код этих двух файлов, сгенерированных Visual Studio. Сначала - Form1.cs: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |