Программирование Баз данных

Автор работы: Пользователь скрыл имя, 09 Июня 2014 в 02:25, курсовая работа

Описание работы

Разработать систему публикации постов. Посты загружают зарегистрированные пользователи. При добавлении поста, пользователь может добавить к нему теги, возможность добавлять комментарии, есть только у зарегистрированных пользователей, также есть личный кабинет пользователя, в котором он может сменить пароль и загрузить аватар. Также пользователь может просмотреть последние добавленные посты других пользователей. Реализован поиск постов по тегам.

Содержание работы

ВВЕДЕНИЕ………………………………………………………………..…………………4
1. ОПИСАНИЕ ИСПОЛЬЗОВАННЫХ ТЕХНОЛОГИЙ ПРИ ПРОЕКТИРОВАНИИ……………………………………………………………...…….5
1.1 Архитектура модель-представление-контроллер……………………………..…….5
1.2 ASP.NET MVC Framework……………………………..…………………………….6
2. АНАЛИЗ ЗАДАЧИ……………………………………………………………………....9
3. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ……………………………………….……..10
3.1 Структура таблиц…………………………………………………………………….10
3.2 Диаграмма отношений базы данных……………………………………………….12
4. АНАЛИЗ ЗАДАЧИ…………………………………………………………………......13
4.1 Структура сайта………………………………………………………………………13
4.2 Главная страница……………………………………………………………………13
4.3 Регистрация…………………………………………………………………….……..14
4.4 Авторизация…………………………………………………………………………..14
4.5 Страница добавления поста…………………………………………………………15
4.6 Страница просмотра поста…………………………………………………………..16
4.7 Страница просмотра постов по определенному тегу……………………………..16
5. ОСОБЕННОСТИ РЕАЛИЗАЦИИ……………………………………….…………….17
6. РЕАЛИЗАЦИЯ ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ…………………….…18
6.1 Модели………………………………………………………………………………..18
6.2 Контроллеры…………………………………………………………………………20
ЗАКЛЮЧЕНИЕ………………………………………………………………………………21
БИБЛИОГРАФИЧЕСКИЙ СПИСОК….…………………………………………………...22
ПРИЛОЖЕНИЕ………………………………………………………………………………23
1. PostController.cs………………………………………………………………………23
2. UsetController.cs………………………………………………….......................……29
3. CustomMembershipProvider.cs………………………………....................................31
4. Классы для связи с базой данных………………………............................………...37

Файлы: 1 файл

kursovik_pvbd.docx

— 724.48 Кб (Скачать файл)

СОДЕРЖАНИЕ

     ПОСТАНОВКА ЗАДАЧИ………………………….…………………………….……..……3

ВВЕДЕНИЕ………………………………………………………………..…………………4

  1. ОПИСАНИЕ ИСПОЛЬЗОВАННЫХ ТЕХНОЛОГИЙ ПРИ ПРОЕКТИРОВАНИИ……………………………………………………………...…….5
    1. Архитектура модель-представление-контроллер……………………………..…….5
    2. ASP.NET MVC Framework……………………………..…………………………….6
  2. АНАЛИЗ ЗАДАЧИ……………………………………………………………………....9
  3. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ……………………………………….……..10
    1. Структура таблиц…………………………………………………………………….10
    2. Диаграмма отношений базы данных……………………………………………….12
  4. АНАЛИЗ ЗАДАЧИ…………………………………………………………………......13
    1. Структура сайта………………………………………………………………………13
    2. Главная страница……………………………………………………………………13
    3. Регистрация…………………………………………………………………….……..14
    4. Авторизация…………………………………………………………………………..14
    5. Страница добавления поста…………………………………………………………15
    6. Страница просмотра поста…………………………………………………………..16
    7. Страница просмотра постов по определенному тегу……………………………..16
  5. ОСОБЕННОСТИ РЕАЛИЗАЦИИ……………………………………….…………….17
  6. РЕАЛИЗАЦИЯ ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ…………………….…18
    1. Модели………………………………………………………………………………..18
    2. Контроллеры…………………………………………………………………………20

    ЗАКЛЮЧЕНИЕ………………………………………………………………………………21

    БИБЛИОГРАФИЧЕСКИЙ СПИСОК….…………………………………………………...22

    ПРИЛОЖЕНИЕ………………………………………………………………………………23

  1. PostController.cs………………………………………………………………………23
  2. UsetController.cs………………………………………………….......................……29
  3. CustomMembershipProvider.cs………………………………....................................31
  4. Классы для связи с базой данных………………………............................………...37

 

