Разработка интерфейса социальной сети "Ученые Украины" - дипломная работа готовая

ООО "Диплом777"

8:00–20:00 Ежедневно

Никольская, д. 10, оф. 118

Дипломная работа на тему Разработка интерфейса социальной сети “Ученые Украины”

БАКАЛАВРСКАЯ РАБОТА

Разработка интерфейса социальной сети “Ученые Украины”

Введение

Социальные сети стали новой ступенью в развитии не только коммуникаций между людьми, но и в сферах маркетинга, рекламы, торговли, экономики, государственного управления. Самое главное – они все больше влияют на решение острых социальных проблем человечества.

Социальная сеть облегчает создание персонального профиля и виртуальных взаимоотношений. Социальные сети используются для поиска людей со схожими интересами и объектов этих интересов. В социальных сетях обычно используется народная классификация, практика совместной категоризации информации. Социальные сети, социальные закладки, онлайн-игры, блоги, форумы, сообщества, группы, комментарии, чаты и прочие элементы и ресурсы Веб 2.0 имеют преимущество перед традиционными сайтами и способами их наполнения. Главное преимущество сайтов Веб 2.0 перед сайтами первого поколения заключается в том, что последним нужно искать, составлять и оплачивать интересный контент, а также продвижение, которые являются залогом посещаемости. Необходимо тратить средства и на управление контентом. На ресурсах Веб 2.0 их участники сами бесплатно генерируют контент, управляют им и раскручивают ресурс, увеличивая его посещаемость.

Функции и особенности Веб 2.0. Построение пользовательского интерфейса сайта подходом Ajax, то есть таким образом, что страница сайта, не перезагружаясь, загружает нужные пользователю данные. Интеграция различных сервисов и сайтов друг с другом и их взаимозависимость (web mash-up – смешение), что предоставляет пользователям новую функциональность для работы. Новые разработки, позволяющие создавать на сайтах сообщества и группы. Легкие настройки и простые интерфейсы пользователей. Вид и формат сайтов: блоги, с возможностью комментирования размещаемых на них материалов (writable web – редактируемая паутина). Интерактивность и доверие управления контентом коллективному разуму. Поэтому контент не всегда может быть надежным, достоверным и объективным. Социализация сайта, с возможностью индивидуальных настроек для создания уникальной личной зоны пользователей: личные странички, фотографии, дневники, предпочтения, интересы, личная жизнь, карьера и круг друзей. Проблема ресурсов

Веб 2.0 в том, что, с одной стороны, без демократии они вымирают, а с другой стороны – демократия убивает сообщество. Следующим веским аргументом в пользу традиционных ресурсов является то, что хороший контент получается обычно не в результате общения. Преимущество ресурсов Веб 1.0 в том, что они имеют один стиль и четкую направленность, в то время как сайты Веб 2.0 постоянно меняют стили и установки в ходе коммуникации участников. Аудитория ресурсов Веб 2.0 постоянно меняет тематику, а для долгосрочного успеха любого информационного проекта важно сохранять тематичность.

1. Анализ предметной области и постановка задач исследования

1.1 Определение социальных сетей

Социальная сеть – социальная структура, состоящая из множества агентов-субъектов – индивидуальных или коллективных, например, индивидов, семей, групп, организаций, и определенного на нем множества отношений – совокупности связей между агентами[1]. Формально социальная сеть представляет собой граф G (E, N), в котором N = {1,2…, n} – конечное множество вершин, агентов, и E – множество ребер, отражающих взаимодействие агентов. Социальные сети способствуют, во-первых, организации социальных коммуникаций между людьми и, во-вторых, – реализации их базовых социальных потребностей.

Обобщая причины привлекательности социальных сетей, можно выделить следующие предоставляемые ими пользователям возможности:

– получение информации (в том числе обнаружение ресурсов) от других членов социальной сети;

– верификация идей через участие во взаимодействиях в социальной сети;

– социальная выгода от контактов (сопричастность, самоидентификация социальное отождествление, социальное принятие);

– рекреация (отдых, время препровождение).

«Ключевыми словами» любой модели социальной сети являются: агент, мнение, влияние / доверие, репутация.

Рисунок 1.1 – Базовые понятия модели социальной сети

1.2 Классификация мнений членов онлайновых социальных сетей

Одна из причин привлекательности онлайновых сетей для пользователей состоит в возможности выразить свое мнение. В общем случае оно выражается в тексте сообщения:

– в личной переписке в виде текста;

– в блоге на странице сообщения или в комментариях;

– при помощи специальных механизмов, реализованных разработчиками социальной сети, например в виде фактов, в социальной сети МойКруг;

– в виде опроса;

– оценки кого-либо или чего-либо в зависимости от тематической направленности социальной сети. Примером могут быть оценки в баллах;

– оценки могут быть векторными (многокритериальными). Примером является взгляд на пользователя как на совокупность его оценок;

– частным случаем балльных оценок являются бинарные оценки, например 0/1 или +1/-1.

Рисунок 1.2 – Классификация мнений

1.3 Свойства социальных сетей

социальный программный сеть интерфейс

