Автор работы: Пользователь скрыл имя, 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
СОДЕРЖАНИЕ
ПОСТАНОВКА ЗАДАЧИ………………………….…………………………….…
ВВЕДЕНИЕ…………………………………………………………
ЗАКЛЮЧЕНИЕ……………………………………………………
БИБЛИОГРАФИЧЕСКИЙ СПИСОК….…………
ПРИЛОЖЕНИЕ……………………………………………………
ПОСТАНОВКА ЗАДАЧИ
Разработать систему публикации постов. Посты загружают зарегистрированные пользователи. При добавлении поста, пользователь может добавить к нему теги, возможность добавлять комментарии, есть только у зарегистрированных пользователей, также есть личный кабинет пользователя, в котором он может сменить пароль и загрузить аватар. Также пользователь может просмотреть последние добавленные посты других пользователей. Реализован поиск постов по тегам.
ASP (англ. Active Server Pages — «активные
серверные страницы») — технология, предложенная компанией Microsoft в 1996 году для создания Web-приложений.
Эта технология основана на внедрении
в обыкновенные веб-страницы спец
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 или MV
1. ОПИСАНИЕ ИСПОЛЬЗОВАННЫХ ТЕХНОЛОГИЙ ПРИ ПРОЕКТИРОВАНИИ
Паттерн Модель-представление-
Пользователь, работая с интерфейсом, управляет контроллером, который перехватывает действия пользователя. Далее контроллер уведомляет модель о действиях пользователя, тем самым изменяя состояние модели. Контроллер также уведомляет представление. Представление, используя текущее состояние модели, строит пользовательский интерфейс.
Основой паттерна является отделение модели данных приложения, его логики и представления данных друг от друга. Таким образом, следуя правилу «разделяй и властвуй», удается строить стройное программное обеспечение, в котором, во-первых, модель не зависит от представления и логики, а во-вторых, пользовательский интерфейс надежно отделен от управляющей логики [2].
На данный момент паттерн MVC реализован в том или ином виде для большинства языков программирования используемых для разработки web-приложений. Однако, среди всех их множества одним из лидеров является платформа .NET. Данная платформа имеет расширение ASP.NET MVC, позволяющее разрабатывать как простые, так и сложные web-приложения благодаря известному паттерну Model-View-Controller (MVC). Данная платформа поддерживает взаимодействие с технологиями асинхронной передачи данных Ajax, базой данных MS SQL Server, а также позволяет выполнять публикацию сайта в сети интернет на основе MS IIS (Internet Information Services).
10 декабря 2007 года Microsoft представила
свой вариант реализации MVC для ASP.NET.
Он по-прежнему базируется на
.aspx, .ascx и .master файлах, полностью поддерживает
аутентификацию на базе форм,
роли, кэширование данных, управление
состоянием сессий, health monitoring, конфигурирование,
архитектуру провайдеров и
С другой стороны, 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]:
Шаблон MVC позволяет создавать приложения, различные аспекты которых (логика ввода, бизнес-логика и логика интерфейса) разделены, но достаточно тесно взаимодействуют друг с другом. Эта схема указывает расположение каждого вида логики в приложении. Пользовательский интерфейс располагается в представлении. Логика ввода располагается в контроллере. Бизнес-логика находится в модели. Это разделение позволяет работать со сложными структурами при создании приложения, так как обеспечивает одновременную реализацию только одного аспекта.
На основании произведенного анализа предметной области и задания в целом можно выделить следующие объекты предметной области: пользователь, пост, комментарий.
Пользователь
Представляет собой пользователя системы и содержит поля: UserID, UserName, UserPassword, RoleID, UserRegDate, UserAvatarPath.
Пост
Содержит поля: PostID, UserID, PostText, PostDate, CommentID.
Комментарий
Содержит поля: CommentID, PostID, UserID, CommentDate.
На основании анализа была спроектирована база данных. База данных состоит из следующих таблиц:
Таблица 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 |