Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 376

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 370 371 372 373 374 375 < 376 > 377 378 379 380 381 382 .. 404 >> Следующая

Практический пример 2 — Менеджер рассылки новостей в режиме онлайн

801

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

Прежде чем окончательно создать отношение, требуется учесть еще один момент: необходимость установки Referenda! Integrity (ссылочная целостность) и включения Cascade Delete (каскадное удаление), как это показано на рисунке. Поступив таким образом, мы добьемся того, что при удалении некоторого списка привязанные к нему подписчики также будут автоматически удалены. Есть еще опция Cascade Update (каскадное обновление), которая гарантирует, что все значения List id в таблице subscribers будут обновляться при изменении значений id в таблице Lists, однако нам такой режим не требуется, поскольку поле id имеет значение типа AutoNumber, которое не может изменяться после включения записи в таблицу.

Теперь нам следует создать отношения между таблицами Lists—NewsHistory и Subscribers—usersData аналогичным образом, определяя, между какими полями должны быть установлены связи с помощью вышеприведенного рисунка.

Бизнес-классы, предназначенные для доступа в базе данных

Код, который осуществляет работу с базами данных, логически и физически подразделяется на несколько различных классов. Все эти классы будут откомпилированы в библиотеку классов с именем NewsMaiierDB. Остальная часть кода — классы кода поддержки приложения — будет помещена в отдельный модуль. Это наилучший подход, ибо, если возникает необходимость внести какие-либо изменения в работу базы данных или требуется установить новую версию SQL Server, для этого будет нужно внести изменения и повторно откомпилировать только бизнес-модуль. Это лучше, чем компилировать все вместе (бизнес-классы и класс поддержки) в единый модуль, поскольку можно использовать бизнес-модуль самостоятельно, например, в клиентской части приложения Windows.

Для данного приложения такой подход не дает существенных преимуществ; структура приложения является довольно простой, компилировать приходигсл не такие уж большие файлы, и никакие другие клиенты эти бизнес-классы не используют. Поэтому, даже если мы все откомпилируем в единую DLL, это не приведет к серьезным проблемам. Но мы будем использовать отдельные DLL-модулн, для того чтобы продемонстрировать, насколько все это просто, и для того, чтобы приучить вас к хорошим манерам!
802____________________________________________________________Практический пример

Еслн вы разрабатываете проект с нуля, вы должны посвятить все время, затраченное на создание проекта, объектно-ориеитнроваииой разработке, для чего обычно следует отделить бизнес-классы от кода пользовательского интерфейса н компилировать их в разные библиотеки. Разбиение кода на несколько отдельных модулей может быть осуществлено и позднее, поскольку это относится к процедуре компиляции. Однако при этом необходимо создавать такие классы, единственная задача которых — осуществлять взаимодействие с базой данных, размещая весь код, ответственный за пользовательский интерфейс, в других классах.

Создание проекта

Если для разработки используется Visual Studio.NET, то следует создать новый проект с типом C# | Class Library и назвать его NewsMailerDB. Затем необходимо приступить к созданию файлов классов для данного модуля, что будет объясняться в следующих разделах. Необходимо создать новый файл для каждого класса с помощью команды Project J Add New Class, либо с помощью Project | Add Existing Item, еслн вы пожелаете импортировать готовые файлы с web-сайта издательства Wrox.

Обратите внимание на то, что код этих бнэнес-классов воспроизводится а тексте книги.

Класс ListsDB

Класс ListsDB предоставляет все функциональные возможности, необходимые как для выполнения манипуляций над уже существующими списками рассылки, так и для создания новых. Информация об этом классе сведена в следующую таблицу:

Класс ListsDB Метод Описание
public ListsDB (string ConnString) Конструктор класса, которому в качестве параметра передается строка соединения, описываемая в установках файла (к нх обсуждению мы перейдем позже)
public DataSet GetListsO Возвращает объект DataSet, в котором содержатся все доступные списки новостей
public DataRow GetDetails(int ListiD) Позволяет получать подробную информацию о списке по заданному идентификатору
public bool Add(string ListName, string listDeecr) Добавляет новый список с заданным именем н описанием
public bool Delete(int ListiD) Удаляет указанный список
bool Update(int ListiD, string ListMnme, Позволяет НЗМеиять свойства Нате и Description
string listDescr) указанного списка

Метод GetListsO возвращает набор данных, в котором находится все содержимое таблицы Lists, то есть все доступные списки и их свойства. Этот метод возвращает единственный список, который задается идентификатором, передаваемым методу в качестве параметра,
Предыдущая << 1 .. 370 371 372 373 374 375 < 376 > 377 378 379 380 381 382 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.