При моделировании социальных сетей, взаимного влияния их членов, динамика их мнений, возникает необходимость учета факторов, имеющих место в реальных социальных сетях [2]. В реальных социальных сетях могут иметь место следующие эффекты и свойства, обусловленные как характеристиками и потребностями агентов, характером их взаимодействия, так и свойствами социальной сети:

а) наличие собственных мнения агентов;

б) изменение мнений под влиянием других членов социальной сети;

в) различная значимость мнений (влиятельность, доверие) одних агентов для других;

г) различная степень подверженности агентов влиянию – устойчивость мнений;

д) существование косвенного влияния в цепочке социальных контактов; уменьшение косвенного влияния с увеличением «расстояния»;

е) существование «лидеров мнений» (агентов с максимальным «влиянием»), формализация индексов влияния;

ж) существование порога чувствительности к изменению мнения окружающих;

з) локализация групп («по интересам», с близкими мнениями);

и) наличие специфических социальных норм;

к) существование внешних факторов влияния (реклама, маркетинговые акции) и, соответственно, внешних агентов (средства массовой информации, производители товаров);

л) наличие стадий – характерных этапов мнений членов социальной сети (например, процесса диффузии инноваций);

м) воздействие структурных свойств социальных сетей на динамику мнений:

– чем больше у агента связей, тем, с одной стороны, больше у него возможностей через свое окружение повлиять на всю сеть, а с другой – больше уязвимости к чужому влиянию;

– эффект кластеризации (чем выше плотность связей активных агентов-соседей, тем больше вероятность изменения состояния связанного с ним агента;

– локальная промежуточность (чем больше промежуточное значение агента, тем, с одной стороны, больше его значение в распространении мнения / информации из одной части сети в другую (роль информационного брокера), а с другой стороны, меньше его влияние на агента-соседа;

– малый диаметр социальной сети обусловливает короткую цепочку распространения мнения в сети;

н) возможность образование группировок, коалиций;

о) неполная или асимметричная информативность агентов, принятие ими решений в условиях неопределенности;

п) нетривиальная взаимная информативность (рефлексия) агентов;

р) игровые взаимодействия агентов;

с) информационное управление в социальных сетях;

т) активность (целенаправленное поведение) агентов.

Поведение агента в социальной сети может зависеть от следующих факторов:

– индивидуального – внутренней склонности (предпочтений) агента выбирать то или иное действие в отсутствие какого бы то ни было внешнего влияния;

– социального – определяемого взаимодействием (взаимовлиянием) с другими агентами;

– административного – результата воздействия (влияния) на него (управлением) со стороны управляющего органа – центра.

Рисунок 1.3 – Факторы, влияющие на поведение агента в социальной сети

Агенты, которые подвержены описанным факторам, называются зависимыми (от одного или нескольких этих факторов) [1]. Если на агентов действует как минимум социальный фактор, то объединяющую их сеть будем называть невырожденной социальной сетью. Не подверженных перечисленным факторам агенты называются независимые. Если у агентов отсутствует зависимость от социального фактора, то такая сеть, состоящая из невзаимодействующих агентов, называется вырожденной социальной сетью.

1.4 Ценность социальных сетей

Ценность социальной сети – это потенциальная доступность агентов, с которыми любой агент может «связаться» в случае необходимости. Ценность социальной сети как величина, зависящая от потенциальных связей всех агентов, очевидно должна возрастать с увеличением количества возможных конфигураций (потенциальных возможностей) этих связей в сети[2].

Web 2.0 – методика проектирования систем, которые путем учета сетевых взаимодействий становятся тем лучше, чем больше людей ими пользуются. Особенностью Web 2.0 является принцип привлечения многих пользователей к наполнению и многократной выверке содержания (контента). Существенным фактором является большое количество агентов, взаимодействие которых в сети увеличивает ее ценность.

1.5 Подвиды социальных сетей в формате Web 2.0

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

– социальные закладки. Некоторые веб-сайты позволяют пользователям предоставлять в распоряжение других список закладок или популярных веб-сайтов. Такие сайты также могут использоваться ля поиска пользователей с общими интересами;

– социальные каталоги – напоминают социальные закладки, но ориентированы на использование в академической сфере, позволяя пользователям работать с базами данных цитат их научных статей;

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

– социальные сети веб мастеров используются для анонсирования полезных материалов, позволяющих авторам оставлять ссылки на их посты, общаться, голосование за интересные анонсы. Часто имеет рейтинг или рекомендации;

– многопользовательские сетевые игры имитируют виртуальные миры с различными системами подсчета очков, уровней, состязательности, победителей и проигравших;

– геосоциальные сети позволяют налаживать социальные связи на основании физического положения пользователя. При этом используются различные инструменты геолокации, например GPS, которые дают возможность определить нынешнее местоположение пользователя, а также создавать профайлы мест, которые пользователи посещают;

– профессиональные социальные сети создаются для общения на профессиональные темы, обмена опытом и информацией, поиска и предложения вакансий, развития деловых связей;

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

1.6 Задача управления

Постановка задачи управления системой. Имеется управляющий орган и управляемая система. Состояние управляемой системы зависит от внешних воздействий, воздействий со стороны управляющего органа и действия самой управляемой системы (если объект управления активен, также является субъектом, что характерно для социально – экономических, организационных систем). Задача управляющего органа заключается в том, чтобы осуществить такие управляющие воздействия, чтобы с учетом информации о внешних воздействиях обеспечить требуемое состояние управляемой системы.