ПОСТАНОВКА ЗАДАЧИ

Разработать систему публикации постов. Посты загружают зарегистрированные пользователи. При добавлении поста, пользователь может добавить к нему теги, возможность добавлять комментарии, есть только у зарегистрированных пользователей, также есть личный кабинет пользователя, в котором он может сменить пароль и загрузить аватар. Также пользователь может просмотреть последние добавленные посты других пользователей. Реализован поиск постов по тегам.

 

ВВЕДЕНИЕ

ASP (англ. Active Server Pages — «активные серверные страницы») — технология, предложенная компанией Microsoft в 1996 году для создания Web-приложений. Эта технология основана на внедрении в обыкновенные веб-страницы специальных элементов управления, допускающих программное управление. По своей сути, ASP — это технология динамического создания страниц на стороне сервера, приблизившая проектирование и реализацию Web-приложений к той модели, по которой проектируются и реализуются обычные приложения. Для реализации приложений ASP используются языки сценариев (VBScript или JScript).  Также допускается применение COM-компонентов. Технология ASP разработана для операционных систем из семейства Windows NT и функционирует под управлением веб-сервера Microsoft IIS. Технология ASP получила своё развитие в виде ASP.NET — технологии создания веб-приложений, основанной уже на платформе Microsoft .NET [1].

ADO.NET Entity Framework (EF) — объектно-ориентированная технология доступа к данным, является object-relational mapping(ORM) решением для .NET Framework от Microsoft. Предоставляет возможность взаимодействия с объектами как посредством LINQ в виде LINQ to Entities, так и с использованием Entity SQL. Для облегчения построения web-решений используется как ADO.NET Data Services (Astoria), так и связка из Windows Communication Foundation и Windows Presentation Foundation, позволяющая строить многоуровневые приложения, реализуя один из шаблонов проектирования MVC, MVP или MVVM. В данной курсовой работе использовался подход “Code First” при работе с Entity Framework [4].

 

 

1. ОПИСАНИЕ ИСПОЛЬЗОВАННЫХ ТЕХНОЛОГИЙ ПРИ ПРОЕКТИРОВАНИИ

1.1 Архитектура модель-представление-контроллер

Паттерн Модель-представление-контроллер или по-английски Model-view-controller используется очень давно. Еще в 1979 году его описал Тригве Реенскауг в своей работе «Разработка приложений на Smalltalk-80: как использовать Модель-представление-контроллер». С тех пор паттерн зарекомендовал себя как очень удачная архитектура программного обеспечения.

Пользователь, работая с интерфейсом, управляет контроллером, который перехватывает действия пользователя. Далее контроллер уведомляет модель о действиях пользователя, тем самым изменяя состояние модели. Контроллер также уведомляет представление. Представление, используя текущее состояние модели, строит пользовательский интерфейс.

Основой паттерна является отделение модели данных приложения, его логики и представления данных друг от друга. Таким образом, следуя правилу «разделяй и властвуй», удается строить стройное программное обеспечение, в котором, во-первых, модель не зависит от представления и логики, а во-вторых, пользовательский интерфейс надежно отделен от управляющей логики [2].

На данный момент паттерн MVC реализован в том или ином виде для большинства языков программирования используемых для разработки web-приложений. Однако, среди всех их множества одним из лидеров является платформа .NET. Данная платформа имеет расширение ASP.NET MVC, позволяющее разрабатывать как простые, так и сложные web-приложения благодаря известному паттерну Model-View-Controller (MVC). Данная платформа поддерживает взаимодействие с технологиями асинхронной передачи данных Ajax, базой данных MS SQL Server, а также позволяет выполнять публикацию сайта в сети интернет на основе MS IIS (Internet Information Services).

1.2 ASP.NET MVC Framework

10 декабря 2007 года Microsoft представила  свой вариант реализации MVC для ASP.NET. Он по-прежнему базируется на .aspx, .ascx и .master файлах, полностью поддерживает  аутентификацию на базе форм, роли, кэширование данных, управление  состоянием сессий, health monitoring, конфигурирование, архитектуру провайдеров и другое [5].

С другой стороны, MVC Framework не предполагает использование классических web-форм и web-элементов управления, в нем отсутствуют такие механизмы как обратные вызовы (postbacks) и состояние представления (viewstate). MVC Framework так же предлагает использование URL-mapping и архитектуру REST в качестве модели запросов, что положительно повлияет на поисковую оптимизацию web-проектов.

