Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework
- Название:Программирование мобильных устройств на платформе .NET Compact Framework
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2006
- Город:Москва • Санкт-Петербург • Киев
- ISBN:5-8459-0989-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework краткое содержание
Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.
Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.
Программирование мобильных устройств на платформе .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Приведенный в листинге 14.1 код позволяет создать приложение, представленное на рис. 14.1. Для создания приложения потребуется выполнить следующие действия:
1. Запустите Visual Studio .NET (2003 или более позднюю версию) и выберите в качестве типа приложения C# Smart Device Application.
2. Выберите в качестве целевой платформы Pocket PC. (Для вас будет автоматически создан проект, и на экране появится окно конструктора форм Pocket PC.)
3. Добавьте в форму элемент управления Button. (Ему будет автоматически присвоено имя button1.)
4. Добавьте в форму элемент управления TextBox. (Ему будет автоматически присвоено имя textBox1.)
5. Установите для свойства MultiLine элемента управления TextBox значение true и измените размеры текстового окна таким образом, чтобы оно заняло почти всю форму.
6. Установите для свойства ScrollBar элемента управления TextBox значение vertical.
7. Дважды щелкните на элементе управления Button в окне конструктора форм и введите код функции button1_Click(), приведенный в листинге.
8. Введите весь оставшийся код, приведенный в листинге 14.1.
9. Вернитесь в окно конструктора форм.
10. Установите для свойства MinimizeBox формы значение false. Благодаря этому во время выполнения в верхней правой части формы появится кнопка OK, с помощью которой вы легко сможете закрыть форму и выйти из приложения. Эта возможность оказывается очень полезной при многократном тестировании приложения.
11. Запустите приложение и щелкните на кнопке Button; полученные вами результаты должны воспроизводить те, которые представлены на рис. 14.1.