Управляемая система может описываться различными способами (системой дифференциальных уравнений, набором логических правил), отражающих зависимость состояний от внешних факторов, управлений, предшествующих состояний [1]. Может использоваться сетевая модель, представленная на рисунке 1.6, в которой вершины соответствуют компонентам вектора состояний или агентам – участникам системы, а дуги – их влиянию друг на друга.

Рисунок 1.6 – Сеть как модель объекта

системе классификации задач управления, в которой основанием является предмет, на который оказывается воздействие в процессе управления, можно выделить следующее:

– управление составом (набором элементов, входящих в состав управляемой системы);

– управление структурой (связями между элементами);

– институциональное управление (управление ограничениями и нормами деятельности элементов системы);

– мотивационное управление (управление предпочтениями элементов системы);

– информационное управление (управление информированностью элементов системы – той информацией, которой они обладают на момент принятия решений).

В «сетевой» интерпретации, когда объект управления описывается графом (причем вершины графа «пассивны», не обладают собственными предпочтениями и информированностью), получаем, что управление может заключаться в целенаправленном воздействии на следующие компоненты объекта управления:

– состав управляемой системы (управление может заключаться в удалении или добавлении вершин);

– структуру (связи между элементами) управляемой системы (управление может заключаться в удалении или добавлении дуг);

– значение параметров, соответствующих вершинам графа (значения состояний) и его дуг (значения параметров, отражающих взаимосвязи между элементами системы).

Большинство известных на сегодняшний день моделей управления описывают именно воздействия на параметры графа, почти не затрагивая состава сети и его структуры.

Рисунок 1.7 – Управление объектом, описываемым сетью

1.7 Модели влияния в социальных сетях

Влияние – это способность воздействовать на чьи-либо представления или действия. Различают направленное и ненаправленное влияние. Направленное (целенаправленное) влияние – влияние, использующие в качестве механизмов воздействия на другого субъекта убеждение и внушение. При этом субъект влияния ставит перед собой задачу добиться определенных результатов от объекта влияния. Ненаправленное (нецеленаправленное) влияние – влияние, при котором индивид не ставит пред собой задачу добиться определенных результатов от объекта влияния[2]. В социальной сети агенты часто не имеют достаточной для принятия решений информации или не могут самостоятельно обработать ее, поэтому их решения могут основываться на наблюдаемых ими решениях или представлениях других агентов (социальное влияние). Социальное влияние реализуется в двух процессах: коммуникации (в ходе общения, обмена опытом и информацией, обсуждения тех или иных вопросов с авторитетными для агента соседями он проходит к определенным представлениям, установкам, мнениям) и сравнения (в поисках социальной идентичности и социального одобрения агент принимает представления и действия, ожидаемые от него другими агентами в данной ситуации). При коммуникативном подходе к влиянию агенты могут прийти к сходным представлениям, но не обязательно к сходному поведению. При сравнении же агент обычно косвенным образом копирует поведение. Поведение агента определяет не только представлениями, но и ограничениями, с которыми он сталкивается. Поэтому агенты со схожими представлениями могут вести себя по-разному, и наоборот, агенты с разными представлениями могут вести себя одинаково.

Модели влияния можно классифицировать следующим образом:

1. Оптимизационные и имитационные модели, включающие следующие классы:

– модели с порогами;

– модели независимых каскадов;

– модели просачивания и заражения;

– модели Изинга;

– модели на основе клеточных автоматов;

– модели на основе цепей Маркова.

2. Теоретико-игровые модели, в которых акцент делается на информативность и взаимосвязь между игроками (агентами). Выигрыш, получаемый агентом (игроком), зависит от действий оппонентов (других игроков). Агент действует так, чтобы максимизировать свою выгоду. Ряд теоретико-игровых моделей:

– модели взаимной информативности;

– модели согласованных коллективных действий;

– модели стабильности сети;

– модели информационного влияния и управления;

– модели информационного противоборства.

Социальная сеть играет большую роль в распространении информации, идей и влияния между ее членами.

1.8 Постановка задачи

Целью бакалаврской работы является разработка интерфейса социальной сети «Ученые Украины». Для построения такой модели анализируются научные публикации. Программная реализация сохранения и добавления публикаций в базу данных в среде Visual Studio ASP.NET.

Исходя из цели бакалаврской работы, были поставлены следующие задачи:

– обеспечение возможности коммуникации пользователей социальной сети;

– обеспечение возможности публикаций комментариев по выложенной информации, статьям, в группах по интересам или по поводу событий;

– обеспечение возможности создания профиля каждого пользователя социальной сети;

– разработка прозрачного интерфейса, доступного для всех пользователей;

– локализация социальной сети на трех языках, для возможности регистрации иностранных ученых.

2. Выбор средств проектирования социальной сети

2.1 ASP.NET

ASP.NET – технология создания веб-приложений и веб-сервисов от компании Майкрософт. Она является составной частью платформы Microsoft.NET и развитием более старой технологии Microsoft ASP. ASP.NET внешне во многом сохраняет схожесть с более старой технологией ASP, что позволяет разработчикам относительно легко перейти на ASP.NET. В то же время внутреннее устройство ASP.NET существенно отличается от ASP, поскольку она основана на платформе.NET и, следовательно, использует все новые возможности, предоставляемые этой платформой[3].

