2011-08-09 4 views
3

* Это вопрос архитектуры.Dot net nuke без разработки модулей?

Я новичок в разработке DNN, мы пытаемся создать сайт электронной коммерции, в котором будут представлены все продукты, которые будут привязаны к нашей текущей базе данных заказов.

Я ошибаюсь, полагая, что любая пользовательская разработка, которую я делаю через DNN, будет в форме MODULE? Я создал несколько настраиваемых модулей (т. Е. Список продуктов), которые привязывались бы к базе данных позади кода и отображали данные из SQL. Это, кажется, очень тяжелый подход, если я должен создавать модули для каждой функциональности.

Есть ли лучший способ здесь? Могу ли я (рекомендуется ли) напрямую изменять страницы DNN для обеспечения такого типа функциональности?

ОБНОВЛЕНО

Можно ли сделать развитие без Moduels? то есть предоставить код прямо в текстовом редакторе html или что-то в этом роде. Если я создать новый модуль из шаблона DNN затем он добавляет много файлов .... поэтому он чувствует себя тяжелым

enter image description here

ответ

2

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

Основная точка расширяемости в DotNetNuke - это модуль. Модуль - это всего лишь некоторые исполняемые элементы управления, которые можно разместить на любой странице. Это не должно быть значительно тяжелее любого другого подхода. Независимо от того, что вы хотите сделать в самом DNN, вы должны иметь возможность делать это в модуле и просто размещать модуль на странице.

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

Если вы ищете что-то более простое, вы можете попробовать использовать модуль основных отчетов, что позволит вам стилизовать результаты запроса из базы данных (если вам не нужна интерактивность, которую предоставит модуль).

+0

Hey bdukes Спасибо за быстрый ответ. Вы сделали большой вывод о том, что не меняете код DNN, который имеет такой смысл. Вот мое замешательство. Я хочу создавать страницы продуктов, такие как ipad, iphnone и т. Д. Эти страницы будут иметь некоторые статические данные и некоторые финансовые данные, такие как цена, количество, доступность и т. Д. Для этого мне нужно создать разные модели для каждого продукта? Я могу сделать один большой динамический модуль, который может динамически меняться по форме и форме в зависимости от того, на какой странице продукта он включен? – Zeus

+0

@ hamilin11 имеет хорошую разбивку тех модулей, которые вам понадобятся. Я бы рекомендовал динамический модуль для публикации продуктов. – bdukes

2

Ваши хорошие варианты являются

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

  2. Покупки третья сторона электронная коммерция модуль набор как SmithCart и попытаться настроить его в соответствии с вашей бизнес-моделью

  3. сборки пользовательских модулей DNN

Наш текущий проект использует вариант # 3 , У нас есть 25 000 продуктов и около 3 000 списков товаров с большой функциональностью настройки клиента.

Хотя это может показаться тяжелым, как и отдельный проект модуля в разделе электронной коммерции, он не должен быть слишком сложным.

Пример Модули:

  • Товарное
  • продукта Детали
  • Корзина
  • заказ заказ (мы разделить это на 4-х модулей)
  • Модуль поиска Результаты
  • Поиск Модуль

Вы можете использовать URLRewrites для сопоставления всех ваших продуктов с одной и той же страницей/модулем DNN.

В результате у нас действительно очень мало страниц DNN без содержания.

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

+0

Hey Hamlin, Похоже, вы делаете именно то, что мы пытаемся сделать. Можете ли вы предоставить дополнительную информацию? Сколько модулей у вас есть, можете ли вы также посмотреть мой комментарий в ответе «bdukes» и предоставить дополнительную информацию там. Я также загрузил скриншот, который показывает образец модуля. Вкратце, мы пытаемся сделать сайт наподобие «ACER» http://us.acer.com/ac/en/US/content/home, где у вас есть куча продуктов, а также интегрированная корзина покупок. – Zeus

+0

У нас есть 40 модулей в целом, но большинство из-за очень специфических ограничений бизнес-модели. Вам действительно нужен только один модуль для всех продуктов, предполагая, что макет аналогичен всем продуктам. Я бы перенаправил пользователей на совершенно другой веб-сайт для мобильной версии. Пример: mobile.stackoverflow.com. Извините, я не могу быть более конкретным в это время - временные ограничения –

0

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

Например, вы можете посмотреть http://www.firstphera.com/GiftRegistry/Index.aspx, FirstPhera.com - это основное приложение и папка dnn. GiftRegistry - это чистое приложение asp.net, использующее провайдеры dnn для работы с базой данных. Пользовательская реализация регистрации и входа в систему была единственной вещью, которая была проблемой, а все остальное работало нормально.

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

Не обязательно создавать отдельный собранный модуль, как показано на снимке экрана. Если вы посмотрите на модуль блога, он имеет функцию, такую ​​как последние блоги, поисковый блог, архивы и т. Д., Все они реализованы в одном модуле.

Также возможно создать единый модуль со связанными функциями в dotnetnuke с использованием технологии ModuleDefinitions. Посмотрите http://lakhlaniprashant.blogspot.com/2010/04/dotnetnuke-what-is-module-definition.html.

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

Пожалуйста, сообщите, если у вас есть другие вопросы.

Смежные вопросы