Рис. 14.1. Простой пример, демонстрирующий создание объекта ADO.NET DataSet
//Объект DataSet, который мы собираемся загрузить
System.Data.DataSet m_myDataSet;
//Константы, которые будут использоваться
const string FILE_EMPTY_DATASET = "EmptyDataSet.xml";
const string FILE_1TABLE_DATASET = "1TableDataSet.xml";
const string dividerLine = "-----------------------------\r\n";
const string nextLine = "\r\n";
//-------------------------------------------------------
//Загрузить содержимое файла и присоединить его к тексту,
//содержащемуся в элементе управления textBox1
//-------------------------------------------------------
private void addFileContentsToTextBox(string fileName) {
//Открыть файл и считать его содержимое
System.IO.StreamReader myStreamReader;
myStreamReader = System.IO.File.OpenText(fileName);
string fileText = myStreamReader.ReadToEnd();
//Закрыть файл
myStreamReader.Close();
//Присоединить содержимое к тексту, находящемуся в текстовом окне
textBox1.Text = textBox1.Text +
dividerLine + "FILE: '" + fileName + "'" + nextLine +
dividerLine + fileText + nextLine;
}
//-------------------------------------------------------
//1. Создает набор данных,
// сохраняет набор данных в виде XML,
// отображает результаты в текстовом окне
//2. Добавляет таблицу данных в набор данных,
// добавляет два типизированных столбца в таблицу данных,
// добавляет две строки в таблицу данных,
// сохраняет набор данных в виде XML,
// отображает результаты в текстовом окне
//-------------------------------------------------------
private void button1_Click(object sender, System.EventArgs e) {
//Очистить текстовое окно от содержимого
textBox1.Text = "";
//===========================================
//1. Создать новый набор данных
//===========================================
m_myDataSet = new System.Data.DataSet("HelloWorld-DataSet");
//Записать содержимое ADO.NET DataSet в виде XML и отобразить
//файл в текстовом окне
m_myDataSet.WriteXml(FILE_EMPTY_DATASET);
addFileContentsToTextBox(FILE_EMPTY_DATASET);
//==================================================
//2. Добавить таблицу данных в набор данных ADO.NET,
// а также 2 строки данных в таблицу данных
//==================================================
System.Data.DataTable myTestTable;
myTestTable = m_myDataSet.Tables.Add("TestTable");
//----------------------------
//Добавить 2 столбца в таблицу
//----------------------------
//Добавить столбец данных в таблицу DataTable набора DataSet
myTestTable.Columns.Add("TestColumn0", typeof(System.DateTime));
//Добавить строковый столбец в таблицу DataTable набора DataSet
myTestTable.Columns.Add("TestColumn1", typeof(string));
//--------------------------------
//Добавить строки данных в таблицу
//--------------------------------
//Добавить строку данных в таблицу данных
object[] rowOfData;
rowOfData = new object[2];
//Столбец 0 — это тип даты
rowOfData[0] = System.DateTime.Today;
//Столбец 1 — это строковый тип
rowOfData[1] = "а string of data today";
myTestTable.Rows.Add(rowOfData);
//Добавить вторую строку данных в таблицу данных
object[] rowOfData2;
rowOfData2 = new object[2];
//Столбец 0 — это тип даты
rowOfData2[0] = System.DateTime.Today.AddDays(1);
//Столбец 1 — это строковый тип
rowOfData2[1] = "tomorrow's string";
myTestTable.Rows.Add(rowOfData2);
//Записать содержимое набора ADO.NET DataSet в виде XML и отобразить
//файл в текстовом окне
m_myDataSet.WriteXml(FILE_1TABLE_DATASET);
addFileContentsToTextBox(FILE_1TABLE_DATASET);
} //Конец функции
Отслеживание изменения данных
Объекты ADO.NET DataSet автоматически отслеживают изменения, вносимые в содержащиеся в них данные, включая создание, удаление и изменение строк данных в таблицах данных. Затем эти изменения могут быть приняты или отвергнуты, а принятые изменения переданы в базу данных в соответствии с необходимостью. Если источник данных рассредоточен по нескольким базам данных, то возможно даже обновление данных с использованием распределенных транзакций.
Важно понимать, что объектам ADO.NET DataSet ничего не известно о базах данных, в которых данные хранятся постоянно; для восполнения этого пробела используются классы DataAdapter. Класс ADO.NET DataAdapter предназначен для перемещения данных между объектами ADO.NET DataSet и долговременными хранилищами. Все классы ADO.NET DataAdapter состоят из пользовательского кода; любая логика, необходимая для подключения к источнику данных, с которым ведется работа, получения этих данных и их обновления, пишется разработчиком. По сути дела, объекты ADO.NET DataSet представляют собой небольшие базы данных в памяти, и классы DataAdapter пишутся для того, чтобы обеспечить синхронизацию данных DataSet с базой данных; находится ли эта база данных на устройстве или на сервере, известно лишь коду адаптера данных (data adapter).
Объекты DataAdapter могут существовать либо на стороне клиента, либо на стороне сервера. Если адаптер данных находится на сервере, то для предоставления ему данных объекта ADO.NET DataSet их копия должна быть передана с клиента на сервер. Обычно передача набора данных DataSet с клиента на сервер осуществляется путем сериализации объекта DataSet в XML, передачи его на сервер и последующей реконструкции DataSet из XML. Для всего этого в ADO.NET предусмотрена встроенная поддержка. Данная модель хорошо приспособлена для работы с Web-службами. Во многих случаях желательно избавить клиента от необходимости знать что-либо о конечных базах данных, к которым осуществляется доступ; это позволяет упростить архитектуру приложения за счет централизации доступа к базе данных на сервере. В подобных случаях данные объекта ADO.NET DataSet обычно передаются с клиентского устройства Web-службе, выполняющейся на сервере. Web-служба повторно загружает XML-данные в объект ADO.NET DataSet, а затем передает их в адаптер данных ADO NET, который и выполняет все необходимые обновления на сервере. Следует отметить, что объекты ADO.NET DataSet обладают такими встроенными механизмами, которые позволяют передавать на сервер лишь те данные DataSet, которые претерпели изменения (так называемые "диффграммы" ("diffgram"), или диаграммы отличий), это избавляет от необходимости перемещения полностью всех данных, содержащихся в DataSet, если изменились только несколько строк.
Читать дальшеИнтервал:
Закладка: