Как я могу создать основу для быстрого создания похожих, но разных сайтов? - PullRequest
2 голосов
/ 24 сентября 2008

Мне нужно создать множество сайтов, которые очень похожи, но не совсем одинаковы, используя ASP.NET 2.0.

Я пытаюсь найти лучший способ сделать эти сайты быстрыми и легкими.

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

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

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

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

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

Как я могу улучшить этот дизайн?

Основным препятствием является то, что сайты похожи, но достаточно разные.

Спасибо!

Alex

Ответы [ 4 ]

1 голос
/ 24 сентября 2008

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

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

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

1 голос
/ 24 сентября 2008

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

0 голосов
/ 06 февраля 2009

Как насчет использования Application Framework, такого как DotNetNuke или mojoportal? Они оба обеспечивают гибкость и позволяют очень быстро разрабатывать веб-сайты с общей функциональностью. Оставляя вас для разработки пользовательских модулей, где требуемая функциональность может отличаться. Также можно купить тысячи других модулей, которые обеспечивают отличную функциональность.

Однако мы решили использовать WCSF и усовершенствовали его.
Все вышеупомянутые проекты с открытым исходным кодом и несколько хороших примеров кода для изучения.

Я знаю, что это может быть поздний ответ, но я надеюсь, что это поможет

0 голосов
/ 25 сентября 2008

Посмотрели ли вы Monorail (www.castleproject.org), это реализация шаблона vvv, похожая на Ruby на рельсах с несколькими хорошими механизмами просмотра, я предпочитаю Nvelocity. Также из проекта замка вы можете использовать реализацию ActiveRecord, которая делает жизнь по-настоящему приятной. Если вы находитесь на этом пути, посмотрите также скринкасты с Крам Рамсей.

Если честно, все решения MS очень жирные Еще одна замечательная особенность Castleproject - это то, что он полностью открыт, поэтому вы можете изучать нагрузки из их кода

...