ASP.NET работает совсем иначе, нежели традиционные технологии написания сценариев, подобные классической системе ASP или PHP.

Ниже перечислены некоторые различия между ASP.NET и более ранними платформами Web-разработки:

– ASP.NET предлагает полностью объектно-ориентированную модель программирования, включающую управляемую событиями, основанную на элементах управления архитектуру, которая обеспечивает инкапсуляцию и повторное использование кода.

– ASP.NET позволяет писать код на любом языке, поддерживаемом.NET (включая Visual Basic, C#, J# и множество других языков с компиляторами от независимых поставщиков).

– платформа ASP.NET ориентирована на достижение высоких показателей производительности. Страницы и компоненты ASP.NET компилируются по требованию, а не интерпретируются при каждом использовании. ASP.NET также включает хорошо настроенную модель доступа к данным и гибкое кэширование данных для дальнейшего повышения производительности [4].

2.2 ASP.NET интегрируется с.NET Framework

Среда.NET Framework состоит из очень тщательно отобранных функциональных частей, общее количество которых насчитывает более

10 000 типов (типами в.NET называются классы, структуры, интерфейсы и другие ключевые элементы программирования). Чтобы создавать любые приложения.NET, необходимо обязательно хотя бы в общем понимать, что собой представляют эти части и почему они организованы имен но таким, а не каким-нибудь другим образом. Способ, которым упорядочена предлагаемая.NET Framework обширная коллекция

функциональных возможностей, программистам традиционных Windows-приложений, несомненно, понравится. Каждый из тысяч доступных в.NET Framework классов размещается в логическом иерархическом контейнере, который называется пространством имен (namespace). Разные пространства имен предоставляют разные функциональные возможности, а все вместе они предоставляют функциональные возможности для практически каждой области распределенной разработки, начиная от организации очередей сообщений и заканчивая обеспечением безопасности. Весь целиком этот обширный набор инструментов называется библиотекой классов (class library) [3].

2.3 Код ASP.NET

Одной из главных причин снижения производительности в классических ASP-страницах является использование интерпретируемого кода сценария. При каждом выполнении ASP-страницы, находящемуся на Web-сервере механизму сценариев приходится интерпретировать код сценария и преобразовать его в более низкоуровневый машинный код строка за строкой, а, как известно, этот процесс выполняется чрезвычайно медленно.

Приложения ASP.NET всегда компилируются: на самом деле выполнить код C# или Visual Basic, предварительно не скомпилировав его, просто не возможно[3].

Приложения ASP.NET в действительности проходят два этапа компиляции. На первом этапе написанный вами код C# компилируется в код на промежуточном языке под названием Microsoft Intermediate Language (MSIL), или просто IL. Этот первый шаг является фундаментальной причиной взаимозависимости.NET от языков. По сути, все языки.NET (включая C#, Visual Basic и многие другие) компилируются в фактически идентичный код IL. Этот первый этап компиляции может произойти автоматически при первом запросе страницы, или же его можно выполнить заранее (этот процесс известен как предварительная компиляция). Скомпилированный файл с кодом IL является сборкой[4].

Второй этап компиляции наступает непосредственно перед фактическим выполнением страницы. На этом этапе код IL компилируется в низкоуровневый собственный машинный код. Этот этап известен как оперативная компиляция «точно к нужному моменту» (Just-In-Time – JIT) и он проходит одинаково для всех приложений.NET (включая, например, приложения Windows). На рисунке 2.1 показан этот двухэтапный процесс компиляции.

Рисунок 2.1 – Компиляция в рамках Web-страницы ASP.NET

2.4 ASP.NET обслуживается CLR

Наиболее важным аспектом механизма ASP.NET является то, что он функционирует внутри исполняющей среды CLR (общеязыковая исполняющая среда). Вся среда.NET Framework – т.е. все пространства имен, приложения и классы – называется управляемым кодом. Основные преимущества CLR:

– автоматическое управление памятью и сборка мусора. Каждый раз, когда приложение создает экземпляр объекта ссылочного типа (reference-type object), CLR выделяет для него пространство памяти в управляемой куче. Однако вам никогда не придется очищать эту память вручную. Как только ссылка на объект выходит за пределы области видимости (или приложение завершается), объект становится доступным для сборщика мусора. Сборщик мусора периодически запускается внутри CLR, автоматически восстанавливая неиспользованную память для недоступных объектов. Эта модель избавляет от низкоуровневых деталей манипулирования памятью C++ и от запутанности подсчета ссылок COM;

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

– расширяемые метаданные. Информация о классах и членах является только одним из типов метаданных, которые.NET может хранить в скомпилированной сборке. Метаданные описывают код и позволяют предоставлять дополнительную информацию исполняющей среде и другим службам. Например, эти метаданные могут указывать отладчику, как следует выполнять трассировку кода, или же сообщать Visual Studio о том, как во время проектирования должен отображаться какой-нибудь специальный элемент управления. Они также могут использоваться и для активизации еще каких-нибудь служб во время выполнения, например, для активизации транзакций или пула объектов;

– структурированная обработка ошибок. Языки.NET поддерживают структурированную обработку исключений, что позволяет организовывать код обработки ошибок логичным и последовательным образом, т.е. создавать для разных типов ошибок отдельные блоки, а также размещать обработчики исключений на глубине в целых несколько уровней;

– многопоточность. CLR предоставляет пул потоков, которые могут использоваться различными классами. Например, можно асинхронно вызывать методы, читать файлы либо взаимодействовать с Web-службами без необходимости явного создания новых потоков.

2.5 ASP.NET объектно-ориентированная технология

ASP.NET является самой настоящей объектно-ориентированной технологией. Она не только предоставляет полный доступ ко всем объектам в.NET Framework, но и позволяет использовать все концепции объектно-ориентированного программирования (ООП). Например, она позволяет создавать повторно используемые классы, стандартизовать код с помощью интерфейсов, расширять существующие классы посредством наследования и объединять полезные функциональные возможности в пригодный для распространения скомпилированной компонент[4]. Одним из наилучших примеров поддержки объектно-ориентированного поведения в ASP.NET являются серверные элементы управления. Эти элементы управления представляют собой инкапсуляцию в миниатюре. Разработчики могут манипулировать их объектами программно, используя код для настройки их внешнего вида, предоставления подлежащих отображению данных и даже реагирования на события.

2.6 ASP.NET легко развертывается и конфигурируется

Каждая установка.NET Framework предоставляет одни и те же базовые классы. Поэтому процедура развертывания приложения ASP.NET выглядит относительно просто и, в общем, подразумевает всего лишь копирование всех файлов в виртуальный каталог на производственном сервере (с помощью программы FTP или даже утилиты командной строки вроде XCOPY). Если на машине-хосте установлен компонент.NET Framework, выполнять какие-либо трудоемкие шаги по регистрации не потребуется.

Большинство установок ASP.NET хранится в специальном файле web.config. Файл web.config помещается в тот же каталог, что и Web-страницы. Он содержит иерархически сгруппированные настройки приложения, хранимые в удобочитаемом формате XML, который можно редактировать с использованием простого текстового редактора.

2.7 LINQ

LINQ (Language Integrated Query – язык интегрированных запросов) – это набор расширений для языка C# и Visual Basic. Он позволяет писать на C# или Visual Basic код, способный манипулировать находящимися в памяти данными во многом подобно отправке запросов к базе данных. С технической точки зрения LINQ поддерживает около 40 операций запросов, подобных SELECT, FROM, IN, WHERE и ORDER BY (для C#). Эти операции позволяют писать код запроса. Однако данные, по которым может выполняться этот запрос, могут быть разного типа, и каждый тип данных требует применения отдельной разновидности LINQ[3].

Главной разновидностью LINQ является LINQ to Objects (LINQ-запрос к объектам), которая позволяет брать коллекцию объектов и выполнять запрос, извлекающий из некоторых этих объектов какую-то информацию. Использование разновидности LINQ to Objects не ограничивается только ASP.NET. Другими словами, ее можно применять в Web-странице точно таким же образом, как и в.NET-приложении любого другого типа.

2.8 ASP.NET AJAX

AJAX (Asynchronous JavaScript and XML – асинхронный JavaScript и XML) – это применяемое в области программирования сокращенное условное обозначения для клиентской технологии, которая позволяет странице обращаться к серверу и обновлять свое содержимое без инициации полной обратной отправки данных. Обычно Ajax-страница использует код клиентского сценария для выполнения асинхронного запроса незаметным образом. Сервер получает этот запрос, выполняет какой-нибудь код затем возвращает необходимые странице данные (часто в виде блока XML-разметки). В конечном итоге клиентский код получает новые данные и использует их для выполнения еще какого-то действия, например, обновления части страницы.

ASP.NET AJAX – это многоуровневая технология, которая предоставляет широкий спектр опций для интеграции функциональных возможностей Ajax в обычные Web-страницы ASP.NET. На самом низком уровне ASP.NET AJAX может применяться для написания более мощных сценариев JavaScript, а на более высоких уровнях – для добавления путем использования серверных компонентов новых функциональных возможностей вроде автозавершения, перетаскивания и анимации, без выполнения какого-либо клиентского программирования [4].

3. Программная реализация

3.1 Модуль для регистрации

В раздел, отвечающий за идентификацию пользователей, входит регистрация, дальнейшая авторизация и аутентификация, возможность редактировать личные данные.

Регистрация реализована с помощью стандартных классов, реализованных в.NET Framework, таких как SqlMembershipProvider, отвечающий за управление хранилищем сведений членства для приложений ASP.NET в базе данных SQL Server, SqlRoleProvider, отвечающий за управлении хранилищем сведений о членстве роли, SqlProfileProvider отвечающий за управлении хранилищем сведений о профиле пользователей. Профиль пользователя был сконфигурированы таким образом, что бы у пользователя появились дополнительные поля, в которые он может сохранять свои личные данные, такие как имя, фамилия, отчество, язык, адрес, научную степень и должность в университете. Все пользователи со своими личными данными сохраняются в отдельной базе данных. На рисунке 3.1 изображенная форма с регистрацией. Для предотвращения регистрации компьютеров, используется автоматизированный публичный тест Тьюринга для различия компьютеров и людей, известная как CAPTCHA.

Рисунок 3.1 – Форма регистрации

Форма регистрации написана на основе стандартного контрола CreateUserWizard, редактированного для добавления каптчи и написанного контрола для создания и редактирование профиля пользователя, который изображен на рисунке 3.2.

Рисунок 3.2 – Профиль пользователя

Функционал контроля написан с использование класса ProfileBase, который предоставляет нетипизированный доступ к свойствам профиля и сведениям о нем.

Для аутентификации используется аутентификации с помощью форм. Аутентификация форм основана на мандатах (также называемых маркерами). Когда пользователь регистрируется, он получает так называемый мандат с базовой информацией о себе. Информация сохраняется в зашифрованном cookie-наборе, который прикрепляется к ответу, так что автоматически подтверждается в каждом последующем запросе. Когда пользователь запрашивает страницу ASP.NET, которая не доступна анонимным пользователям, исполняющая система ASP.NET проверяет, доступен ли аутентифицирующий мандат формы. Если нет, выполняется автоматическая переадресация на страницу регистрации.

Авторизация – процесс определения того, имеет ли аутентифицированный пользователь достаточные привилегии на выполнение того или иного действия. Декларативный правила авторизации определены в файле конфигураций web.config:

<configuration>

<system.web>

<authorization>

<allow roles= «Administrator»/>

<deny users= “*»/>

</authorization>

</system.web>

</configuration>

Правила действуют через специальный модуль HTTP – UrlAuthorizationModule. Модуль просматривает эти правила и проверяет каждый запрос, чтобы гарантировать, что пользователю не будут доступны ресурсы, доступ к которым ограничен специальным образом.

Для реализации возможности аутентификации и авторизации, был использован стандартный контрол Login, изображенный на рисунке 3.3.

Рисунок 3.3 – Логин

3.2 Функции администрирования

Административная часть включает в себя возможность добавления, редактирования и удаление статей. Возможность добавления статьи изображено на рисунке 3.4.

Рисунок 3.4 – Добавление статьи

Редактирование статей организовано следующим образом. Администратор выбирает из контрола GridView, изображенного на рисунке 3.5, статью, она становиться доступной для редактирование, возможность редактирование изображена на рис. 3.6.

Рисунок 3.5 – Выбор статьи

Рисунок 3.6 – Редактирование статьи

3.3 Подпрограмма для обмена сообщениями

Для реализации возможности отправки и получения сообщений между пользователями использовалась объектная модель доступа к базе данных Data Objects.NET. Такая модель Класс, отображающий поля таблицы базы данных для строго типизированного доступа:

public class MessageDetails

{

public int MessageID {get; set;}

public string Subject {get; set;}

public string Body {get; set;}

public DateTime ReceiptDate {get; set;}

public string FromUser {get; set;}

public string ToUser {get; set;}

public bool Readed {get; set;}

public MessageDetails()

{}

public MessageDetails (int messageID, string subject, string body,

DateTime receiptDate, string fromUser, string toUser, bool readed)

{

this. MessageID = messageID;

this. Subject = subject;

this. Body = body;

this. ReceiptDate = receiptDate;

this. FromUser = fromUser;

this. ToUser = toUser;

this. Readed = readed;}}

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

public class Messages

private string MainDBConnectionString;

public Messages()

{

this. MainDBConnectionString = WebConfigurationManager. ConnectionStrings [«MainDBConnectionString»].ConnectionString;

}

public Messages (string ConnectionString)

{

this. MainDBConnectionString = ConnectionString;

}

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

public void InsertMassege (string subject, string body, DateTime receiptDate, string fromUser, string toUser, bool readed)

{

using (SqlConnection conn = new SqlConnection(MainDBConnectionString))

{

SqlCommand cmd = new SqlCommand («Message_AddMessage», conn);

cmd. CommandType = CommandType. StoredProcedure;

cmd. Parameters. Add (new SqlParameter («@Subject», SqlDbType.NVarChar, 256));

cmd. Parameters [«@Subject»].Value = subject;

cmd. Parameters. Add (new SqlParameter («@Body», SqlDbType.NText, 1073741823));

cmd. Parameters [«@Body»].Value = body;

cmd. Parameters. Add (new SqlParameter («@ReceiptDate», SqlDbType. DateTime, 8));

cmd. Parameters [«@ReceiptDate»].Value = receiptDate;

cmd. Parameters. Add (new SqlParameter («@FromUser», SqlDbType.NVarChar, 128));

cmd. Parameters [«@FromUser»].Value = fromUser;

cmd. Parameters. Add (new SqlParameter («@ToUser», SqlDbType.NVarChar, 128));

cmd. Parameters [«@ToUser»].Value = toUser;

cmd. Parameters. Add (new SqlParameter («@Readed», SqlDbType. Bit, 1));

cmd. Parameters [«@Readed»].Value = readed;

conn. Open();

cmd. ExecuteNonQuery();

}

Хранимые процедуры находятся в базе данных, ниже представлена процедура, которую использует метод вставки записи:

ALTER PROCEDURE Groups_InsertGroup

(

@GroupID int,

@GroupName nvarchar(256),

@GroupTheme nvarchar(512),

@GroupBody ntext,

@GroupLeader nvarchar(256))

AS

INSERT INTO Groups (GroupID, GroupName, GroupTheme, GroupBody, GroupLeader) values (@GroupID,@GroupName,

@GroupTheme,@GroupBody,@GroupLeader);

INSERT INTO GroupMembers (GroupID, UserName) values (@GroupID,@GroupLeader)

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

Рисунок 3.7 – Сообщения

Выбрав сообщение, можно увидеть имя и фамилию пользователя, от которого пришло сообщение, тему и тело сообщения, так же можно сразу же ответить, интерфейс изображен на рисунке 3.8.

Рисунок 3.8 – Отправка сообщений

3.4 Реализация интерфейса объединения в группы

Для реализации возможности создание, добавления и общения внутри групп, было реализовано четыре класса: GroupDetails – отображает значение таблицы Groups в базе данных, Group – реализует доступ к базе данных, добавление, редактирование, удаление, GroupCommentDetails – отображает значения таблицы GroupComment в базе данных, GroupComment, подобно классу Group, реализует доступ к базе данных, редактирование и удаление.

На рисунке 3.9 изображен список групп, название, тема группы, тело группы и лидер группы, по нажатию на название группы можно зайти в группу, оставить комментарии, интерфейс изображен на рисунке 3.10, если вы лидер, то можно пригласить в группу других пользователей или удалить группу, интерфейс изображен на рисунке 3.11.

Рисунок 3.9 – Группы

Рисунок 3.10 – Интерфейс группы

Рисунок 3.11 – Добавление группы

На рисунке 3.12 изображен интерфейс управления группой, можно пригласить пользователя, после нажатия на кнопку «Invite», пользователь увидит список доступных пользователей для добавления в группу, список пользователей изображен на рисунке 3.13

Рисунок 3.12 – Интерфейс управления группой

Рисунок 3.13 – Список пользователей

3.5 Программный модуль реализации объявлений о событиях

События реализованы аналогично группам, за исключением что было добавлено поле даты события. На рис. 3.14 изображен список доступных событий, 3.15 – добавление события, 3.16 – интерфейс события.

Рисунок 3.14 – Список событий

Рисунок 3.15 – Добавление события

Рисунок 3.16 – Интерфейс события

3.6 Реализация интерфейса добавления друзей

Возможность добавление друга реализована с помощью одного класса Friends и таблицы в базе данных MainDb. Friends, куда записываеться логин пользователя, и логин пользователя – друга. На рис. 3.17 показан список пользователь, которые являются друзьями текущего пользователя.

Рисунок 3.17 – Список друзей

По выбору одного из друзей, пользователь перейдет на страницу друга, увидит подробную информацию, как на рис. 3.18.

Рисунок 3.18 – Информация пользователя

Также, у пользователя есть возможность, воспользовавшись интерфейсом на рис. 3.19, убрать пользователя из друзей, написать сообщение, пригласить в группу или подписать на событие.

Рисунок 3.19 – Интерфейс друга

3.7 Программная реализация поиска

Для реализации поиска создан класс Search с методами, возвращающими данные, в которых отвечают запросу, методы написаны с помощью интегрированного языка запросов (LINQ), один из методов представлен ниже:

public List<UserProfile> SearchUser (string value)

{

List<UserProfile> usersProfile = new List<UserProfile>();

MembershipUserCollection Users = Membership. GetAllUsers();

foreach (MembershipUser user in Users)

{

usersProfile. Add (new UserProfile (user. UserName));

}

var query = from user in usersProfile

where user. FirstName. ToLower().Contains(value) || user. LastName. ToLower().Contains(value)

select user;

return query. ToList<UserProfile>();

}

Поиск видеться по критериям, таким как: по статьям, по пользователям, по событиям и по группам, что показано на рисунке 3.20.

Рисунок 3.20 – Панель поиска

После введение запроса и нажатие кнопки поиск, пользователь увидит результат на страничке, пример приведен на рисунке 3.21.

Рисунок 3.21 – Пример поиска

3.8 Дизайна сайта

В основе представления сайта лежит мастер страница, которая играет роль каркаса для каждой страницы, что показано на рисунке 3.22.

Рисунок 3.22 – Мастер-страница

Также в мастер-страницу входит меню, оно изображено на рис. 3.23.

Рисунок 3.23 – Меню сайта

Источником данных для меню служит файл Web.sitemap, который представленный ниже:

<? xml version= «1.0» encoding= «utf-8»?>

<siteMap ~/UserPages/Friends.aspx» title= «Friends» description=»» />

<siteMapNode url= “~/UserPages/Messages.aspx» title= «Messages» description=»» />

<siteMapNode url= “~/UserPages/Groups.aspx» title= «Groups» description=»» />

<siteMapNode url= “~/UserPages/Events.aspx» title= «Events» description=»» />

<siteMapNode url=»» title= «Admin» description=»» >

<siteMapNode url= “~/Admin/AddArticle.aspx» title= «Add article» description=»» />

<siteMapNode url= “~/Admin/ApproveArticle.aspx» title= «Approve article» description=»» />

<siteMapNode url= “~/Admin/ArticleManager.aspx» title= «Article manager» description=»» />

</siteMapNode>

</siteMapNode>

</siteMap>

Все элементы размещены средствами с помощью верстки слоями, с помощью тегов <div>, а основные css – стили хранятся в файле StyleSheet.css, ниже представленный некоторые css – классы:

body

{

padding: 0;

margin: 0;

font: 0.74em Arial, sans-serif;

line-height: 1.5em;

background: White;

color: #454545;

}

Main

{

min-height: 100%;

width: 980px;

margin: 0 auto;

height: 900px;

}

menubar

{

width: 982px;

padding: 0;

margin: 0 auto;

padding: 0 0 0 0px;

background-color: #E3EAEB;

height: 37px;

}

menu

{

background-color: inherit;

float: left;

padding: 2px 2px 2px 2px;

margin: 0 auto;}

3.9 Локализация сайта

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

Рисунок 3.24 – Страница регистрации на английском языке

Рисунок 3.25 – Страница регистрации на русском языке

3.10 База данных

Для хранения информации была выбрана база данных SQL Server 2008.

База данных называется MainDB и имеет следующие таблицы:

Таблица Articles, которая отвечает за хранение статей.

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

Таблица Events – хранятся информация о событиях.

Таблица EventMembers – хранит информацию о подписки пользователей на события.

Таблица EventComments – хранит информацию о комментариях к событиям.

Таблица Groups – хранит информацию о группах.

Таблица GroupMembers – хранит информацию о принадлежности пользователей к группам.

Таблица GroupComments – хранит информацию о комментариях к группам.

Таблица Friends – хранит информацию о наличии у пользователей друзей.

Таблица Messages – хранит сообщния пользователей.

На рис. 3.26 изображена диаграмма базы данных MainDB.

Рисунок 3.26 – Диаграмма базы данных MainDB

База данных UserDb сгенерирована стандартным инструментом ASPNET_REGSQL и отвечает за хранение информации о пользователях, роли, информацию профайла каждого пользователя.

Выводы

В процессе выполнения дипломной работы было исследовано множество социальных сетей, таких как: facebook.com, youtube.com, yahoo.com, vk.com, MySpace.com, изучена функциональность, интерфейс для совершенствования разрабатываемой социальной сети.

В ходе выполнения дипломной работы был разработан интерфейс пользователей социальной сети «Ученые Украины», позволяющий реализовать все функции, присущие социальным сетям: администрирование, возможность создания личного профиля, обмен сообщениями, объединение в группы по интересам, возможность подписки на уведомления, возможность добавления статей. Реализовано управление группами и событиями: удаление, добавление, возможность комментирования.

Разработанный модуль был протестирован на локальном сервере.

Перечень ссылок

1 Чернец, В.О. Влияние через социальные сети [Текст] / В.О. Чернец, Т.В. Базлова, Э.В. Иванова; под общей ред. Е.Г. Алексеевой. – М.: Фонд «ФОКУС-МЕДИА», 2010. – 200 с.

2 Губанов, Д.А. Социальные сети. Модели информационного влияния, управления и противоборства. [Текст] / Д.А. Губанов, Д.А. Новиков, Ч.Х. Чхартишвили; под ред. чл. – кор. РАН Д.А. Новикова. – М.: Издательство физико – математической литературы, 2010 – 228 с.

3. Мак-Дональд, М., Microsoft ASP.NET 3.5 с примерами на C# 2008 для профессионалов, 2-е изд. [Текст] / М., Мак-Дональд, М. Шпушта, Пер.

с англ. – М.: ООО «И.Д. Вильямс», 2008. – 1424 с.

4. Беддиньясо, М. Web-приложение в среде ASP.NET 2.0: задача – проэкт – решение. /М. Беддиньясо: Пер. с англ. – М.: ООО «И.Д. Вильямс», 2007. – 640 с.

5. Сандерсон, С. ASP.NET MVC Framework с примерами на С# для профессионалов, [Текст] / С. Сандерсон. Пер. с англ. – М.: ООО «И.Д. Вильямс», 2010 – 560 с.

6. Шилдт, Г. С# полное руководство, [Текст] / Г. Шилдт. Пер. с англ – М. ООО «И.Д. Вильямс», 2011. – 1056 с.

7. http://msdn.microsoft.com.

8. Рихтер Д. Программирование на платформе Microsoft.NET Framework [Текст] / Д. Рихтер. Пер. с англ. – 2-е изд., испр. – М.: Издательско-торговый дом «Русская Редакция», 2003 – 512 с.

Поделиться статьёй
Поделиться в telegram
Поделиться в whatsapp
Поделиться в vk
Поделиться в facebook
Поделиться в twitter
Леонид Федотов
Леонид Федотов
Окончил НИУ ВШЭ факультет компьютерных наук. Сам являюсь кандидатом наук. По специальности работаю 13 лет, за это время создал 8 научных статей и 2 диссертации. В компании подрабатываю в свободное от работы время уже более 5 лет. Нравится помогать школьникам и студентам в решении контрольных работ и написании курсовых проектов. Люблю свою профессию за то, что это направление с каждым годом становится все более востребованным и актуальным.

Ещё статьи