dotSITE
Шаблоны проектирования Work in Murano Software. Вопросы/Ответы
новости материалы решения форумы группы настройки/о проекте
Логин/Регистрация
Логин:
Пароль:
Запомнить вас:
Регистрация
Забыли пароль?

Комментарии

Использование ASP.NET Forums для создания дискуссионных групп.

Что такое ASP.NET Forums и с чем их едят.

Использование ASP.NET Forums для создания дискуссионных групп.

 

Недавно видел в одном из форумов сообщение о том, что человек соскучился по сложным способам разработки веб-систем.  Он «ревновал», поскольку встроенные в .NET средства разработки приложений настолько просты, что с их помощью даже новичкам под силу быстро создавать мощные приложения. Хочу обрадовать автора сообщения, что и в .NET ему будет чем заняться, поскольку за всей внешней простотой системы лежит сложная внутренняя архитектура, не зная которой трудно создавать профессиональные решения.

 

Сегодня мы рассмотрим очередной способ упростить себе жизнь и сохранить при этом свой профессиональный уровень. Хочу представить Вам ASP.NET Forums. Этот долгожданный для любого веб-мастера проект полностью оправдывает своё название и представляет собой доступный в исходных кодах проект поддержки дискуссионных групп, написанный на ASP.NET.

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

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

 

Инсталляция.

Скачать проект и посмотреть системные требования можно с сайта www.asp.net по адресу http://www.asp.net/Forums/Download/

Запускаем AspNetForums.exe, следуем инструкциям и…проверяем инсталляцию по адресу http://localhost/AspNetForums/

Если Вы похожи на меня, то увидите следующее жизнерадостное сообщение

<сообщение>

 
[SqlException: Cannot resolve collation conflict for equal to operation.]
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream) +643
   System.Data.SqlClient.SqlCommand.ExecuteReader() +11
   AspNetForums.Data.SqlDataProvider.GetSiteStatistics() +109
   AspNetForums.Components.Statistics.GetSiteStatistics() +120
   AspNetForums.Controls.SiteStats.InitializeSkin(Control skin) +20
   AspNetForums.Controls.SkinnedForumWebControl.CreateChildControls() +24
   System.Web.UI.Control.EnsureChildControls() +100
   System.Web.UI.Control.PreRenderRecursiveInternal() +38
   System.Web.UI.Control.PreRenderRecursiveInternal() +125
   System.Web.UI.Control.PreRenderRecursiveInternal() +125
   System.Web.UI.Control.PreRenderRecursiveInternal() +125
   System.Web.UI.Page.ProcessRequestMain() +1470

 

</сообщение>

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

  1. Идём в ту папку, в которую Вы поставили AspNetForums (может быть это c:\AspNetForums на вашей машине ?)
  2. Открываем в текстовом редакторе файл AspNetForums.sql
  3. Запускаем команду replace all: заменяем строку “COLLATE SQL_Latin1_General_CP1_CI_AS” на пустую строку («»). Должно произойти 49 замен
  4. Запускаем SQL Query Analyzer, соединяемся с сервером, копируем туда изменённый скрипт и запускаем. Если Query Analyzer говорит Вам о том, что база не может быть удалена по причине её текущего использования, то сначала удалите базу (например, через Enterprise Manager), а потом уже запускайте скрипт

После этого мы радостно нажимаем refresh в броузере, ожидая приятную картинку по адресу http://localhost/AspNetForums/  и получаем следующее сообщение о "General Network Error"

 

Попробуем добавить в SQL Enterprise Manager пользователю ASPNET на локальной машине права db_owner на базу AspNetForums и получим долгожданные работающие форумы.

 

Что мне с этим делать?

Дальше всё зависит от Вашей фантазии и мастерства. Настройки приложения прописаны в файле web.config. Администрировать форумы можно двумя путями: через веб-интерфейс и через базу. Текущих пользователей и их пароли (включая администратора) Вы всегда можете посмотреть в таблице Users.

Само по себе решение состоит из двух C# проектов и логики в базе:

  • AspNetForums (именно на него и смотрит Ваш виртуальный каталог). Является подкаталогом Вашей инсталляции форумов. Представляет из себя веб-интерфейс форумов, со скинами в папке skins.
  • Engine. Является подкаталогом Вашей инсталляции форумов. Содержит основную логику работы проекта.
  • Уровень хранимых процедур в базе.

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

Ещё одна из потенциальных задач – перенос данных из существующих у Вас форумов в ASP.NET Forums. Хотим заметить, что это не сложно. Наше приложение реализовывало следующий алгоритм:

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

Самая простая из задач – это модификация дизайна и решается она благодаря использованию скинов в проекте (см. папку AspNetForums\Skins\default).

 

Надеюсь, этот краткий обзор поможет Вам в приручении кода, написанного командой разработчиков ASP.NET и ускорит процесс создания Вами веб-приложений.

 

А теперь всё то же самое и по-руccки.

Теперь доступна и русифицированная версия форумов. Скажем спасибо Алексею Кизину.

 

Андрей Филёв

MCSD.NET

Руководитель проекта dotSITE.ru

Президент Russian .NET User Group

Автор “Professional UML with VS.NET”


Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2010 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development