- •1. Вводная часть
- •2. Знакомство со средой разработки на примере создания простого консольного приложения
- •3. Модификация консольного приложения
- •4. Публикация
- •5. О приложении к Лабораторной работе № 1
- •Лабораторная работа № 2: Создание простого приложения Windows Forms
- •Создание простого приложения Windows Forms
- •Модификация приложения Windows Forms
- •Завершающая часть
- •2. Создание простого приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Завершающая часть
- •5. О приложении к Лабораторной работе № 2
- •3. Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления
- •Вводная часть
- •О приложении к Лабораторной работе № 3
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: элемент управления MenuStrip
- •5. Модификация приложения Windows Forms: элемент управления Button
- •6. Модификация приложения Windows Forms: элемент управления ToolTip
- •7. Модификация приложения Windows Forms: элемент управления ComboBox
- •8. Модификация приложения Windows Forms: элемент управления WebBrowser
- •9. Модификация приложения Windows Forms: добавляем исходный код
- •10. Завершающая часть
- •11. О приложение к Лабораторной работе № 3
- •4. Лабораторная работа № 4: Windows Forms — работа с формами Лабораторная работа № 4: Windows Forms — работа с формами
- •Вводная часть
- •О приложении к Лабораторной работе № 4
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: добавление новой формы
- •5. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через прямой доступ к элементу формы
- •6. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через передачу метода в конструктор формы
- •7. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через класс делегата
- •8. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через свойства
- •9. Завершающая часть
- •10. О приложении к Лабораторной работе № 4
- •5. Лабораторная работа № 5: Windows Forms — элементы управления Лабораторная работа № 5: Windows Forms — элементы управления
- •Вводная часть
- •О приложении к Лабораторной работе № 5
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: динамическое добавление и уничтожение элемента управления
- •5. Модификация приложения Windows Forms: стандартные диалоговые окна
- •6. Модификация приложения Windows Forms: открытие файла, сохранение файла и работа с текстом
- •7. Модификация приложения Windows Forms: прочее
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 5
- •Лабораторная работа № 6: SolidWorks — работа с SolidWorks
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: eDrawings 2012
- •4. Модификация приложения Windows Forms: организация работы с SolidWorks через приложение
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 6
- •Лабораторная работа № 7: SolidWorks — использование SwCSharpAddin, работа с макросом и шаблоном детали
- •2. Создание приложения SwCSharpAddin
- •3. Модификация приложения SwCSharpAddin: макрос отрисовки болта
- •4. Модификация приложения SwCSharpAddin: построение через шаблон детали
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 7
- •8. Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation
- •Вводная часть
- •О приложении к Лабораторной работе № 8
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: добавление нового элемента из библиотеки компонентов wpf
- •5. Модификация приложения Windows Forms: расширение функциональности приложения и работа с оформление
- •6. Модификация приложения Windows Foundation Presentation: различные возможности wpf
- •7. Модификация приложения Windows Foundation Presentation: немного о стилях и шаблонах
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 8
- •Лабораторная работа № 9: Создание приложения-презентации Windows Foundation Presentation
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: работа с решением в Expression Blend
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 9
- •Лабораторная работа № 10: Работа с базами данных — xml и ole
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: odbc
- •4. Модификация приложения Windows Forms: ole
- •5. Модификация приложения Windows Forms: xml
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 10
- •Лабораторная работа № 11: Динамическая связь приложений через библиотеку классов
- •2. Удалённый объект: создание библиотеки классов удалённого объекта
- •3. Клиент: создание приложения Windows Forms
- •4. Сервер: создание консольного приложения
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 11
- •Лабораторная работа № 12: Автоматизация Microsoft Office Word
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Word
- •4. Модификация приложения Windows Forms: работа с шаблонами
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 12
- •Лабораторная работа № 13: Автоматизация Microsoft Office Excel
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Excel
- •4. Модификация приложения Windows Forms: чтение данных с документа Microsoft Excel
- •5. Модификация приложения Windows Forms: прочие возможности Microsoft Excel
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 13
- •Лабораторная работа № 14: Простой растровый редактор
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора
- •4. Модификация приложения Windows Forms: функциональность растрового редактора
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 14
- •15. Лабораторная работа № 15: Векторный редактор изображений Лабораторная работа № 15: Векторный редактор изображений
- •Вводная часть
- •О приложении к Лабораторной работе № 15
- •1. Вводная часть
- •2. Создание решения, приложения Windows Forms и библиотеки классов
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора и добавление файлов ресурсов
- •4. О будущей функциональности векторного редактора изображений
- •5. Модификация приложения Windows Forms: подготовка библиотеки классов
- •6. Модификация приложения Windows Forms: функциональность векторного редактора
- •7. Завершающая часть
- •8. О приложении к Лабораторной работе № 15
- •Лабораторная работа № 16: Windows Communication Foundation
- •2. Создание приложения wcf:
- •3. Модификация приложения wcf: приложение-клиент для wcf-службы
- •4. Создание приложения Windows Forms: сервер чата на wcf
- •5. Создание приложения Windows Forms: клиент чата на wcf
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 16
- •Лабораторная работа № 17: Знакомство с Silverlight
- •2. Создание приложения Silverlight:
- •3. Модификация приложения Silverlight: первые шаги и полноэкранный режим
- •4. Модификация приложения Silverlight: простой проигрыватель mp3-файлов
- •5. Модификация приложения Silverlight: работа с анимацией
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 17
- •Лабораторная работа № 18: Знакомство с asp.Net
- •2. Создание веб-приложения asp.Net
- •3. Модификация веб-приложения asp.Net: реализация различной функциональности
- •4. Модификация веб-приложения asp.Net: ajax
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 18
- •Вводная часть
- •О приложении к Лабораторной работе № 19
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса и добавление TabControl
- •4. Модификация приложения Windows Forms: вкладка «Просто фон!»
- •5. Модификация приложения Windows Forms: вкладка «Объекты и градиент»
- •6. Модификация приложения Windows Forms: вкладка «Мой монитор сломался!»
- •7. Модификация приложения Windows Forms: вкладка «Векторные часы»
- •8. Модификация приложения Windows Forms: вкладка «Огонь!!!»
- •9. Модификация приложения Windows Forms: вкладка «Дождик»
- •10. Завершающая часть
- •11. О приложении к Лабораторной работе № 19
- •Лабораторная работа № 20: Inventor — работа с Inventor
- •Вводная часть
- •О приложении к Лабораторной работе № 20
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: запуск и завершение приложения Inventor
- •4. Модификация приложения Windows Forms: создание новых документов
- •5. Модификация приложения Windows Forms: доступ к элементам документов Inventor
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 20
- •Лабораторная работа № 21: Знакомство с языком f# (Эф-шарп) на примере простого приложения для командной строки
- •Вводная часть
- •О приложении к Лабораторной работе № 21
- •1. Вводная часть
- •2. Основные положения при работе с f#
- •3. Создание приложения «Учебник по f#»
- •4. Создание консольного приложения
- •5. О приложении к Лабораторной работе № 21
- •Лабораторная работа № 22: Различные примеры на f#
- •2. Создание приложения «Приложение f#»
- •3. Модификация приложения f#: match
- •4. Модификация приложения f#: создание форм и рисование объектов на форме
- •5. Модификация приложения f#: работа с базой данных Microsoft Access
- •6. О приложении к Лабораторной работе № 22
- •23. Дополнительная лабораторная работа № 1
- •24. Дополнительная лабораторная работа № 2
- •25. Дополнительная лабораторная работа № 3
- •Вводная часть
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation: добавление ресурсов
- •4. Модификация приложения Windows Foundation Presentation: добавление исходного кода
- •5. Модификация приложения Windows Foundation Presentation: оформление элемента ListBox
- •6. Завершающая часть
- •7. О приложении к данной работе
3. Модификация приложения wcf: приложение-клиент для wcf-службы
Для начала изменим имя сервиса. Выделим файл Service1.svc в обозревателе решений и перейдём к его коду (правая кнопка мыши -> Перейти к коду либо F7). Код файла содержит классы для работы с параметрами сервиса, теми самыми, что были доступны в клиенте WCF. Найдём в коде строку:
// ПРИМЕЧАНИЕ. Команду "Переименовать" в меню "Рефакторинг" можно использовать для одновременного изменения имени класса "Service1" в коде, SVC-файле и файле конфигурации.
public class Service1 : IService1
{
Выделим имя класса (слово) Service1 и далее ПКМ -> во всплывающем меню: Рефакторинг -> Переименовать (или F2):
Рис. 3. 1. Переименование сервиса
Вводим в открывшемся окне имя LWP16Service, жмём ОК, в следующем окне Применить:
Рис. 3. 2. Переименование сервиса: Переименовать
Рис. 3. 2. Переименование сервиса: Просмотр изменений - Переименование
То же самое проделаем для имени интерфейса (IService1). Введём новое имя ILWP16Service. И переименуем имя файла сервиса в LWP16Service:
Слегка изменим сервис. Откроем код класса интерфейса сервиса (файл ILWP16Service.cs) и найдём:
[OperationContract]
string GetData(int value);
Изменим так:
[OperationContract]
string GetInt(int value);
[OperationContract]
string GetString(string value);
Обратим внимание на атрибуты [OperationContract] в приведенном выше коде. Эти атрибуты обязательны для любого метода, предоставляемого службой. Параметры которым обладает «контракт»:
IsInitiating – если true тогда связь с сервисом и сессия начинается, создается объект реализации на сервисе и запускается его конструктор. IsOneWay – если true данный метод ничего не возвращает и только в одну сторону. IsTerminating – значение true этого параметра приводит к тому, что по окончанию его обработки на сервисе связь с клиентом прерывается и сессия закрывается, т.е. последующие обращения к сервису приведут к ошибкам. Выглядит это так:
[OperationContract(IsInitiating = true, IsOneWay = false, IsTerminating = false)]
Для [ServiceContract]:
[ServiceContract(SessionMode = SessionMode.Required)]
Параметр SessionMode отвечатет за то, разрешены, запрещены или требуются ли сеансы.
В файле LWP16Service.svc.cs найдём:
public class LWP16Service : ILWP16Service
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
Заменим на:
public string GetInt(int value)
{
return string.Format("Вы ввели число: {0}", value);
}
public string GetString(string value)
{
return string.Format("Вы ввели строку: {0}", value);
}
Сервис можно компилировать по конфигурации Release (Построение -> Построить решение, либо F6).
Осталось добавить клиентское приложение. Интегрируем такое приложение непосредственно в текущее решение. Для этого выполним следующие действия: Файл -> Создать -> Проект. В окне открывшемся окне «Создать проект», в поле Решение, выберем: Добавить в решение. В качестве проекта выберем Приложение Windows Forms. Имя будет: LWP16WCFClient. Жмём ОК. Получим следующее:
Рис. 3. 3. Обозреватель решений: содержимое решения, состоящего из двух проектов
Теперь интегрируем службу LWP16Service.svc в форму. Для этого в обозревателе решений выделим имя проекта (LWP16WCFClient), далее жмём правую кнопку мыши -> Добавить ссылку на службу...:
В открывшемся окне жмём на Найти, далее Службы решения. Наша служба автоматически добавится в список. В поле Пространство имён вводим: LWP16ServiceReference:
Рис. 3. 4. Добавить ссылку на службу: добавление службы из нашего решения в другой проект этого же решения
Жмём ОК. И откроем конструктор формы клиентского проекта2.
ПРИМЕЧАНИЕ № 2: Для перехода на визуальное представление формы, необходимо двойным нажатием в обозревателе решений нажать на значок формы ( ) или выбрать вкладку на панели вкладок с именем <имя формы>.cs [Конструктор].
На форме клиентского проекта Form1 расставим два текстовых поля, под ними одну кнопку и ещё ниже два статических поля Label. Все имена и свойства добавленных элементов оставим без изменений. Задаём следующие параметры самой формы на панели Свойства:
(Name) |
изменим с Form1.cs3 на LWP16Main |
^ Поменяем внутреннее имя формы.
Text |
изменим с Form1 на Клиент для службы WCF (C#) |
^ Поменяем заголовок формы (то, что отображается в шапке приложения слева).
MaximizeBox |
изменим с True на False |
^ Уберём кнопку Развернуть.
Icon |
изменим изображение (иконку) приложения |
^ Необходим файл значка *.ico.
FormBorderStyle |
> изменим с Sizable на FixedDialog |
^ Сделаем окно «неизменяем» по размерам.
Size |
изменим со значений 290; 290 на 350; 200 |
^ Поменяем размер формы.
ПРИМЕЧАНИЕ № 3: Для того, чтобы поменять имя файла нашей формы, необходимо выполнить следующее: выделить в обозревателе решений значок формы ( ) и нажать правую кнопку мыши, затем выбрать Переименовать. Ввести необходимое новое имя СОХРАНЯЯ расширение *.cs. После смены имени, автоматически поменяются имена проассоциированных непосредственно с формой файлов:
Форма будет выглядеть примерно так:
Рис. 3. 5. Модифицированная форма приложения и расстановка необходимых элементов управления
Кнопку и текстовые поля TextBox растянем до границ формы.
Дважды щёлкнем по кнопке на форме, тем самым создав событие Click. Впишем код:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "Ведите число") { textBox1.Text = "0"; }
LWP16ServiceReference.LWP16ServiceClient client = new LWP16ServiceReference.LWP16ServiceClient(); // Открываем сеанс связи со службой
returnString1 = client.GetInt(Convert.ToInt32(textBox1.Text));
label1.Text = returnString1;
returnString2 = client.GetString(textBox2.Text);
label2.Text = returnString2;
client.Close(); // Закрываем сеанс связи
}
В этом же файле найдём:
public partial class LWP16Main : Form
{
Вставим после:
String returnString1;
String returnString2;
Код метода LWP16Main() изменим так:
public LWP16Main()
{
InitializeComponent();
label1.Text = "";
label2.Text = "";
textBox1.Text = "Ведите число";
textBox2.Text = "Введите строку";
button1.Text = "Связать со службой";
}
И для первого (верхнего) TextBox объявим событие KeyPress, в котором запретим вводить все символы кроме цифр. Если этого не сделать, поймаем исключение. Служба на это поле будет передавать данные из метода GetInt(), который в качестве параметра принимает только int. Можно обойтись и без события для TextBox, тогда исключение можно обработать try-catch блоком. Код события:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// Введённые символы должны быть только цифрами, иначе ввода не будет (символ не введётся)
if (!Char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
Сделаем нашу форму автоматически запускаемой при компиляции. Откроем свойства решения ( ) и в поле Запускаемый проект выберем LWP16WCFClient:
Компилируем приложение (Release) и запускаем. Откроется форма клиента. Вводим в первое поле цифры, во второе какую-нибудь строку и жмём на кнопку Связаться со службой. Получаем ответ в виде двух статических строк внизу формы:
Рис. 3. 6. Модифицированное приложение Windows Forms: работа клиента для службы WCF