Dot Net Nuke без разработки модуля? - PullRequest
3 голосов
/ 09 августа 2011

* Это больше вопрос уровня архитектуры.

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

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

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

ОБНОВЛЕНО

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

enter image description here

Ответы [ 3 ]

2 голосов
/ 09 августа 2011

Ваши хорошие варианты следующие

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

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

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

Наш текущий проект использует вариант № 3. У нас есть 25 000 продуктов и около 3000 списков продуктов с широкими возможностями настройки клиентов.

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

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

  • Список товаров
  • Подробнее ...
  • Корзина
  • Оформить заказ (мы разбили это на 4 модуля)
  • Модуль поиска
  • Модуль результатов поиска

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

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

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

2 голосов
/ 09 августа 2011

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

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

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

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

0 голосов
/ 10 августа 2011

Существуют способы использования существующих функций 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 , если вы хотите в деталях разобраться в разработке модуля, связанного с электронной торговлей.

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

...