ebook img

Базы данных. Разработка клиентских приложений на платформе .net PDF

231 Pages·2017·4.467 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Базы данных. Разработка клиентских приложений на платформе .net

А.В. БЛАГОДАРОВ, Н.Н. ГРИНЧЕНКО, А.Ю. ГРОМОВ БАЗЫ ДАННЫХ. РАЗРАБОТКА КЛИЕНТСКИХ ПРИЛОЖЕНИЙ НА ПЛАТФОРМЕ .NET Рязань 2017 Аннотация Книга содержит учебные и практические материалы, посвященные изучению взаимодействия клиентских приложений с базами данных. Проектирование серверной части рассматривается с точки зрения разработки структур реляционных баз данных и программирования их объектов на языке SQL в СУБД MS Sql Server. Разработка интерфейса пользователя рассматривается на основе технологий платформы .Net в среде MS Visual Studio. Предназначено для студентов очной и заочной форм обучения направлений 09.03.01 «Информатика и вычислительная техника», 02.03.03 «Математическое обеспечение и администрирование информационных систем», 38.03.05 «Бизнес-информатика» по дисциплинам «Базы данных и клиент-серверные приложения», «Программирование клиентских приложений», «Распределенные системы», а также обучающихся всех форм обучения направления 38.04.04 «Госудасртвенное и муниципальное управление». 2 Оглавление ВВЕДЕНИЕ .................................................................................................................... 4 1 ПРОГРАММИРОВАНИЕ НА C# ........................................................................ 5 2 СОЗДАНИЕ ОБЪЕКТОВ БАЗ ДАННЫХ В MS VISUAL STUDIO .............. 34 3 РАЗРАБОТКА WINDOWS-ПРИЛОЖЕНИЯ ДЛЯ РАБОТЫ С БАЗОЙ ДАННЫХ .............................................................................................................................. 51 4 ПОДКЛЮЧЕНИЕ К ИСТОЧНИКАМ ДАНЫХ ............................................... 65 5 ОРГАНИЗАЦИЯ ЗАПРОСОВ К БАЗАМ ДАННЫХ ...................................... 79 6 ВЫЗОВ ХРАНИМЫХ ПРОЦЕДУР ИЗ КЛИЕНТСКИХ ПРИЛОЖЕНИЙ ... 94 7 СОЗДАНИЕ ОТЧЕТОВ .................................................................................... 105 8 РАБОТА С БАЗОЙ ДАННЫХ В ОТСОЕДИНЕННОМ РЕЖИМЕ ............. 117 9 ИСПОЛЬЗОВАНИЕ ТРАНЗАКЦИЙ .............................................................. 132 10 ENTITY FRAMEWORK ................................................................................... 150 11 ИНТЕРАКТИВНЫЙ АНАЛИЗ ДАННЫХ ..................................................... 165 12 СОЗДАНИЕ ИНСТАЛЛЯТОРОВ ДЛЯ КЛИЕНТ-СЕРВЕРНЫХ ПРИЛОЖЕНИЙ БАЗ ДАННЫХ ....................................................................................... 175 13 ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ПРОЕКТИРОВАНИЯ СТРУКТУРЫ БАЗЫ ДАННЫХ ................................................................................................................ 193 ПРИЛОЖЕНИЕ. Предметные области ................................................................... 221 Список литературы .................................................................................................... 231 3 ВВЕДЕНИЕ Книга посвящена вопросам проектирования и разработки клиент- серверных приложений, используемых в информационных системах различного назначения и масштаба. Одним из важнейших аспектов при разработке информационных систем является разработка клиентских приложений баз данных (БД). Основной функцией таких приложений является представление информации в удобном для пользователя виде. Для разработки клиентских приложений могут с успехом использоваться современные системы программирования общего назначения, такие как: Microsoft Visual Studio, Borland Delphi, Borland C++ Builder и др. Большинство систем программирования общего назначения содержат развитые средства взаимодействия с БД, с помощью которых можно осуществлять доступ к практически любым базам данных. В книге рассматриваются примеры разработки клиентских приложений с указанием фрагментов кода, написанных с использованием популярной среды разработки программного обеспечения Microsoft Visual Studio. В рамках данной книги рассматривается доступ к базам данных с помощью технологии ADO.NET. В качестве системы управления базами данных (СУБД) используется MS SQL Server 2014. Книга ориентирована на читателей имеющих базовые знания в областях информатики, алгоритмизации и функционального программирования. Структура книги организована с учетом базовых знаний читателя. Разделы 1-6 следуют в порядке углубления формируемых компетенций. Разделы 7-13 можно изучать в любом порядке. Раздел 1 представляет собой разбор базовых понятий объектно- ориентированного подхода на языке программирования C#. Разделы 2, 3, 4, 5, 6 содержат основные подходы к разработке клиентских приложений в среде MS Visual Studio на языке C# с использованием технологии ADO.NET. Разделы 7, 8, 9, 10, 11, 12 предназначены для рассмотрения дополнительных технологий и подходов организации интерфейса между пользователем и ресурсами БД, а так же утилит позволяющих организовать анализ и вывод хранимой информации. Кроме того приводится информация, касающаяся разработки программ-инсталляторов. Раздел 13 посвящен раработке моделей данных с помощью CASE-средств, предоставляющих разработчикам механизмы прямого и обратного проектирования схем баз данных. 4 1 ПРОГРАММИРОВАНИЕ НА C# 1.1 Платформа Microsoft .NET .NET – это платформа, созданная компанией Microsoft, для разработки разнотипных приложений на различных языках программирования под различные операционные системы. Использование данной платформы позволяет: 1. Разрабатывать приложения на любых языках программирования, поддерживающих платформу .NET. 2. Разрабатывать приложения различных типов: консольные приложения, Windows-приложения, web-приложения, распределенные приложения. 3. Разрабатывать приложения, работающие под управлением различных операционных систем. Структуру платформы .NET можно представить в виде рис. 1.1. Рис. 1.1. Структура платформы .NET Платформа .NET является надстройкой над операционной системой и состоит из ряда компонентов: 1. Среда разработки приложений Visual Studio.NET. 2. Каркас .NET Framework состоит из двух частей: а) библиотека классов FCL (Framework Class Library); б) общеязыковая среда исполнения программ (CLR – Common Language Runtime). 3. Набор серверов .NET Enterprise Servers, который включает Windows Server, SQL Server и другие приложения. 4. Набор сервисов .NET Building Block Services. Представляет собой набор служб, предназначенных для решения часто встречающихся задач, таких как идентификация, оповещение и др. Библиотека классов FCL включает классы платформы .NET. Программы, написанные на любом из языков .NET, могут использовать классы и методы FCL. Классы библиотеки организованы в виде пространств имен. 5 Пространство имен (namespace) – это концепция, позволяющая: 1. Разбить множество существующих классов на логические группы. 2. Разрешить конфликты между классами, имеющими одинаковые имена и располагающимися в различных библиотеках. Основным пространством имен библиотеки FCL является пространство System, содержащее как классы, так и другие вложенные пространства имен. Все базовые типы, используемые каждым приложением, описаны в System. На платформе .NET программы с любого языка компилируются не в исполняемые файлы, а в файлы на промежуточном языке MSIL (Microsoft Intermediate Language). Это машинно-независимый код низкого уровня, каждая команда которого эквивалентна одной или нескольким командам ассемблера. В результате компиляции исходной программы создается модуль .dll или .exe, который не имеет ничего общего с обычным исполняемым файлом. Такие файлы называются сборкой (Assemble). Например, для двух одинаковых программ, написанных на языке C# и VB.NET. сборки будут идентичны. Структура сборки включает следующеие части:  манифест;  метаданные;  код IL. Структура сборки автоматически генерируется и заполняется при компиляции. В манифесте содержится информация о текущей версии сборки, об использованных ограничениях по безопасности, о поддерживаемом языке, а также список всех внешних сборок, которые потребуются для нормального выполнения данной сборки. Метаданные – это набор таблиц данных, подробно описывающих классы, которые определены в сборке. Таким образом, можно считать, что сборки .NET являются полностью самодокументированными. Вся перечисленная информация используется для управления выполнением IL-кода, поэтому сборки также называют управляемыми модулями. Управление исполнением кода IL выполняет общеязыковая среда исполнения программ CLR. CLR это виртуальная машина, исполняющая программы, написанные на .NET- языках. CLR автоматически загружается и инициализируется при запуске управляемого модуля. При выполнении программы CLR вызывает компилятор времени выполнения JIT, переводящий код IL в машинные команды конкретного процессора, которые немедленно выполняются. JIT означает «just in time», что можно перевести «только во время». То есть компилируются только те части программы, которые требуется выполнить в данный момент. Каждая часть программы компилируется один раз и сохраняется в кэш-памяти для дальнейшего использования. При повторном использовании кода Jit уже не будет заново компилировать этот код, а возьмет уже готовый из кэша. 6 В общем случае создание и выполнение приложения по технологии .NET можно представить в виде рис. 1.2. Рис. 1.2. Создание и выполнение приложения по технологии .NET 1.2 Структура программы на языке C# Пример: Написать программу, которая выводит на консоль текстовую строку и ждет нажатия Enter для завершения программы: using System; namespace AppSpace { class AppClass { static void Main() { System.Console.WriteLine("Hello, world"); System.Console.ReadLine(); } } } Ключевое слово using предписывает компилятору просматривать в процессе своей работы пространство имен System, в котором определен класс Console, позволяющий работать с консолью. Ключевое слово namespace создает собственное пространство имен AppSpace нашего приложения. Фигурные скобки в языке C# выполняют функции операторных скобок begin и end в языке Pascal. Пространство AppSpace содержит определение класса AppClass, в котором определен единственный метод Main. В любом приложении C# должен быть определен класс с методом Main(). Этот метод будет использован как точка входа приложения, т.е. работа приложения начнется с выполнения этого метода. Можно создать несколько классов с методами Main(), но в этом случае придется явно указать, какой из них будет использован в качестве точки входа. Слово static указывает на создание статического метода. Такой метод может начать выполняться еще до создания 7 первого экземпляра класса, в котором он определен. Слово void показывает, что данный метод не возвращает значения. Метод Main вызывает метод WriteLine класса Console, который выводит на консоль текстовую строку, и метод ReadLine, с помощью которого работа программы приоcтанавливается до нажатия клавиши Enter. 1.3 Типы данных C# Общеязыковая среда исполнения программ CLR содержит общую систему типов CTS (Common Type System), в которой описаны предопределенные типы данных, доступные в IL. Рассмотрим более подробно обобщенную систему типизации, принятую в .NET (рис.1.3). System.Object Типы значений Ссылочные типы System.ValueType System.Array System.String System.Byte ... System.Int32 Классы определяемые пользователем ... System.Double System.Boolean Структуры определяемые пользователем Перечисления Рис. 1.3. Структура платформы .NET CTS определяет любой тип как класс, поэтому он может быть связан отношением наследования с другими классами. Это позволяет рассматривать все типы в виде иерархии классов. При этом общим предком всех типов в CTS является тип System.Object. Типы иерархии CTS подразделяются на типы значений и ссылочные типы. Типы значений содержат данные, которые размещаются в стеке. Типы значений могут быть базовыми, определенными пользователем или перечислениями. 8 Ссылочные типы хранят ссылку на адрес памяти и размещаются в куче. Ссылочные типы могут быть массивами, строками, пользовательскими классами и т.п. Переменные, являющиеся типами значений, имеют собственную копию данных, и поэтому операции над одной переменной на другие переменные не влияют. Переменные, являющиеся ссылочными типами, могут ссылаться на один и тот же объект, поэтому операции над одной переменной могут повлиять на объект, на который ссылается другая переменная. Каждый базовый тип любого языка программирования .NET отображается в соответствующий тип CTS, поэтому названия типов в языках программирования называют псевдонимами типов CTS. Например, тип CTS System.Int32 в языке C# имеет псевдоним int, а в Delphi - псевдоним integer. Приведем примеры базовых типов значений CTS и соответствующих им псевдонимов языка программирования С# (табл. 1.1). Табл. 1.1. Базовые типы Категория Тип СТS Имя псевдонима Описание С# System. SByte sbyte 8 -разрядный байт со знаком Знаковые System. Int16 short 16-разрядное число со знаком целые System. Int32 int 32-разрядное число со знаком System. Int64 long 64-разрядное число со знаком System. Byte byte 8 -разрядный байт без знака Беззнаковые System. UInt16 ushort 16-разрядное число без знака целые System. UInt32 uint 32-разрядное число без знака System. UInt64 ulong 64-разрядное число без знака System. Single float 32-разрядное число с плавающей точкой стандарта IEEE Веществен- System. Double double 64-разрядное число с плавающей точкой ные стандарта IEEE System. Decimal decimal 128-разрядный тип данных с точностью до 28 или 29 знака — используется главным образом в финансовых приложениях, для которых требуется высокая точность. Символьный System.Char char 16-разрядный символ Unicode Логический System. Boolean bool Булевское значение (true/false) Объявление переменной некоторого типа: int x, y, z; Присвоение значения переменной: x=5; Инициализация при объявлении: int x=5; Возможна одновременная инициализация нескольких переменных: 9 int x,y,z; x=y=z=5; В языке C# нельзя использовать неициализированную переменную, система выдаст ошибку компиляции. Эту проблему можно решить с помощью, так называемых обнуляемых типов (nullable). Это особая версия типа значений, которая кроме значений, определенных исходным типом, включает значение null. Обнуляемые типы являются объектами класса System.Nullable<тип>, где тип может быть только типом значений. Такой тип можно создать двумя способами. Первый заключается в явном объявлении объекта класса System.Nullable. Например, System.Nullable<int> count; System.Nullable<bool> flag; Тоже самое можно сделать следующим образом: int? count; bool? flag; При создании обнуляемый объект автоматически не содержит значения null. Когда потребуется, можно будет присвоить объекту требуемое значение. Например, count =null; flag=null; … count=10; flag=true; Переменные типа bool содержат значения True и False, причем в языке C# нет преобразования между значениями True и False и целыми значениями 0 и 1, соответственно. Переменные типов char и string содержат символы в формате Unicode, который используется для представления символов национальных алфавитов и хранит один символ в двух байтах. Объявление константы выполняется следующим образом: const double pi=3.1415926535; const char letter=’a’; const string name=”Иванов”; В языке C# идентификаторы начинаются с буквы или знака подчеркивания и могут содержать буквы, цифры и знаки подчеркивания. При записи идентификаторов и ключевых слов различаются строчные и прописные символы. Переменные и константы могут объявляться в любом месте программы, при этом они доступны только в том блоке, где были объявлены. 1.4 Преобразование и приведение типов В языке C# возможно явное и неявное преобразование типов. Неявное преобразование автоматически выполняет компилятор, если множество значений целевого типа включает множество значений приводимого типа. 10

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.