Веб-сайты в современном мире становятся все сложнее, поскольку на них возлагается решение все более сложных задач. Они должны обеспечиваться эффективность обработки запросов, высокую надежность работы, предоставление результатов в удобном пользователям виде.
При разработке веб-сайта приходится сталкиваться с решением множества задач: дизайн, вёрстка, логика пользовательского интерфейса, обработка на стороне сервера и т.д. Однако всё это можно разбить на два направления: Front-end и Back-end разработка.
Front-end и Back-end разработка – это процесс создания сайта, разделенный на две части, клиентскую и серверную. Клиентская часть это front-end разработка, к ней можно отнести CSS верстку, создание макета и шаблонов для сайта, а также пользовательского интерфейса и специальных скриптов, отвечающих за визуализацию и анимацию. К серверной части (back-end разработке) относится создание ядра сайта, разработка платформы, основного функционала и административной части.
Back-end разработка включает в себя написание приложений, которые обеспечивают поддержку front-end. На сайте, back-end будет отвечать за проверку данных пользователей из баз данных, и предоставлять им возможности входа, а также принимать какие-либо предложения, которые могут быть полезны в улучшении сайта.
1. Обзор предметной области
Блог, сетевой дневник, блогосфера — эти слова уже успели стать банальными для любого человека, хоть чуточку знакомого с Интернетом. Однако аудитория активных пользователей Всемирной сети на все человечество пока не распространяется, да и не все пользователи Интернета ведут или хотя бы читают сетевые дневники. Так что же дает повод заявлять о включении в блогосферу всего человечества.
В первую очередь — это стремительная «мобилизация» Интернета и слияние популярных сервисов мобильной телефонии, например, отправки коротких сообщений (SMS), с такими формами интернет-блоггинга, как микроблоги, линк-блоги и лайфстрим-сервисы. Мобильное вторжение блогосферы обеспечивается тем, что простые сотовые телефоны, по которым когда-то можно было только звонить, уже вытеснены смартфонами, которые кардинально меняют не только парадигму самой мобильной связи, но и Интернет.
Сутью современного этапа эволюции блоггинга — микроблога — является лишь то, что в новой форме автор оставляет только короткие заметки, по длине обычно не превышающие 200 символов.
Таким образом, микроблогинг по сути заимствовал предельно лаконичный жанр SMS-сообщений и отражает информацию о том, что данный человек в какой-то момент хочет, делает, думает или к чему готовится. Сюда же относятся короткие цитаты, заимствованные высказывания и ссылки на какие-то внезапно понравившиеся автору микроблога ресурсы Интернета.
Дату рождения микроблоггинга сейчас восстановить уже трудно, поскольку грань между короткими, но обычными блогами и микроблогами довольно тонка, однако полноценный микроблоггинг принято отсчитывать с момента появления в 2006-м таких интернет-сервисов, как Twitter и Jaiku. Самым популярным в мире сервисом для микроблоггинга до сих пор остается Twitter, который заслужил доверие пользователей и оброс всевозможными клиентами для постинга и дополнениями.
Как уже упоминалось выше, наиболее популярным сервисом для микроблоггинга является Twitter, который был открыт в июле 2006года. Основным конкурентом Twitter является Jaiku. Однако существует множество других сервисов, поддерживающих микроблоггинг. К примеру, отечественная социальная сеть «Вконтакте» также имеет микроблоги, начиная с 2010 года. Пользователям данной социальной сети предоставляется возможность публиковать текстовые сообщения, фотографии, аудио файлы и т.д. у себя на странице.
2. Постановка задачи
Основной целью данной выпускной квалификационной работы является разработка веб-сайта “Многопользовательский микроблог”. Данная задача решается в следующем порядке:
- Выбор архитектуры серверной части веб-приложения.
- Подробное определение и описание функционала сайта.
- Выбор используемых технологий при разработке сайта.
- Разработка модели данных.
- Разработка веб-сайта.
Ниже представлен список возможностей, которые должны быть реализованы в данном веб-сайте:
- Пользователи сайта должны иметь возможность создания собственного акаунта на сайте, а также добавления дополнительной информации о себе (Полное имя, Дата рождения).
- Зарегистрированные и авторизованные пользователи должны иметь функционал, позволяющий им размещать посты и оценивать их.
- Дизайн сайта должен быть адаптивным – правильно отображаться на различных устройствах, будь то обычный ПК, планшет или телефон.
- На сайте должна быть страница администратора, на которой он может управлять добавленными постами, а именно удалять или восстанавливать их, после удаления.
3. Инструментальные средства разработки
Большинство современных веб-приложений имеет архитектуру «клиент-сервер». В данном случае клиентом является браузер, а сервером – веб-сервер. Перед тем как начать разрабатывать приложение, необходимо выбрать какие технологии будут использоваться при разработке.
Для клиентской части разработка происходит с использованием следующих технологий:
- язык разметки HTML
- язык стилей CSS
- JavaScript
Однако также были выбраны фреймворки Bootstrapи jQuery.
Bootstrap – это простой и легко настраиваемый HTML, CSS, и Javascript инструментарий. Данный фреймворк включает в себя большое количеств готовых элементов (меню, выпадающие списки, формы), а также позволяет создавать адаптивную вёрстку для веб-сайта.
jQuery – библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Использование данного фреймворка существенно упрощает написание клиентской логики сайта, а также существенно снижает количество строк кода, в сравнении с использованием «чистого» JavaScript. Также без данной библиотеки не будет работать Bootstrap, так как некоторые элементы, требующие выполнения некоторой логики, написаны с использованием jQuery.
Для разработки серверной части было решено использовать ASP.NET MVC 5, а также в качестве базы данных MS-SQL Server.
ASP.NET MVC в совокупности с такими технологиями как, EntityFramework, отвечающий за взаимодействие с базой данных, и ASP.NET Identity технологией, отвечающей за аутентификацию и авторизацию, является мощным и гибким инструментом.
Далее о каждой технологии подробнее.
3.1. .NET Framework и язык программирования C#
Язык программирования C# один из быстро развивающихся и востребованных языков в мире ИТ. На нем разрабатывают как небольшие десктопные приложения, так и крупные веб-сайты.
В сравнении с другими языками C# достаточно новый язык программирования. Первая версия языка появилась в феврале 2002 года. Она вышла вместе с релизом Microsoft Visual Studio .NET. Текущей версией языка является версия C# 7.0, которая вышла в 7 марта 2017 года вместе с Visual Studio 2017.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Как и данные языки C# является объектно-ориентированным. Например, C# поддерживает полиморфизм, наследование, перегрузку операторов, статическую типизацию. Объектно-ориентированный подход позволяет решить задачи по построению крупных, но в тоже время гибких, масштабируемых и расширяемых приложений.
Также C# имеет поддержку языка интегрированных запросов LINQ. Язык LINQ вместе с лямбда-выражениями вносят совершенно новый акцент в программирование на C# и еще глубже подчеркивают его ведущую роль в непрекращающейся эволюции языков программирования.
Когда говорят C#, нередко имеют в виду технологии платформы .NET. И, наоборот, когда говорят .NET, нередко имеют в виду C#. Однако, хотя эти понятия связаны, отождествлять их неверно. Язык C# был создан специально для работы с фреймворком .NET, однако само понятие .NET несколько шире.
.NET представляет мощную платформу для создания приложений. Можно выделить следующие ее основные черты:
- Поддержка нескольких языков. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), благодаря чему .NET поддерживает несколько языков: наряду с C# это также VB.NET, C++, F#, а также различные диалекты других языков, привязанные к .NET, например, Delphi.NET.
- Кроссплатформенность. .NET является переносимой платформой (с некоторыми ограничениями). Например, последняя версия платформы на данный момент .NET Framework поддерживается на большинстве современных ОС Windows (Windows 10/8.1/8/7/Vista).
- Мощная библиотека классов. .NET представляет единую для всех поддерживаемых языков библиотеку классов. И какое бы приложение мы не собирались писать на C# - текстовый редактор, чат или сложный веб-сайт - так или иначе мы задействуем библиотеку классов .NET.
- Разнообразие технологий. Общеязыковая среда исполнения CLR и базовая библиотека классов являются основой для целого стека технологий, которые разработчики могут задействовать при построении тех или иных приложений. Например, для работы с базами данных в этом стеке технологий предназначена технология ADO.NET. Для создания веб-сайтов - ASP.NET и т.д.