Как я могу структурировать проект ASP.NET для повторного использования

StackOverflow https://stackoverflow.com/questions/4233302

  •  26-09-2019
  •  | 
  •  

Вопрос

Я нахожусь в процессе разработки веб-приложения, который будет иметь несколько установочных модулей, которые обеспечивают различные функциональные возможности. Здесь есть много общих вещей, и у меня есть 3 библиотеки классов C #, которые я знаю, будет легко в использовании на разных проектах.

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

Как вы, ребята, структурируете проекты вашего сайта, чтобы страницы могли быть повторно использованы в нескольких проектах? До сих пор единственное решение, которое я придумал, это создать репозиторий в SVN и имел его ссыловаться в svn:externals Свойства основного проекта. Это позволяет мне добавлять страницы в этот каталог, который распространен для всех сайтов, и я знаю, что смогу использовать это, чтобы проверить их в другие проекты. Тем не менее, я чувствую, что это немного неуместно и приведет к проблемам при создании новых проектов (там будет несколько шагов для создания нового решения, гарантируя, что правильные внешности находятся).

Есть ли лучшее решение? Как вы хотите поделиться обычными файлами ASPX в нескольких клиентских проектах? Как вы управляете изменениями против них?

Заранее спасибо!

РЕДАКТИРОВАТЬ:

Большое спасибо Дэвиду за его ответ. У меня больше подумала об этом и подумала, что я перечислю некоторые из моих более конкретных идей / проблем. Во-первых, немного больше о проекте (ы). В первую очередь это CMS. Однако у нас также есть клиенты, которые захотят CRM, и есть также клиенты, которые не хотят ни и хотят целую индивидуальную систему с нуля.

В моем первоначальном посте выше, я говорил о подкаталогах главного рута (например, cms), с использованием svn:externals Чтобы обеспечить легкое повторное разделение веб-страниц в нескольких проектах. Я начинаю думать, что это единственный способ сделать это. Одна вещь, которая беспокоила меня, было, если URL клиента был:

http://www.shotgunanddribble.com/cms/content.aspx

Тем не менее, я думаю, что могу использовать Application_BeginRequest смягчить ужасные URL, переписав их в соответствии с конфигурацией сайта клиента. Например, если бы клиент был просто CMS, я мог бы переписать свой верхний домен /cms/. Отказ То же самое, если бы они были CRM. Если бы они были оба:

http://www.shotgunanddribble.com/ -> /cms/

http://crm.shotgunanddribble.com/ -> /crm/

Есть ли недостаток, чтобы использовать эти виды переписывания? Я думаю, что, если у кого-то еще нет никаких волшебных идей, svn:externals моя единственная надежда.

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top