Разработка Интернет-системы «Электронная библиотека кафедры МОКС»
Интеграция языков программирования. Технология СОМ поддерживает взаимодействие разных языков — .NET Framework обеспечивает интеграцию разных языков, то есть один язык может использовать типы, созданные на других языках. Например, .NET Framework позволяет создать на C++ класс, производный от класса, реализованного на VisualBasic. В CLR это возможно из-за наличия общей системы типов (Common Type… Читать ещё >
Разработка Интернет-системы «Электронная библиотека кафедры МОКС» (реферат, курсовая, диплом, контрольная)
Содержание электронный библиотека интернет база Введение.
1. Постановка задачи проектирования.
2. Проектирование Интернет-системы «Электронная библиотека кафедры МОКС» .
2.1 Общая архитектура системы.
2.2 Проектирование базы данных системы.
2.3 Планирование структуры Web-системы.
2.4 Дизайн страниц.
3. Разработка Интернет-системы в среде Visual Studio.NET.
3.1 Краткое описание использованной технологии.
3.2 Физическая модель базы данных.
3.3 Разработка бизнес-логики Интернет-системы «Электронная библиотека кафедры МОКС» .
Выводы Список источников Приложение.
Изначально веб-страницы были примитивными статическими страницами с множеством разнообразно размеченного текста. Веб-страницы обычно создаются на языках HTML — HyperText Markup Language (Язык гипертекстовой разметки). Язык HTML является самым простым из языков программирования, однако на сегодняшний момент некоторые веб-страницы можно заслуженно назвать шедевром программирования. Современные веб-страницы могут быть также написаны с использованием разных языков, зачастую это JavaScript или Jquery. Но на сегодняшний момент веб-страницы становятся форумами с большим количеством информации о пользователях, их темах, их файлах и т. п. Поэтому одного HTML с JavaScript и JQuery уже не хватает и тут на помощь приходят базы данных, которые дают возможность быстро добраться до нужной информации. Microsoft разработала уникальную среду разработки, в которой можно достаточно быстро разработать страницу с базой данных и при этом, нет необходимости запускать среду для создания базы данных и производить связи и другие настройки и параллельно с этим работать непосредственно с самой страницей, так как все эти функции Microsoft Visual Studio.NET предоставляет нам в пару кликов. Microsoft Visual Studio.NET настолько удобная среда разработки приложений, что большую часть функционала и дизайна создаваемой системы можно настроить без базовых знаний программирования.
1. Постановка задачи проектирования.
Разработать электронную библиотеку для размещения в облаке документации кафедры МОКС ОНУ им. Мечникова. К документации кафедры относятся такие материалы:
— Протоколы заседаний кафедры.
— Протоколы научных семинаров.
— Учебные погодичные планы.
— Учебная нагрузка преподавателей Текущие документы такие как:
— Графики консультаций.
— Темы дипломных робот.
— Темы курсовых робот.
— Расписание.
— Текущие мероприятия учебного года.
— Научные роботы Публикации членов кафедры по текущему году такие как:
— Методические указания.
— Результаты контрольных тестирований Также публикация других авторов.
— Учебники.
— Справочники Задание Электронная библиотека кафедры должна позволить менеджерам кафедры и всем сотрудникам вносить, просматривать любые документы. Размещать в библиотеке свои документы Для поиска документов должны быть реализованы специальные функциональные возможности:
— Поиск по авторам и периоду загрузки файла.
— Поиск по типу файлов и периоду загрузки Менеджер кафедры должен иметь возможность модифицировать информацию в справочных таблицах.
2. Проектирование Интернет-системы «Электронная библиотека кафедры МОКС» .
2.1 Общая архитектура системы Для реализации Интернет-системы «Электронная библиотека кафедры МОКС» была выбрана среда разработки Microsoft Visual Studio. Современные программные приложения и информационные системы достигли высокого уровня развития и термин или понятие «архитектура» в применении к ним позволяет грамотно построить и сконструировать информационную систему в целом, обеспечивая ее эффективное и надежное функционирование. Архитектура информационной системы — концепция, определяющая модель, структуру, выполняемые функции и взаимосвязь компонентов информационной системы.
По мере развития программных систем все большее значение приобретает их интеграция друг с другом с целью построения единого информационного пространства предприятия.
Для того чтобы построить правильную и надежную архитектуру и грамотно спроектировать интеграцию программных систем необходимо четко следовать современным стандартам в этих областях. Без этого велика вероятность создать архитектуру, которая неспособна развиваться и удовлетворять растущим потребностям пользователей ИТ. В качестве законодателей стандартов в этой области выступают такие международные организации как SEI (Software Engineering Institute), WWW (консорциум World Wide Web), OMG (Object Management Group), организация разработчиков Java — JCP (Java Community Process), IEEE (Institute of Electrical and Electronics Engineers) и другие.
Базовой архитектурой для реализации Веб-приложений стала Многозвенная архитектура «клиент-сервер». Наиболее распространена трехуровневая архитектура (трехзвенная архитектура, three-tier), предполагающая наличие следующих компонентов приложения: клиентское приложение («тонкий клиент» или терминал), подключенное к серверу приложений, который в свою очередь подключен к серверу базы данных (рисунок 1.1).
— Терминал — это интерфейсный (обычно графический) компонент, который представляет первый уровень, собственно приложение для конечного пользователя. Первый уровень не должен иметь прямых связей с базой данных (по требованиям безопасности), быть нагруженным основной бизнес-логикой (по требованиям масштабируемости) и хранить состояние приложения (по требованиям надежности). На первый уровень может быть вынесена и обычно выносится простейшая бизнес-логика: интерфейс авторизации, алгоритмы шифрования, проверка вводимых значений на допустимость и соответствие формату, несложные операции (сортировка, группировка, подсчет значений) с данными, уже загруженными на терминал.
— Сервер приложений располагается на втором уровне. На втором уровне сосредоточена большая часть бизнес-логики. Вне его остаются фрагменты, экспортируемые на терминалы, а также погруженные в третий уровень хранимые процедуры и триггеры.
— Сервер базы данных — обеспечивает хранение данных и выносится на третий уровень. Обычно это стандартная реляционная или объектно-ориентированная СУБД. Если третий уровень представляет собой базу данных вместе с хранимыми процедурами, триггерами и схемой, описывающей приложение в терминах реляционной модели, то второй уровень строится как программный интерфейс, связывающий клиентские компоненты с прикладной логикой базы данных.
В простейшей конфигурации физически сервер приложений может быть совмещен с сервером базы данных на одном компьютере, к которому по сети подключается один или несколько терминалов.
В «правильной» с точки зрения безопасности, надежности, масштабирования конфигурации сервер базы данных находится на выделенном компьютере или кластере, к которому по сети подключены один или несколько серверов приложений, к которым, в свою очередь, по сети подключаются терминалы.
Рисунок 1.1 — Архитектура Веб-приложений Облачные вычисления (от англ. cloud computing) — технология обработки данных, основанная на том, что компьютерные ресурсы и вычислительные мощности предоставляются пользователю как Интернетсервис. При этом пользователь может иметь доступ к собственным данным, но не имеет возможности управлять инфраструктурой, операционной системой и другим программным обеспечением, которые фактически и обеспечивают его работу.
Парадигма облачной обработки данных предполагает, что вся необходимая информация постоянно хранится на удаленных серверах в сети Интернет и лишь временно кэшируется на клиентской стороне. Это могут быть персональные компьютеры, смартфоны, ноутбуки и т. д.
При этом пользователю такой системы предоставляются услуги, которые можно разделить на следующие виды:
? IaaS (Infrastructure-as-a-Service) — инфраструктура как сервис.
? PaaS (Platform-as-a-Service) — платформа как сервис.
? SaaS (Software-as-a-Service) — программное обеспечение как сервис.
IaaS — это предоставление компьютерной инфраструктуры (как правило в форме виртуализации) как услуги на основе концепции облачных вычислений.
Целевая аудитория — разработчики ПО. IaaS состоит из трех основных компонентов:
? Аппаратные средства (серверы, системы хранения данных, клиентские системы, сетевое оборудование).
? Операционные системы и системное ПО (средства виртуализации, автоматизации, основные средства управления ресурсами).
? Связующее ПО (например, для управления системами).
IaaS основана на технологии виртуализации, позволяющей пользователю оборудования делить его на части, которые соответствуют текущим потребностям бизнеса, тем самым увеличивая эффективность использования имеющихся вычислительных мощностей. Т. е. пользователь должен будет оплачивать всего лишь реально необходимые ему для работы серверное время, дисковое пространство, сетевую пропускную способность и другие ресурсы. Кроме того, IaaS предоставляет в распоряжение клиента весь набор функций управления в одной интегрированной платформе.
Таким образом, IaaS избавляет предприятия от необходимости поддержки сложных инфраструктур центров обработки данных, клиентскихи сетевых инфраструктур, а также позволяет уменьшить связанные с этим капитальные затраты и текущие расходы. Кроме того, можно получить дополнительную экономию, при предоставлении услуги в рамках инфраструктуры совместного использования.
PaaS — это предоставление интегрированной платформы для разработки, тестирования, развертывания и поддержки веб-приложений как услуги. Целевая аудитория — разработчики ПО.
Для разворачивания веб-приложений клиенту не нужно приобретать оборудование и программное обеспечение, нет необходимости организовывать их поддержку. Доступ для клиента может быть организован на условиях аренды.
Такой подход имеет следующие достоинства:
? масштабируемость;
? отказоустойчивость;
? виртуализация;
? безопасность.
Масштабируемость PaaS предполагает автоматическое выделение и освобождение необходимых ресурсов в зависимости от количества обслуживаемых приложением пользователей.
PaaS как интегрированная платформа для разработки, тестирования, разворачивания и поддержки веб-приложений позволит весь перечень операций по разработке, тестированию и разворачиванию веб-приложений выполнять в одной интегрированной среде, исключая тем самым затраты на поддержку отдельных сред для отдельных этапов.
Способность создавать исходный код и предоставлять его в общий доступ внутри команды разработки значительно повышает производительность по созданию приложений на основе PaaS.
SaaS — модель продажи программного обеспечения, при которой поставщик разрабатывает веб-приложение и самостоятельно управляет им, предоставляя заказчикам доступ к программному обеспечению через Интернет. В данном случае, основное преимущество модели SaaS для клиента состоит в отсутствии затрат, связанных с установкой, обновлением и поддержкой работоспособности оборудования и программного обеспечения, работающего на нём. Целевая аудитория — конечные потребители.
В модели SaaS:
? приложение приспособлено для удаленного использования;
? одним приложением могут пользоваться несколько клиентов;
? оплата за услугу взимается либо как ежемесячная абонентская плата, либо на основе суммарного объема транзакций;
? поддержка приложения входит уже в состав оплаты;
? модернизация приложения может производиться обслуживающим персоналом плавно и прозрачно для клиентов.
В качестве основы проектирования информационных систем применяются «типовые решения» или «шаблоны проектирования» (Patterns).
Шаблоны проектирования (паттерн, design pattern) — это многократно применяемая архитектурная конструкция, предоставляющая решение общей проблемы проектирования в рамках конкретного контекста и описывающая значимость этого решения.
Паттерн не является законченным образцом проекта, который может быть прямо преобразован в код, скорее это описание или образец для того, как решить задачу, таким образом, чтобы это можно было использовать в различных ситуациях. Объектно-ориентированные шаблоны зачастую показывают отношения и взаимодействия между классами или объектами, без определения того, какие конечные классы или объекты приложения будут использоваться. Алгоритмы не рассматриваются как шаблоны, так как они решают задачи вычисления, а не проектирования.
2.3 Проектирование базы данных системы Для представления логической структуры базы данных выбрана модель представления данных «сущность-связь». Модель «сущность-связь» основывается на некой важной семантической информации о реальном мире и предназначена для логического представления данных. Она определяет значения данных в контексте их взаимосвязи с другими данными. Важным для нас является тот факт, что из модели «сущность-связь» могут быть порождены все существующие модели данных (иерархическая, сетевая, реляционная, объектная), поэтому она является наиболее общей.
Сущность (entity) — это объект, который может быть идентифицирован неким способом, отличающим его от других объектов. Сущность фактически представляет собой множество атрибутов, которые описывают свойства всех членов данного набора сущностей. Множество значений (область определения) атрибута называется доменом.
Связь (relationship) — это ассоциация, установленная между несколькими сущностями.
Для базы данных системы выделим следующие сущности: Автор, сотрудники, документы, типы документов, издательство, статуса, писатели.
Сущность Автор содержат следующие атрибуты: Номер автора (первичный ключ), имя, фамилия, отчество, день рождения.
Сущность Сотрудники содержат следующие атрибуты: Номер сотрудника (первичный ключ), имя сотрудника, фамилия сотрудника, отчество сотрудника, логин сотрудника, пароль сотрудника, адрес сотрудника, домашний телефон сотрудника, мобильный телефон сотрудника.
Сущность Тип документа содержат следующие атрибуты: Номер типа документа (первичный ключ), название документа.
Сущность Документы содержит следующие атрибуты: Номер документа (первичный ключ), название документа, тип документа, дата публикации документа, издательство документы, адрес документа на сервере.
Сущность Издательство содержит следующие атрибуты: номер издательства, название издательства.
Сущность статуса содержит следующие сущности: Номер статуса, номер загруженного документ, номер сотрудника загрузившего этот документ, дата загрузки.
Сущность писатель содержит следующие атрибуты: Номер записи, номер документа который был написан, номер автора который написал документ, главный автор.
Рисунок 2.1 — Диаграмма «сущность-связь» Интернет-системы «Электронная библиотека кафедры МОКС» .
Таблица 2.1- author.
Название. | Тип данных. | Null. | Описание. | |
Id_author. | Int. | нет. | Индификатор данных. | |
First_Name. | Nvarchar (60). | нет. | Имя автора. | |
Last_name. | Nvarchar (60). | нет. | Фамилия автора. | |
Patronomyc. | Nvarchar (60). | Да. | Отчество автора. | |
Birthdate. | date. | Да. | Дата рождения. | |
Таблица авторов хранит информацию об авторах которые написали тот или иной файл. Эта таблица была создана для удобства поиска файлов конкретного автора. Patronomyc может быть не указан, так как автор может оказаться из стран европы в которых не предусмотрено отчество. Также может быть не известна точная дата рождения. И возможно автор может быть еще жив. Индификатор таблице авторов будет в дальнейшем использоваться для связи данных.
Таблица 2.2 -collaborator.
Название. | Тип данных. | Null. | Описание. | |
Id_collaborator. | Int. | Нет. | Индификатор | |
First_Name. | Nvarchar (60). | Нет. | Имя. | |
Last_name. | Nvarchar (60). | нет. | Фамилия. | |
Patronomyc. | Nvarchar (60). | Да. | Отчество. | |
Login. | Nvarchar (60). | нет. | Логин. | |
Pass. | Nvarchar (60). | нет. | Пароль. | |
Address. | Nvarchar (60). | Да. | Адрес. | |
Home_tel. | Nvarchar (60). | Да. | Домашний номер телефона. | |
Mob_tel. | Nvarchar (60). | Да. | Мобильный номер телефона. | |
Таблица была названа сотрудниками, так как предполагается что данная система в нынешнем виде будет доступна только преподавателям кафедры и сотрудникам, также в дальнейшем если будет решено расширить систему для доступа студентов, то просто добавится таблица students или users. Id_collaborator будет использоваться для связи данных. Всегда есть возможность того, что появится преподаватель без отчества, поэтому Patronomyc может не указываться. Адрес проживания и телефоны являются частью личной жизни сотрудников, поэтому указывать их или нет решать сотрудникам. Хотя система пока не использует эти данные.
Таблица 2.3 — doc_Type.
Название. | Тип данных. | Null. | Описание. | |
Id_doc_Type. | int. | Нет. | Инфификатор | |
Name. | nvarchar (60). | Нет. | Названия типа данных. | |
Таблица doc_Type будет хранить названия типов документов, так как документы могут загружается одного формата, но тип у них будет разным, на пример, методичка как и учебник может быть в формате pdf все-таки тип документов — разный. Эта таблица также ускорит поиск нужного файла, если название файла полностью не известно. Индификатор таблицы будет использоваться системой для связи данных. Информацию об типах данных было решено внести в отдельную таблицу, так как тип данных в дальнейшем может пополнятся.
Таблица 2.4 — documents.
Название. | Тип данных. | Null. | Описание. | |
Id_ documents. | Int. | Нет. | Индификатор | |
Name. | navachar (60). | Нет. | Название файла. | |
Id_doc_Type. | Int. | Да. | Индификатор типа файла. | |
Date. | date. | да. | Дата публикации файла. | |
PubHouse. | Int. | Да. | Издательство. | |
Adress. | navachar (max). | Нет. | Адрес к файлу. | |
Таблица documents хранит в себе всю информацию о файле. Id_ documents в дальнейшем будет использоватся системой для связи данных. Name хранит название файла, то название, которое ему дали при загрузке. Id_doc_Type хранит индификатор типа данных. Так как тип файла может быть еще не утвержден, поэтому поле Id_doc_Type может быть null. Date дата публикации документа, так как документ может быть был опубликован ранее чем дата его загрузки, то это поле пользователь сам указывает. Так как достоверно может быть не известна настоящая дата публикации, поле date может быть null. PubHouse хранит индификатор издательства файла. Так как достоверно издательство может быть не известно поле PubHouse может быть NULL.
Таблица 2.5 — PubHouse.
Название. | Тип данных. | Null. | Описание. | |
id_PubHouse. | Int. | Нет. | Индификатор | |
Name. | navachar (60). | Нет. | Название издательства. | |
PubHouse хранит в себе название издательств, для отображения издательства файла. Так как в дальнейшем издательства могут пополнится, было решено хранить эту информацию в отдельном файле.
Таблица 2.6 — status.
Название. | Тип данных. | Null. | Описание. | |
Id_status. | Int. | Нет. | Индификатор | |
id_document. | Int. | Нет. | Индификатор документа. | |
id_collaborator. | Int. | Нет. | Индификатор сотрудника. | |
date_status. | Data. | Нет. | Дата загрузки файла. | |
Таблица status введена в систему для устранения связей многие ко многим. Она связывает сотрудников с документами и содержит данные об операции над файлом, она хранит id сотрудника, который загрузил документ. Также таблица хранит дату загрузки. Эта таблица в дальнейшем будет активно использоваться системой.
Таблица 2.7- written.
Название. | Тип данных. | Null. | Описание. | |
Id_ written. | Int. | Нет. | Индификатор | |
id_document. | Int. | Нет. | Индификатор документа. | |
id_author. | Int. | Нет. | Индификатор автора. | |
W_author. | Int. | Да. | Индификатор главного афтора. | |
Таблица written была введена в систему для устранения связи многие ко многим. Она связывает таблицу документов с авторами. id_author хранит в себе индификатор автора, id_document индификатор документа. W_author индификатор главного автора. У каждого произведения есть главный автор и может быть несколько соавторов.
Нашу базу данных можно считать нормализованной, так как ее таблицы находятся в третьей нормальной форме. То есть не ключевые столбцы в таблицах не зависят от других не ключевых столбцов, а зависят только от первичного ключа. А значит, таблицы также находятся в первой и второй нормальной форме.
Первая нормальная форма: запрещает повторяющиеся столбцы, запрещает множественные столбцы и требует определить первичный ключ для таблицы.
Вторая нормальная форма требует, чтобы не ключевые столбцы таблиц завесили от первичного ключа в целом, но не от его части.
2.4 Планирование структуры Web-системы Логическая структура показывает, каким образом информация распределяется по страницам Интернет системы и как она может быть получена пользователем. Хорошая структурированность информации обеспечивает значительный успех при создании системы. Ошибки на этом этапе впоследствии приведут к большим затратам сил на их исправление. На верхнем уровне организуется плоская структура документов. В неё входит домашняя страница, из которой вырастает множество страниц сайта. Очень часто все они полностью или частично взаимосвязаны друг с другом.
Рисунок 2.2- Системная структура приложения «Электроная библиотека кафедры Мокс» .
Система разбита на 2 части, гостевую и пользовательскую. Не авторизованные пользователи имеют доступ к home. aspx, Login. aspx, registration.aspx.
Home.aspx просто стартовая домашняя страничка, эту страничку видят все гости сайта, в ней расположена базовая информация.
Registration.aspx это страничка для регистрации нового пользователя в системе, регистрируясь пользователь вносит в таблицу collaboration свои данные.
Login.aspx эта страничка предназначена для авторизации пользователя в системе.
User.aspx стартовая страничка для авторизованного пользователя, тут можно задать первоначальный поиск файла.
AddFile.aspx — эта страничка предназначена для загрузки файла в базу данных, вся внесенная информация сохраняется в таблице documents и так же новой записью пополняются странички authors и doc_type, если пользователь вводит информацию, которая отсутствует в эти таблицах. Таблицы связей status и written также пополняются.
Select1.aspx — это первый из фильтров, разработанных для вывода данных о файле, здесь пользователь может просмотреть информацию о файлах отфильтровав их по типу и периоду загрузки на сайт.
Select2.aspx — это второй фильтр, разработанный для вывода данных о файле здесь пользователь может отфильтровать файлы по авторам и периоду загрузки.
EditAuthor.aspx — страничка предназначена для изменения и добавления данных в таблице данных издателей.
EditDoc_Type.aspx — страничка предназначена для изменения и добавления данных в таблицу данных об типах документов.
Навигация между страницами осуществляется через кнопки, которые обращаются к ссылкам в классе links. cs и пользуются методом Response. Redirect для перенаправления пользователя между страничками.
2.5 Дизайн страниц За отображения графики и стилей элементов в системе будет отвечать CSS таблица.
4all.css эта таблица стилей разрабатывалась как общая таблица стилей, т. е. в ней описаны стили для всех страниц В таблице стилей использовались таки свойства:
Свойство font-size определяет размер текста элемента.
Свойство color определяет основной цвет элемента.
Свойство text-decoration определяет, какой оформительский прием нужно применить к тексту. Это может быть: черта над, под или в середине текста.
Свойство text-align выравнивает элемента по центру, по правому краю, по левому краю и др.
Свойство Background определяет задний фон элемента.
Свойствоwebkit-radial-gradient задает градиентную заливку, может работать как атрибут для Background.
Свойство background-image задает картинку в качестве заднего фона Свойствоwebkit-border-radius — позволяет задать одновременно радиус скруглений всех углов элемента Свойствоmoz-border-radius — нестандартное свойство применяется для закругления углов элемента с границами и / или фона.
Универсальное свойство border позволяет одновременно установить толщину, стиль и цвет границы вокруг элемента.
Свойства width и height задают ширину и высоту элемента.
Свойство margin сокращённое свойство, позволяющее быстро задать следующие параметры: margin-top, margin-right, margin-bottom и/или margin-left. Margin — это внешнее пространство между бордюром и невидимой границей прямоугольника.
Свойство padding позволяет задать величину поля сразу для всех сторон элемента или определить ее только для указанных сторон.
Outline Универсальное свойство, одновременно устанавливающее цвет, стиль и толщину внешней границы на всех четырех сторонах элемента. В отличие от линии, задаваемой через border, свойство outline не влияет на положение блока и его ширину. Также нельзя задать параметры линии на отдельных сторонах элемента, outline применяется сразу ко всем четырём сторонам.
Свойство box-shadow добавляет тень к элементу. Допускается использовать несколько теней, указывая их параметры через запятую, при наложении теней первая тень в списке будет выше, последняя ниже. Если для элемента задается радиус скругления через свойство border-radius, то тень также получится с закругленными уголками. Добавление тени увеличивает ширину элемента, поэтому возможно появление горизонтальной полосы прокрутки в браузере.
Свойство border-width задает толщину границы одновременно на всех сторонах элемента или индивидуально для каждой стороны. Способ изменения толщины зависит от числа значений.
Свойство border-left позволяет одновременно установить толщину, стиль и цвет левой границы элемента. Значения могут идти в любом порядке, разделяясь пробелом, браузер сам определит, какое из них соответствует нужному свойству.
font-weight устанавливает насыщенность шрифта. Значение устанавливается от 100 до 900 с шагом 100. Сверхсветлое начертание, которое может отобразить браузер, имеет значение 100, а сверхжирное — 900. Нормальное начертание шрифта (которое установлено по умолчанию) эквивалентно 400, стандартный полужирный текст — значению 700.
line-height Устанавливает интерлиньяж (межстрочный интервал) текста, отсчет ведется от базовой линии шрифта. При обычных обстоятельствах расстояние между строками зависит от вида и размера шрифта и определяется браузером автоматически. Отрицательное значение межстрочного расстояния не допускается.
text-decoration добавляет оформление текста в виде его подчеркивания, перечеркивания, линии над текстом и мигания. Одновременно можно применить более одного стиля, перечисляя значения через пробел.
text-decoration-color устанавливает цвет линии, которая добавляется через свойство text-decoration.
Свойство text-emphasis-color устанавливает цвет маркера выделения.
Свойство Position устанавливает способ позиционирования элемента относительно окна браузера или других объектов на веб-странице.
Свойство overflow управляет отображением содержания блочного элемента, если оно целиком не помещается и выходит за область заданных размеров.
Шаблоны сайта Шаблон мастер страниц для проектируемой системы приведен на рис. 2.3.
Рисунок 2.3- Шаблон мастер страниц В системе будут использоваться две мастер страницы, на каждой из этих мастер страниц предоставлено свое навигационное меню, на гостевой мастер странице предоставлено гостевое меню, на пользовательской мастер страницы пользовательское меню, которое дает возможность перенаправить пользователя на странички для роботы с БД.
3. Разработка Интернет-системы в среде Visual Studio.NET.
3.1 Краткое описание использованной технологии При проектировании платформы Net Framework, компания Microsoft учла недостатки существующихWindows-платформ.NET Framework состоит из двух частей: общеязыковой исполняющей среды (commonlanguageruntime, CLR) и библиотеки классов (Framework Class Library, FCL). CLR предоставляет модель программирования, используемую во всех типах приложений. У CLR собственный загрузчик файлов, диспетчер памяти (сборщик мусора), система безопасности (безопасность доступа к коду), пул потоков и многое другое.
Кроме того, CLR предоставляет объектно-ориентированную модель программирования, определяющую, как выглядят и ведут себя типы и объекты. FCL предоставляет объектно-ориентированный API-интерфейс, используемый всеми моделями приложений. В ней содержатся определения типов, которые позволяют разработчикам выполнять ввод/вывод, планирование задач в других потоках, создавать графические образы, сравнивать строки и т. п.
Естественно, что все эти определения типов соответствуют существующей модели программирования в CLR. Ниже представлен список возможностей и преимуществ платформы NET:
— Полное и абсолютное межъязыковое взаимодействие. В .NET Framework. Поддерживаются межъязыковое наследование, межъязыковая обработка исключений и межъязыковая отладка.
— Общая среда выполнения для любых приложений .NET, вне зависимости от того, на каких языках они были созданы. Один из важных моментов при этом то, что для всех языков используется один и тот же набор встроенных типов данных.
— Единая программная модель. В отличие от существующего подхода, когда одни функции операционной системы доступны через процедуры динамически подключаемых библиотек (DLL), а другие — через СОМ-объекты, весь прикладной сервис представлен общей объектно-ориентированной программной моделью.
— Упрощенная модель программирования. Избавляет от работы с разными структурами, как это было с Win32 и СОМ. Так, разработчику не нужно разбираться с реестром, глобальными уникальными идентификаторами (GUID), IUnknown, AddRef, Release, HRESULT и т. д.
— Отсутствие проблем с версиями. Все Windows-разработчики знают о проблемах совместимости версий, известных под названием «DLL hell». Эта проблема возникает, когда компоненты, устанавливаемые для нового приложения, заменяют компоненты старого приложения, и в итоге последнее начинает вести себя странно или перестает работать. Архитектура .NET Framework позволяет изолировать прикладные компоненты, так что приложение всегда загружает компоненты, с которыми оно строилось и тестировалось. Если приложение работает после начальной установки, оно будет работать всегда.
— Упрощенное развертывание. Ранее Windows-приложения было очень трудно устанавливать и разворачивать: обычно нужно было создать массу файлов, параметров реестра и ярлыков. К тому же полностью удалить приложение практически невозможно. С приходом NET Framework все эти проблемы остаются в прошлом. Компоненты NET Framework не связаны с реестром. Установка приложений NET Framework сводится лишь к копированию файлов в нужные каталоги и созданию ярлыков. Удаление же приложений сводится к удалению файлов.
— Работа на многих платформах. При компиляции кода для .NET Framework компилятор генерирует код на общем промежуточном языке (CommonItermediateLanguage, CIL), а не традиционный код, состоящий из процессорных команд. При исполнении CIL транслируется в команды процессора. Поскольку трансляция выполняется в период выполнения, генерируются команды конкретного процессора. Это значит, что можно развертывать свое приложение NET Framework на любой машине, где работает версия .NET Framework соответствующая стандарту ЕСМА: с архитектурой х86, х64, IA64 и т. д.
— Интеграция языков программирования. Технология СОМ поддерживает взаимодействие разных языков — .NET Framework обеспечивает интеграцию разных языков, то есть один язык может использовать типы, созданные на других языках. Например, .NET Framework позволяет создать на C++ класс, производный от класса, реализованного на VisualBasic. В CLR это возможно из-за наличия общей системы типов (Common Type System, CTS), которую должны использовать все языки, ориентированные на CLR. Общеязыковая спецификация (Common Language Specification, CLS) определяет правила, которым должны следовать разработчики компиляторов, чтобы их языки интегрировались с другими. Сама Microsoft предлагает несколько таких языков: C++/CLI (C++ с управляемыми расширениями), С#, VisualBasic NET. Кроме того, другие компании и учебные заведения создают компиляторы других языков, совместимых с CLR.
— Упрощенное повторное использование кода. Все описанные выше механизмы позволяют создавать собственные классы, предоставляющие сервис сторонним приложениям. Теперь многократное использование кода становится исключительно простым и создается большой рынок готовых компонентов (типов).
— Автоматическое управление памятью (сбор мусора). Программирование требует большого мастерства и дисциплины, особенно когда речь идет об управлении использованием ресурсов (файлов, памяти, пространства экрана, сетевых соединений, ресурсов баз данных и прочих). Одна из самых распространенных ошибок — небрежное отношение к освобождению этих ресурсов, что может привести к некорректному выполнению программы в непредсказуемый момент. CLR автоматически отслеживает использование ресурсов, гарантируя, что не произойдет их утечки.
— Проверка безопасности типов CLR может проверять безопасность использования типов в коде, что гарантирует корректное обращение к существующим типам. Если входной параметр метода объявлен как 4-байтное значение, CLR обнаружит и предотвратит передачу 8-байтного значения в качестве значения этого параметра. Безопасность типов также означает, что управление может передаваться только в определенные точки (точки входа методов). Невозможно указать произвольный адрес и заставить программу исполняться, начиная с этого адреса. Совокупность всех этих защитных мер избавляет от многих распространенных программных ошибок (например, от возможности использования переполнения буфера для «взлома» программы).
— Развитая поддержка отладки. Поскольку CLR используется для многих языков, можно написать отдельный фрагмент программы на языке, наиболее подходящем для конкретной задачи, — CLR полностью поддерживает отладку многоязыковых приложений.
— Единый принцип обработки сбоев. Один из самых неприятных моментов Windows-программирования — несогласованный стиль сообщений о сбоях. Одни функции возвращают коды состояний Win32, другие — HRESULT, третьи генерируют исключения. В CLR обо всех сбоях сообщается через исключения, которые позволяют отделить код, необходимый для восстановления после сбоя, от основного алгоритма. Такое разделение облегчает написание, чтение и сопровождение программ. Кроме того, исключения работают в многомодульных и многоязыковых приложениях. И в отличие от кодов состояний и HRESULT исключения нельзя проигнорировать. CLR также предоставляет встроенные средства анализа стека, заметно упрощающие поиск фрагментов, вызывающих сбои.
— Безопасность. Традиционные системы безопасности обеспечивают управление доступом на основе учетных записей пользователей. Это проверенная модель, но она подразумевает, что любому коду можно доверять в одинаковой степени. Такое допущение оправданно, когда весь код устанавливается с физических носителей (например, с компакт-диска) или с доверенных корпоративных серверов. Но по мере увеличения объема мобильного кода, например Web-сценариев, приложений, загружаемых из Интернета, и вложений, содержащихся в электронной почте, нужен ориентированный на код способ контроля за поведением приложений. Такой подход реализован в модели безопасности доступа к коду.
— Взаимодействие с существующим кодом. В Microsoft понимают, что разработчики накопили огромный объем кода и компонентов. Переписывание всего этого кода, так чтобы он задействовал все достоинства NET Framework, значительно замедлило бы переход к этой платформе. Поэтому в .NET Framework реализована полная поддержка доступа к СОМ-компонентам и Win32-функциям в существующих динамических библиотеках DLL.
3.2 Физическая модель базы данных Созданы следующие таблицы:
— Документы (documents).
— Авторы (author).
— Сотрудники (collaborator).
— Таблица связей писателей (written).
— Таблица связей загрузок (status).
— Издательства PubHouse.
— Тип документов doc_Type.
Создание таблици документов.
CREATE TABLE [dbo]. documents] (.
[Id_documents] INT IDENTITY (1, 1) NOT NULL,.
[name] NVARCHAR (60) NOT NULL,.
[id_doc_Type] INT NULL,.
[date] DATE NULL,.
[PubHouse] INT NULL,.
[Adress] NVARCHAR (MAX) NOT NULL.
);
Создание таблици авторов.
CREATE TABLE [dbo]. author] (.
[id_author] INT IDENTITY (1, 1) NOT NULL,.
[First_Name] NVARCHAR (60) NOT NULL,.
[Last_Name] NVARCHAR (60) NOT NULL,.
[Patronomyc] NVARCHAR (60) NULL,.
[birthdate] DATE NULL,.
).
Создание таблици сотрудников.
CREATE TABLE [dbo]. collaborator] (.
[id_collaborator] INT IDENTITY (1, 1) NOT NULL,.
[First_Name] NVARCHAR (60) NOT NULL,.
[Last_Name] NVARCHAR (60) NOT NULL,.
[Patronomyc] NVARCHAR (60) NULL,.
[login] NVARCHAR (60) NOT NULL,.
[pass] NVARCHAR (60) NOT NULL,.
[adress] NVARCHAR (60) NULL,.
[Home_tel] NVARCHAR (60) NULL,.
[Mob_tel] NVARCHAR (60) NULL,.
CONSTRAINT [PK_collaborator] PRIMARY KEY CLUSTERED ([id_collaborator] ASC).
);
Создание таблици типов документов.
CREATE TABLE [dbo]. doc_Type] (.
[Id_doc_Type] INT IDENTITY (1, 1) NOT NULL,.
[name] NVARCHAR (60) NOT NULL.
);
Создание таблици издательств.
CREATE TABLE [dbo]. PubHouse ] (.
[id_PubHouse] INT IDENTITY (1, 1) NOT NULL,.
[name] NVARCHAR (60) NOT NULL.
);
Создание таблици статуса.
CREATE TABLE [dbo]. status ] (.
[Id_status] INT IDENTITY (1, 1) NOT NULL,.
[id_document] INT NOT NULL,.
[id_collaborator] INT NOT NULL,.
[transaction_status] INT NOT NULL,.
[date_status] DATE NOT NULL.
);
Создание таблици писателей.
CREATE TABLE [dbo]. written ] (.
[id_written] INT IDENTITY (1, 1) NOT NULL,.
[id_document] INT NOT NULL,.
[id_author] INT NOT NULL,.
[w_author] INT NULL.
);
3.3 Разработка бизнес-логики Интернет-системы «Электронная библиотека кафедры МОКС» .
В первую очередь была разработана мастер-страница. Она служит шаблоном для отображения, других страниц. Для этого на мастер-странице выделяются области, не подлежащие изменению, и области где будет отображаться информация связанных страниц (страниц контента). На рисунке 3.1 представлен вид мастер-страницы. На мастер-странице предоставлены кнопки, которые перенаправляют пользователя по сайту. Эти кнопки используют метод Response. Redirect ();
Рисунок 3.1 — Вид мастер-страницы Страницы для работы с таблицами базы данных были разработаны как контент страницы.
Контент это страница — любая страница, которая использует мастер страницу. Каждый раз, когда посетитель запрашивает контент страницу, ASP.NET загружает мастер страницу, производит слияние с контент страницей и посылает объединенный результат пользователю.
Рисунок 3.2 — Вид контент-страницы Любой проект в среде Visual Studio Может содержать два типа файлов: *.aspx и *.aspx.cs. В *.aspx-файлах содержится html-подобная разметка самой страницы, а в *.aspx.cs-файлах код на языке C#, который представлен в виде отдельного класса. Также возможность хранить код языка C# в теге.
В ходе работы были созданы следующие страницы для обслуживания таблиц БД: editAuthor.aspx, editDoc_Type.aspx, editPubHouse.aspx, type_org.aspx, AddFile.aspx, Login.aspx, registration.aspx, Select1.aspx, Select2.aspx,User.aspx. А коды этих страниц находятся соответственно в файлах с расширением *.aspx.cs и тегах.
Содержимое данных файлов и тегов приведено в Приложении.
Подробно опишем процесс создание всех указанных выше страниц и реализацию форм для добавления новых записей в БД, а также редактирования и удаления записей. Удаление и редактирование записей реализуется в настройках компонента GridView установкой свойств EnableEditing и EnableDeleting. В ходе разработки приложения использовались следующие серверные элементы управления:
? TextBox — поля для ввода;
? Label — текстовые метки;
? DropDownList — раскрывающиеся списки;
? GridView — таблица;
? SqlDataSource — источник данных.
Для отображения таблиц БД на всех страницах использовались элементы управления GridView и SqlDataSource.
Для работы с базой данных в источнике данных SqlDataSource нужно создать подключение к БД. А затем подключить компонент GridView к источнику данных SqlDataSource. Страница registration. aspx содержит форму для добавления новых пользователей.
На форме есть кнопка «Зарегистрироваться», по нажатию на которую в таблицу записывается новая запись из полей ввода и отображается сообщение об успешной регистрации.
protected void Bt1_Click (object sender, EventArgs e).
{.
string s = «INSERT INTO [dbo]. collaborator] ([First_Name], [Last_Name], [Patronomyc], [login], [pass], [adress], [Home_tel], [Mob_tel]) VALUES (N'» + TextBox1. Text + «', N'» + TextBox2. Text + «', N'» + TextBox3. Text + «', N'» + TextBox4. Text + «', N'» + TextBox5. Text + «', N'» + TextBox6. Text + «', N'» + TextBox7. Text + «', N'» + TextBox8. Text + «')» ;
try.
{.
SqlDataSource1.InsertCommand = s;
SqlDataSource1.Insert ();
DebText.Visible = true;
DebText.TextMode = TextBoxMode. SingleLine;
DebText.Text = «Пользователь зарегистрирован» ;
}.
catch (Exception ex).
{.
DebText.Visible = true;
DebText.Text=s+" rn" +ex;}}.
Внешний вид страницы registration. aspx представлен на рисунке 3.3.
Рисунок 3.3 — Внешний вид страницы registration.aspx.
Pageshome.aspx Домашняя страничка системы «Электронная библиотек кафедры МОКС» Домашняя страница системы. Отображает базовую информацию о кафедре. Внешний вид home. aspx приведен на рисунке 3.4.
Рисунок 3.4 — Внешний вид страницы home.aspx.
Pagesuser Login.aspx.
Страничка разработана для авторизации пользователей, тут происходит проверка введенных данных с таблицей данных collaborator Внешний вид страницы Login. aspx приведен на рисунке 3.5.
Рисунок 3.5 — Внешний вид страницы Login.aspx.
По нажатию кнопки вход данные введенные в textbox сверяются с данными таблицы collaborator с помощью кода:
Links L = new Links ();
UserClass Us = new UserClass ();
int err = 0;
protected void Page_Load (object sender, EventArgs e).
{.
Us = new UserClass ();
}.
protected void LoginBt_Click (object sender, EventArgs e).
{.
Us = new UserClass (Login.Text, Pass. Text);
if (Us.serchLogin (Us)).
{.
Response.Redirect (L.RetLinks («User») + «?Text=» + Login. Text + «:» + Pass. Text);
}.
else { Label1. Visible = true; Label1. Text = «Логин или пароль неверный. «; err++;
Label1.Text += «Забыли пароль?»; CheckBox1. Visible = true; Cb1Text. Visible = true; }.
if (CheckBox1.Checked == true) { HelpTB. Visible = true; HelpTB. Text = «» + Us. SerchInTable («collaborator», «pass», «login», Login. Text); }.
}.
pages/user/User.aspx.
Страничка пользователей, тут реализована запрос поиска данных в таблицах данных, пользователь может отыскать файл и скачать его, также можно отредактировать записи в таблицах. Внешний вид страницы User. aspx предоставлен на рисунке 3.6.
Рисунок 3.6- Внешний вид страницы User.aspx.
Поиск файла осуществляется с помощью sql запроса, после ввода данных pages/user/AddFile.aspx.
Cтраничка разработана для загрузки файлов на сервер, тут пополняются данные таблиц documrnts, written, author, status, phouse. В таблице отображаются уже загруженные файлы. Когда пользователь вводит новую информацию об авторе, типе файлов или новое название издательства система проверяет их наличие в базе данных, если же система не находит эту информацию, то пользователю выводится об этом сообщение, с предложением пополнить базу данных. Если же пользователь заранее знает, что данные новые, чтоб система не выводила сообщение о новых данных пользователю нужно установить флажок подтверждения возле элемента управления checkbox «Усилено». После добавления файла табличка обновляется.
Рисунок 3.7 — Внешний вид страницы AddFile.aspx.
Код добавления новой информации в таблицу данных.
command = «documents:» + Us. addInBase («documents», «name, Id_doc_Type, date, PubHouse, Adress», TbName. Text + «,» + zhan + «,» + Strdate + «,» + Phouse + «,» + folderName + fileName) + «rn»; //Запись данных об документе …
string id_doc = Us. MySelect («Select Id_documents from documents d where d.name = N'» + TbName. Text + «' and d. Id_doc_Type = N'» + zhan + «' and d. date=N'» + Strdate + «' «, 0); //Определение id нового документа.
command += «written:» + Us. addInBase («written», «id_document, id_author, w_author», id_doc + «,» + Au + «, 1») + «rn» ;//Запись информации об авторе.
command += «Status:» + Us. addInBase («status», «id_document, id_collaborator, transaction_status, date_status», id_doc + «,» + Us. SerchInTable («collaborator», «id_collaborator», «login», Us. Login) + «, 1,» + DateTime.Now.Year + «-» + DateTime.Now.Month + «-» + DateTime.Now.Day) + «rn» ;
/pages/user/Select1.aspx.
Страничка фильтра, отображает информацию о типах файлов, которые были загружены в определенный период времени.
Рисунок 3.8 — Внешний вид страницы Select1.aspx.
После ввода всех параметров код формирует sql запрос.
string dateFrom ="" ;//2013;01−16.
dateFrom ="" +otYear.Text+" -" +otMonth.Text+" -" +otDay.Text;
string dateTo="" ;//2013;01−16.
dateTo="" +doYear.Text+" -" +doMonth.Text+" -" +doDay.Text;
SqlDataSource s = new SqlDataSource ();
s.SelectCommand = «select d.name, dt.name, s. date_status, d. date, d. PubHouse, d. Adress from documents d, doc_Type dt, status s where d. id_doc_Type = dt. Id_doc_Type and s. id_document=d.Id_documents and s. date_status > N'» + dateFrom + «' and s. date_status < N'» + dateTo + «' and d. id_doc_Type=(select t. Id_doc_Type from doc_Type t where t.name=N'» + type.SelectedItem.Text+ «')» ;
s.ConnectionString = «Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\library.mdf;Integrated Security=True» ;
GridView1.DataSource = s;
GridView1.DataBind ();
/pages/user/Select2.aspx.
Страничка фильтра, отображает информацию о документах определенного автора, которые были загружены в определенный период времени.
Рисунок 3.9 — Внешний вид страницы Select2.aspx.
Метод Page_load заполняет выпадающий список author. путем считывания данных из базы данных, и записывает каждый элемент в выпадающий список в нужном формате. После чего пользователю предлагается выбрать автора. Когда же автор выбран и поля даты введены правильно, код формирует запрос из полученных данных:
void Page_load ().
{.
if (author.SelectedIndex ≠ -1).
{str = author.SelectedItem.Text + ' ' + author. SelectedIndex; }.
UserClass Us = new UserClass ();
string t = Us. MySelect2(«SELECT [First_Name], [Last_Name] FROM [author]», 1);
string[] t2 = t. Split (';');
author.Items.Clear ();
for (int i = 0; i < t2. Length; i++).
author.Items.Add (t2[i]);
}.
protected void Button1_Click (object sender, EventArgs e).
\library.mdf;Integrated Security=True" ;
string dateFrom = «» + otYear. Text + «-» + otMonth. Text + «-» + otDay. Text;
string dateTo = «» + doYear. Text + «-» + doMonth. Text + «-» + doDay. Text;
string comm = «select d. Id_documents, d.name, a. First_Name, a. Last_Name, s. date_status from written w, status s, author a, documents d where w. id_author=a.id_author and w. id_author =(select a. id_author from author a where a. Last_Name=N'» + LastName + «' and a. First_Name=N'» + FirstName + «') and w. id_document=d.Id_documents and s. id_document=d.Id_documents and s. date_status > N'» + dateFrom + «' and s. date_status < N'» + dateTo + «'» ;
s.SelectCommand = comm;
GridView1.DataSource = s;
GridView1.DataBind ();
/pages/admin/editAuthor.aspx.
Страничка предназначена для редактирования таблицы авторов, здесь можно добавить нового автора, изменить уже существующего или удалить автора. Перед тем как удалить автора нужно его выбрать, нажав на select. Хоть редактирование дает возможность изменит идентификатор автора он останется неизменным, так как он используется другими таблицами.
Рисунок 3.10 — Внешний вид страницы editAuthor.aspx.
В состав sql запроса базы данных входит элемент GridView1. Rows[GridView1.SelectedIndex]. Cells[1].Text который определяется после нажатия на кнопку select, поэтому необходимо с начало обозначить элемент, а потом удалять его. Код удаления записи из таблицы.
try.
{.
SqlDataSource1.DeleteCommand = «DELETE FROM [author] WHERE [id_author] =N'» + GridView1. Rows[GridView1.SelectedIndex]. Cells[1].Text + «'» ;
SqlDataSource1.Delete ();
SqlDataSource1.DataBind ();
GridView1.DataBind ();
Err.Text = «» ;
}.
catch (Exception ex).
{.
Err.Text = ex. Message; };}.
/pages/admin/editDoc_Type.aspx.
Страничка предназначена для редактирования таблицы типов документа. Также есть возможность изменить идентификатор, но он останется неизменным, так как используется другими таблицами. Также перед удалением элемента с начало нужно его выбрать Рисунок 3.11 — Внешний вид страницы editDoc_Type.aspx.
Идентификатор таблицы остается неизменным так как не используется в sql запросе для таблицы.
UpdateCommand="UPDATE [author] SET [First_Name] = @First_Name, [Last_Name] = @Last_Name, [Patronomyc] = @Patronomyc,[birthdate]=@birthdate WHERE [id_author] = @id_author" >
/pages/admin/editPubHouse.aspx.
Страничка предназначена для редактирования таблицы издательств. Также есть возможность изменить идентификатор, но он останется неизменным, так как используется другими таблицами. Также перед удалением элемента с начало нужно его выбрать Рисунок 3.12 — Внешний вид страницы editPubHouse.aspx.
Код почти полностью дублируется со странички editDoc_Type.aspx.
Также в бизнес логике участвуют следующие классы и таблицы.
App_Code Links.cs.
Класс Links хранит в себе двумерный массив строк string[,]Link, который хранит в себе имя файла и ссылку на него. Класс Links. cs позволяет быстро поменять ссылку на файл и не искать эту ссылку в коде программы. Поиск в массиве осуществляется методом string RetLinks (string n).
App_Code UserClass.cs.
Хранит в себе логин и пароль активного пользователя, также осуществляет подключение к базе данных и выполняет методы поиска и выборки (select) в этой базе Так например, обращаясь к классу UserClass можно сохранить его лигин и пароль.
UserClass US = new UserClacc («Login:pass»).
и записать его в базу данных, используя метод addInBase. Метод принимает аргументы в качестве 3х текстовых масивов и сам разбивает столбцы и значения и вставляет в запрос INSERT INTO.
Us.addInBase («collaborator «, «First_Name, Last_Name, Patronomyc, login, pass, adress, Home_tel, Mob_tel «, «+ TextBox1. Text + «,» + TextBox2. Text + «,» + TextBox3. Text + «,» + TextBox4. Text + «,» + TextBox5. Text + «,» + TextBox6. Text + «,» + TextBox7. Text + «,» + TextBox8. Text);
Метод addInBase сам разместит значения и столбцы в запросе. Также в этом классе можно разработать множество методов для шифрования данных, собственно ради этого метод и создавался.
Css4all2.css.
Таблица стилей, которая управляет и задает стиль всем элементам в системе. Таблица стилей 4all2. css разрабатывалась как глобальная таблица и используется во всех страничках в системе.
Выводы.
С каждой доработкой VisualSudio.NET становится все удобнее в обращении. На данный момент человек, который не обладает большим опытам программирования может создать вполне функциональную систему удалённого доступа используя мышку.
Visual Sudio.NET дает разработчику использовать одну среду разработки для построения запросов и их выполнения. Также представление графического вида связей баз данных по мере визуального построения запроса, помогает обратить внимание на ошибки в базе данных. Работа с базами данных теперь стала еще удобнее, очень сильно помогает построитель запросов. Также мною были опробованы разные подходы к SqlDataSource, разные методы объявления и обращения к этому элементу. Элемент SqlDataSourcе можно объявить, как и в теге, так непосредственно в C# коде, что дает практически безграничные возможности для разработки. Таким образом, мною был создан класс, работающий с базой данных и ряд методов, которые взаимодействуют с этой базой данных, это дает мне возможность не указывать соединение к БД, а сразу перейти к sql запросу. Также как вывод можно выделить и то, что каждый элемент SqlDataSource может работать с разными таблицами, например его можно в один момент использовать для отображения данных из одной таблицы, а в другой момент для ввода данных в туже или другую страницу.