ИСР для создания проекта в .Net на языке C# позволяет создавать решения, включающие набор проектов.
Внимание. В русифицированной версии ИСР разделитель целой и дробной части числа:
при работе с консолью – запятая.
при наборе в редакторе кода – точка.
При запуске ИСР отображается стартовая страница.
Окно содержит встроенные окна. В центре главного окна на вкладках размещаются основные окна, а на периферии служебные окна.
В центре могут размещаться основные окна (на вкладках, если их несколько):
Начальная страница.
Дизайнеры.
Редакторы кода.
Слева размещается панель инструментов с компонентами.
Справа размещаются:
Обозреватель решений.
Окно классов.
Свойства.
Внизу размещается окно «Список ошибок».
Вид представления каждого окна можно изменить. Для этого вызвать выпадающее меню, в котором перечислены возможные решения. Это можно сделать двумя способами - щелчком правой кнопкой мыши по строке заголовка окна или стрелкой в строке заголовка. Меню содержит представления:
Плавающая область. Окно автономное, может перемещаться произвольно. Опция позволяет делать снимок только этого окна.
Закрепить. Окно докируется в основное окно и не может перемещаться автономно.
Закрепить как вкладку. Окно размещается на вкладке в другом окне. Например, окно классов размещается на вкладке вместе с вкладкой Обозревателя решений.
Автоматически скрывать. Окно отображается в виде узкой вертикальной полоски заголовка для экономии места. Это действие можно выполнить кнопкой в строке заголовка.
Скрыть. Окно скрывается.
Окно «Начальная страница» содержит вложенные поля:
- Создать проект
- Открыть проект
- Последние проекты.
- Последние новости (есть при подключенном Интернете)..
- Начало работы.
- Приветствие.
- Обучение.
- Обновление.
В стартовом режиме меню содержит следующие команды
Файл
Правка
Вид
Отладка
Сервис
Окно
Справка
Пункт «Файл содержит команды:
Создать проект…
Новый
Открыть проект…
Существующий
Открыть файл…
Существующий
Закрыть
Закрыть решение
Сохранить выбранные элементы
Под старым именем
Сохранить выбранные элементы, как…
Под новым именем
Сохранить все
Экспорт шаблона…
Параметры страницы…
Печать…
Последние файлы ►
Из предъявляемого списка
Последние проекты и решения ►
Из предъявляемого списка
Выход
Пункт «Правка» содержит команды:
Отменить
Вернуть
Вырезать
Копировать
Вставить
Выделить все
Поиск и замена ►
Из предъявляемого списка
Перейти…
Закладки ►
Из предъявляемого списка
Пункт «Вид» содержит команды для выбора отображаемых окон ИСР:
Классы
Список ошибок
Вывод
Начальная страница
Обозреватель решений
Список задач
Панель элементов
Другие окна ►
Из предъявляемого списка
Панель инструментов ►
Из предъявляемого списка
Во весь экран
Назад
Вперед
Окно свойств
Окна свойств
Пункт «Отладка» содержит команды:
Параметры настройки…
Команда вызывает окно «Параметры», в котором можно изменять параметры. Эта команда доступна и в пункте «Сервис». Окно имеет иерархическую структуру с множеством тематических вкладок.
Целесообразно выполнить коррекцию параметров, выбираемых по умолчанию. Большая часть параметров не требует изменений.
Во вкладке «Проекты и решения => Общие» выбрать места размещения проектов, пользовательских шаблонов проектов, пользовательских шаблонов элементов.
Во вкладке «Текстовый редактор => C#» установить флаг отображения номеров строк.
Пункт «Сервис» содержит команды:
Подключиться к базе данных…
Диспетчер фрагментов кода…
Вызов сохраненных кодов
Выбрать элементы панели элементов…
Обновление списка по умолчанию.
Диспетчер расширений…
Добавить, удалить или изменить.
Внешние инструменты…
Добавить, удалить или изменить.
Параметры ►
Из предъявляемого списка
Настройка…
Настройка панели инструментов.
Параметры…
Настройка компонент ИСР
Команда «Подключиться к базе данных…» вызывает окно выбора источника данных. В нем можно выбрать источник.
Команда «Продолжить» вызывает окно создания базы данных.
Команда «Настройка» вызывает диалоговое»Настроить», в котором имеются вкладки «Панели инструментов» и «Команды». В первой вкладке выбираются отображаемые панели инструментов.
Во второй вкладке можно изменить состав любой возможной панели инструментов.
Пункт «Окно» содержит команды:
Создать окно
Разделить
Плавающая область
Окно автономное, может перемещаться произвольно. Опция позволяет делать снимок только этого окна.
Закрепить
Окно докируется в основное окно и не может перемещаться автономно.
Закрепить как вкладку
Окно размещается на вкладке в другом окне.
Автоматически скрывать
Окно скрывается, отображается узкой полоской.
Скрыть
Окно скрывается
Автоматически скрывать все
Создать группу горизонтальных вкладок
Создать группу вертикальных вкладок
Закрыть все документы
Сброс макета окон
Начальная страница
Обозреватель объектов
Окна…
Пункт «Справка» содержит команды:
Просмотр справки
Доступ к инструкциям по C#
Управление параметрами справки
Форумы MSDN
Доступ в Интеренет
Сообщить об ошибке
Разработчикам C#
Примеры
Параметры отзывов пользователей
Зарегистрировать продукт
Проверить наличие обновлений
Техническая поддержка
Заявление о конфиденциальности…
О программе
Внимание. ИСР для каждого нового проекта использует шаблон, в который нужно добавить функциональность. ИСР создает перечень доступных пространств имен директивами using по умолчанию. Часть из них не используются. Их можно удалить. Щелчок правой кнопки по коду программы вызывает выпадающее меню, в котором нужно выбрать показанное.
Далее нужно выбрать, что делать. Создаем новый проект.
Тема 2.3 Стратегии конструирования ПО
Консольное приложение
Для иллюстрации создаем проект консольного приложения «ConsoleHello», который будет входить в решение «ConsoleHello».
Консольные приложения предназначены для работы с командной строкой, в которой используется символьный интерфейс.
При запуске ИСР отображается стартовая страница. В ней нужно исполнить команду «Файл => Создать проект». Отображается окно выбора типа проекта. В нем нужно выбрать «Консольное приложение» и задать имя проекта – ConsoleHello.
Проект создается, отображаются его компоненты.
В режиме создания проекта меню ИСР меняется. Теперь оно содержит пункты:
Файл
Правка
Вид
Проект
Построение
Отладка
Данные
Сервис
Окно
Справка
Новый пункты «Проект» содержит команды:
Добавить форму Windows…
Из предъявляемого списка
Добавить пользовательский элемент управления…
Из предъявляемого списка
Добавить класс…
Из предъявляемого списка
Добавить новый элемент…
Из предъявляемого списка
Существующий элемент…
Из ресурсов проекта
Создать папку
Новую
Показать все файлы
Проекта
Добавить ссылку…
Из предъявляемого списка
Добавить ссылку на службу…
Из предъявляемого списка
Назначить запускаемым проектом
Из множества проектов в решении
Обновить элементы проекта в панели элементов
Свойства ConsoleHello
Новый пункт «Построение» содержит команды:
Построить решение
Компиляция
Перестроить решение
Компиляция с оптимизацией
Опубликовать ConsoleHello
Вызывается мастер создания папки с исполняемым файлом в другом месте.
Пункт «Отладка» теперь содержит команды:
Окна ►
Выбор окон вывода: Вывод, Интерпретация
Начать отладку
Запуск без отладки
Исключение
Шаг с заходом
С заходом в подпрограммы
Шаг с обходом
Подпрограмма за шаг
Точка останова
Очистить все подсказки по данным
Экспорт подсказок по данным
Экспорт подсказок по данным
Точка останова
Новый пункт «Данные» содержит команды:
Показать источники данных…
Из предъявляемого списка
Добавить новый источник данных…
Теперь сохраняем все командой Файл => Сохранить все. По умолчанию создается решение с именем главного проекта. В папке решения размещаются:
Вложенная папка проекта.
Файл ConsoleHello.sln. Текстовое описание решения.
Файл ConsoleHello.suo. Генератор решения.
Решение создается в структуре папок. В папке Решение “ConsoleHello” размещается папка проекта ConsoleHello, которая включает:
Папку Properties, свойства проекта. Файл AssemblyInfo.cs содержит общие сведения о сборке.
Папка Ссылки содержит ссылки на используемые в сборке пространства имен.
Папка bin содержит финальные бинарные файлы.
Папка obj содержит промежуточные файлы, из которых при компоновке получаются бинарные файлы. Консольное приложение делается под процессор с форматом x86. Поэтому имеется вложенная папка x86. Если объектный файл один, то он будет совпадать с бинарным. Папка TempoPE служит для хранения временных PE файлов.
Program.cs – исходник на C#.
В каждой из папок bin и obj есть вложенные папки Debug и Release. При разработке приложения используются два режима:
Построить решение. При компиляции в файл включается отладочная информация, оптимизация компилятора отключается. Это может увеличить размеры файлов. Формируемые файлы помешаются в папки Debug.
Перестроить решение. Создание финального продукта. При компиляции в файл не включается отладочная информация, оптимизация компилятора включается. Это может уменьшить размеры файлов. Формируемые файлы помешаются в папки Release.
При сохранении проекта создаются файлы:
Program.cs
Программа на C#
ConsoleHello.exe
Исполняемый PE файл
ConsoleHello.pdb
База данных, описывающая его
ConsoleHello.vshost.exe
Вызов компилятора
ConsoleHello.vshost.exe.manifest
Манифест компилятора
ConsoleHello.csproj.FileListAbsolute.txt
Список файлов
DesignTimeResolveAssemblyReferencesInput.cache
Кэш проекта
Если выпускаемое приложение будет использоваться без поддержки платформы .Net, то нужно сформировать исполняемый файл для Win32, используя процедуру опубликования. Она использует встроенного мастера, который проводит вас через эту процедуру. В специальную папку published загружаются манифест файла IL с его описанием и setup.exe - инсталлятор Windows. При запуске инсталлятора в этой папке по манифесту формируется исполняемый файл под ОС компьютера развертывания приложения. Соотношение его размеров с размерами файла IL зависит от ОС и аппаратных средств.
Тема 2.4 Приложение под ОС Windows
Приложения Windows
В приложении Windows с графическим пользовательским интерфейсом большая часть действий после запуска происходит в ответ на действия пользователя. Все поля, хранящие сведения о состоянии приложения, находятся в основном классе Form, имеющем по умолчанию имя Form1.
При создании нового проекта из вкладки Последние проекты или командой Файл => Создать проект вызывается окно выбора проекта с набором шаблонов и полем имени проекта. В нем выбираем Приложение Windows Forms. Проекту назначаем имя Windows FormsApplicationHello.
В центре в закладке Form1.cs[Конструктор] отображается окно Конструктора формы. Окно Панель элементов заполняется элементами для выбора. Окна Обозреватель решений содержит описание решения. Конструктор формы отображается по автоматически создаваемому коду (при желании его можно посмотреть двойным щелчком по Form1.cs => Program.cs в Обозревателе решений). Редактор кода модуля формы отображается командой Перейти к коду, которая находится в меню, выпадающем при щелчке по форме в конструкторе правой кнопкой мыши. Редактор отображается в закладке с именем Form1.cs.
Большая часть кода в Редакторе ИСР сделала автоматически. Нужно добавить функциональность.
Окна Конструктора и Редактора можно переключать кнопками в заголовках их закладок.
Теперь приступаем к проектированию в Конструкторе. Из окна Панели элементов перетаскиваем в форму объекты
button1 – кнопка для запуска обработчика события. Выделяем объект, в окне свойств отображаются свойства кнопки. Свойству Text присваиваем значение - Нажми меня.
label1 – метка, поле для отображения сообщения. Свойству Text присваиваем значение – Смотри сюда.
Для создания обработчика события щелчка по кнопке дважды щелкаем по кнопке в форме. Автоматически отображается окно Редактора, в котором в код добавлен шаблон обработчика события button1_Click, но без функциональности. Курсор устанавливается в место ввода кода, который будет задавать функциональность проекта.
Чтобы обработчик события срабатывал, нужно в окне свойств кнопки button1 в закладке событий выбрать реакцию на щелчок по кнопке (button1_Click) из списка:
В шаблон кода, начиная с позиции курсора, нужно ввести инструкции. В примере свойству Text объекта label1 нужно присвоить строку “Hello, world and Россия от меня!!”. Чтобы исключить повторный доступ к кнопке, сделаем ее после вывода текста невидимой. Для этого вводим код
label1.Text= "Hello, world и Россия от меня!!";
button1.Visible = false;
Итоговый код:
Проект готов. проверим его командой Отладка => Запуск без отладки. Получим окна приложения: слева стартовое, справа финальное.
Проект готов, сохраняем его командой Файл => Сохранить все. В папке Hello. В результате проект сохраняется в структуре папок (чтобы увидеть все файлы, нужно активизировать кнопку, показанную на рисунке):
Решение включает:
Решение Hello
Hello
Properties
Ссылки
bin
Debug
Hello.exe
Hello.pdb
Hello.vshost.exe
Release
obj
Решение
Проект
Свойства
Ссылки
Двоичные файлы
Файлы отладки
Управляемый исполняемый файл
База данных для JIT компилятора
Служебный файл
Файлы выпуска
Объектные файлы
Исполняемые (bin) и объектные (obj) файлы образуются при компиляции (построении). Возможны два режима:
Команда Построение=>Построить решение. Построение в режиме отладки, в компонуемые файлы включаются символы отладки и режим оптимизации исключается. Это может увеличить размеры файлов. Файлы размещаются в папках Debug.
Команда Построение=>Перестроить решение. Построение отлаженного проекта, когда в компонуемые файлы символы отладки не включаются и компилятор использует режим оптимизации кода (например, исключает не использованные переменные). Это может уменьшить размеры файлов. Файлы размещаются в папках Release.
Тема 2.5 Ввод и вывод в Windows приложениях
Приложения WPF
В 2009 корпорация Microsoft выпустила новую платформу Windows Presentation Foundation (WPF), предназначенную для разработки расширенных интерфейсов пользователя для ОС Windows. Также корпорация Microsoft объявила, что намерена и в будущем поддерживать модель Windows Forms, сегодня широко используемую для создания традиционных приложений типа «формы поверх данных». Возникают естественные вопросы: какую технологию использовать для разработки новых приложений и когда следует переходить на платформу WPF организациям, занимающимся разработкой приложений Windows Forms? Ответы на эти вопросы зависят от многих факторов, которые рассмотрены ниже.
Во-первых, следует учесть, что эти платформы совместимы. Обе технологии, WPF и Windows Forms, можно использовать в одном приложении, поскольку каждая из них поддерживает элементы интерфейса пользователя, определенные в другой технологии. У каждой из платформ свои преимущества, которые взаимно дополняют друг друга. Например, в состав Windows Forms входит много полезных элементов управления для бизнес-приложений, а WPF предлагает уникальные возможности трехмерной графики и анимации.
В текущих проектах Windows Forms можно постепенно начинать использовать возможности WPF. Совместимость Windows Forms и WPF упрощает расширение проектов. Некоторые первопроходцы опробовали эти возможности, создавая визуальные элементы или компоненты WPF для приложений с помощью уровня взаимодействия.
Совместная работа разработчика и дизайнера Рейтинг
Чтобы создать хорошее ПО, нужны специалисты с различными навыками: художник-дизайнер для разработки запоминающегося визуального оформления, архитектор для организации информации, определения приоритетов и взаимосвязей содержимого и разработчик, способный объединить визуальное оформление с содержимым и серверными системами.
Идея свести вместе дизайнеров и разработчиков для создания ПО не нова, однако их совместная работа никогда не отличалась эффективностью. В новой платформе пользовательского интерфейса WPF, разработанной корпорацией Microsoft, упор делается на взаимодействие этих двух ролей, что ведет к принципиально новому способу создания ПО.
Для удобства интеграции, исключения неопределенности и сокращения избыточной работы при взаимодействии этих ролей корпорация Microsoft разработала новый язык разметки для представления интерфейсов пользователя. Этот язык получил название XAML (Extensible Application Markup Language — расширяемый язык разметки приложений).
Помимо общего языка описания интерфейса пользователя Microsoft разработала новый набор средств, оптимизированных для конкретных задач, выполняемых каждой ролью в процессе создания приложений.
Объединение новой платформы с новыми инструментами позволяет организовать в рамках проектов создания ПО такие процессы совместной работы, которые, в конечном счете, ведут к повышению производительности, сокращению времени вывода продуктов на рынок и созданию безукоризненного дизайна.
Кросс-платформенный подключаемый модуль Microsoft Silverlight, предназначенный для создания многофункциональных интерактивных веб-сайтов, также использует язык XAML.
Революция XAML. Ключом к реализации слаженной совместной работы разработчиков и дизайнеров над приложениями WPF служит язык XAML. Однако добиться эффективности совместной работы позволяет не сам язык XAML, а лежащая в его основе платформа WPF, доступ к которой осуществляется с помощью XAML.
Язык XAML понятен и человеку, и компьютеру. При этом он позволяет легко переключаться между инструментом и текстовым редактором — это преимущество не следует преуменьшать.
В чем отличие XAML от других языков разметки? XAML не только поддерживает большую часть функциональности существующих языков разметки, в нем также появились новые функции и возможности, недоступные в других технологиях. Превосходство языка XAML достигается в трех ключевых областях: выразительность, полнота и расширяемость.
В приложении WPF с графическим пользовательским интерфейсом большая часть действий после запуска происходит в ответ на действия пользователя. Все поля, хранящие сведения о состоянии приложения, находятся в основном классе Form, имеющем по умолчанию имя MainWindow.
Рассмотрим пример. При создании нового проекта из вкладки Последние проекты или командой Файл => Создать проект вызывается окно выбора проекта с набором шаблонов и полем имени проекта. В нем выбираем Приложение WFP. Проекту назначаем имя Hello.
В центре в закладке MainWindow.xamlотображается окно Дизайнера формы. Окно Дизайнера формы включает две закладки:
Конструктор. Отображает элементы управления, заносимые в форму.
XAML. Код на языке XAML, по которому форма отображается браузером. Код отображается в закладке с именем MainWindow.xaml.cs.
Закладки Конструктор и XAML можно выбирать кнопками в заголовках их закладок.
Окно Панель элементов заполняется элементами для выбора.
Окна Структура документа содержит перечень элементов в форме.
Окна Обозреватель решений содержит описание решения.
Код исполняемой программы в окне с именем MainWindow.xaml.cs. Большая часть кода ИСР сделала автоматически. Нужно добавить функциональность.
Теперь приступаем к проектированию в Конструкторе. Из окна Панели элементов перетаскиваем в форму объекты
button1 – кнопка для запуска обработчика события. Выделяем объект, в окне свойств отображаются свойства кнопки. Свойству Content присваиваем значение - Нажми меня.
label1 – метка, поле для отображения сообщения. Свойству Content присваиваем значение – Смотри сюда.
Для создания обработчика события щелчка по кнопке дважды щелкаем по кнопке в форме. Автоматически отображается окно кода, в котором в код добавлен шаблон обработчика события button1_Click, но без функциональности. Курсор устанавливается в место ввода кода, который будет задавать функциональность проекта.
Чтобы обработчик события срабатывал, нужно в окне событий кнопки button1 выбрать реакцию на щелчок по кнопке (button1_Click) из списка:
В шаблон кода, начиная с позиции курсора, нужно ввести инструкции. В примере свойству Content объекта label1 нужно присвоить строку “Hello, world and Россия от меня!”. Чтобы исключить повторный доступ к кнопке, сделаем ее после вывода текста невидимой. Для этого вводим код
Проект готов. проверим его командой Отладка => Начать отладку. Получим окна приложения: слева стартовое, справа финальное.
Проект готов, сохраняем его командой Файл => Сохранить все. В папке Hello. В результате проект сохраняется в структуре папок (чтобы увидеть все файлы, нужно активизировать кнопку, показанную на рисунке):
Решение включает:
Решение Hello
Hello
Properties
Ссылки
bin
Debug
Hello.exe
Hello.pdb
Hello.vshost.exe
Release
obj
Решение
Проект
Свойства
Ссылки
Двоичные файлы
Файлы отладки
Управляемый исполняемый файл
База данных для JIT компилятора
Служебный файл
Файлы выпуска
Объектные файлы
Исполняемые (bin) и объектные (obj) файлы образуются при компиляции (построении). Возможны два режима:
Команда Построение=>Построить решение. Построение в режиме отладки, в компонуемые файлы включаются символы отладки и режим оптимизации исключается. Это может увеличить размеры файлов. Файлы размещаются в папках Debug.
Команда Построение=>Перестроить решение. Построение отлаженного проекта, когда в компонуемые файлы символы отладки не включаются и компилятор использует режим оптимизации кода (например, исключает не использованные переменные). Это может уменьшить размеры файлов. Файлы размещаются в папках Release.
Примеры приложений Windows Forms и WPF очень похожи. Результаты одинаковые. Разница заключается в:
WPF использует язык разметки XAML.
Используемые элементы формы имеют разные форматы. Например, надпись на кнопке в Windows Forms - это свойство text, а в WPF - это свойство content.