В целом MVC Framework предложил для разработчиков ASP.NET новый стиль, ориентированный на качество клиентского кода. Генерируемый MVC код страниц не содержит ничего автоматически создаваемого, здесь нет раздутых идентификаторов, нет огромных viewstate, написание клиентских скриптов упрощено в связи с тем, что код страницы представляет собой чистый, созданный самим программистом HTML. В эпоху, когда понятие web 2.0 прочно вошло в нашу жизнь полный контроль над страницей на клиентской стороне – это залог успеха любого web-проекта [6].

Рассматриваемая платформа строится на базе схемы MVC (модель – визуализация – контроллер), отсюда и название – ASP.NET MVC. MVC делит пользовательский интерфейс на три разных объекта: контроллер получает входные данные и обрабатывает их, модель содержит логику работы, представление оформляет полученный результат. В контексте веб-приложений входные данные – это HTTP-запрос. Ход обработки запросов показан на рисунке 1.

 

 

Рисунок 1 – Ход обработки запроса в схеме MVC

 

 

В состав платформы MVC входят следующие компоненты [7]:

  1. Модели. Объекты моделей являются частями приложения, реализующими логику для домена данных приложения. Объекты моделей часто получают и сохраняют состояние модели в базе данных.
  2. Представления. Представления служат для отображения пользовательского интерфейса приложения. Пользовательский интерфейс обычно создается на основе данных модели.
  3. Контроллеры. Контроллеры осуществляют взаимодействие с пользователем, работу с моделью, а также выбор представления, отображающего пользовательский интерфейс. В приложении MVC представления только отображают данные, а контроллер обрабатывает вводимые данные и отвечает на действия пользователя. Например, контроллер может обрабатывать строковые значения запроса и передавать их в модель, которая может использовать эти значения для отправки запроса в базу данных.

Шаблон MVC позволяет создавать приложения, различные аспекты которых (логика ввода, бизнес-логика и логика интерфейса) разделены, но достаточно тесно взаимодействуют друг с другом. Эта схема указывает расположение каждого вида логики в приложении. Пользовательский интерфейс располагается в представлении. Логика ввода располагается в контроллере. Бизнес-логика находится в модели. Это разделение позволяет работать со сложными структурами при создании приложения, так как обеспечивает одновременную реализацию только одного аспекта.

 

2. АНАЛИЗ ЗАДАЧИ

На основании произведенного анализа предметной области и задания в целом можно выделить следующие объекты предметной области: пользователь, пост, комментарий.

Пользователь

Представляет собой пользователя системы и содержит поля: UserID, UserName, UserPassword, RoleID, UserRegDate, UserAvatarPath.

Пост

Содержит поля: PostID, UserID, PostText, PostDate, CommentID.

Комментарий

Содержит поля: CommentID, PostID, UserID, CommentDate.

 

3. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

3.1 Структура таблиц

На основании анализа была спроектирована база данных. База данных состоит из следующих таблиц:

  • Users (таблица пользователей)
  • Posts (таблица новостей)
  • Roles (таблица ролей пользователей)
  • Comments (таблица комментариев)
  • PostTags ( промежуточная таблица для связи многие ко многим между таблицами Posts и Tags)
  • Tags (таблица тегов)

Таблица 1 - Users

Поле

Тип

PK/FK

NULL/NOT NULL

UserID

Int

PK

NOT NULL

UserName

nvarchar(50)

 

NOT NULL

UserPassword

nvarchar(128)

 

NOT NULL

UserAvatarPath

nvarchar(maxvalue)

 

Allow null

UserRegDate

Datetime

 

NOT NULL

UserRoleID

Int

 

NOT NULL

UserDeleted

Int

 

NOT NULL


 

Таблица 2 - Posts

Поле

Тип

PK/FK

NULL/NOT NULL

PostID

Int

PK

NOT NULL

UserID

int

 

NOT NULL

CommentID

int

 

allow NULL

PostText

nvarchar(maxvalue)

 

NOT NULL

PostDateTime

datetime

 

NOT NULL

PostDeleted

Int

 

NOT NULL


 

 

 

 

Таблица 3 - Roles

Поле

Тип

PK/FK

NULL/NOT NULL

RoleID

Int

PK

NOT NULL

RoleName

Nvarchar(50)

 

NOT NULL


 

Таблица 4 - Comments

Поле

Тип

PK/FK

NULL/NOT NULL

CommentID

Int

PK

NOT NULL

PostID

Int

 

NOT NULL

UserID

int

 

NOT NULL

CommentText

Nvarchar(maxvalue)

 

NOT NULL

CommentDate

Datetime

 

NOT NULL

CommentDeleted

Int

 

NOT NULL

Информация о работе Программирование Баз данных