Visual Studio: Какой подход вы используете для «шаблона» сантехники для подобных проектов? - PullRequest
6 голосов
/ 31 марта 2010

При создании проектов ASP.NET требуется определенное количество шаблонов, или трубопроводов, которые необходимо выполнить, что часто одинаково для разных проектов. Это особенно касается подходов MVC и ALT.NET. , [Я думаю о таких вещах, как: IoC, ORM, структура решения (проекты), управление сессиями, управление пользователями, I18n и т. Д.]

Я хотел бы знать, какой подход вы считаете наиболее подходящим для повторного использования этой сантехники в разных проектах?

  • У вас есть «мастер-решение», которое вы дублируете и как-то переименовываете? (Я использую это до некоторой степени, но это довольно грязно. Было бы интересно, как люди делают это «лучше» «)
  • В основном полагаться на проекты общей библиотеки? (я считаю, что это подходит для некоторых вещей, но слишком ограничивает для вещей, которые должны быть настроены)
  • Инструменты генерации кода, такие как T4? (Аналогично подходу, используемому SharpArchitecture - сам не пробовал)
  • Что-то еще?

Ответы [ 6 ]

5 голосов
/ 04 апреля 2010

Visual Studio поддерживает Пользовательские шаблоны .

3 голосов
/ 01 апреля 2010

Я определенно (в основном!) Использую шаблоны T4 в сочетании с модифицированной версией SubSonic 3. Я использую базу данных для моделирования своего домена, а затем использую T4 шаблоны для генерации модели и связанных контроллеров и представлений. Это занимает около 50-60% усилий и сохраняет последовательность на месте.

Затем я работаю над переопределениями (частями) классов вместе с фильтрами и методами расширения, чтобы «сделать приложение». Теперь, когда я знаком с окружающей средой и тем, что я делаю, у меня может быть базовая модель с хорошей сантехникой на месте за очень короткое время. Что еще более важно, поскольку я создаю набор файлов частичных классов, я могу восстановить все, что захочу, не теряя своего «пользовательского» кода.

у меня все равно работает :)

2 голосов
/ 10 апреля 2010

Для безумно быстрой настройки сайта MVC я использую модифицированные шаблоны T4 (созданные с помощью T4 Editor ) и с ОДНОЙ помощью из блогов Олега Сыча для генерации страниц (для вашего типичного дополнения) / edit / index pages) в сочетании с потрясающей реализацией автоматического создания-обновления-удаления с именем MVCCrud (если LINQ-to-SQL - ваш предпочтительный метод доступа к данным)

Используя модифицированные шаблоны T4 и MVCCrud, вы можете создавать полнофункциональные объекты (Create / Edit / List / Delete) с обработкой ошибок и интуитивно понятными сообщениями об ошибках примерно за 4 минуты для каждого.

2 голосов
/ 09 апреля 2010

Вы можете сделать это в стиле бородатых, футболок, проворных, создать красивый шаблон и поместить его в sourcecontrol. Поэтому, когда вам нужен новый проект, вы просто извлекаете шаблон?

1 голос
/ 07 апреля 2010

Я создаю шаблон приложения MVC2 на http://erictopia.com. Он будет содержать все основные элементы, которые, я думаю, должны быть в проекте MVC. К ним относятся спецификации BDD, ORM (NHibernate и, возможно, Lightspeed), шаблоны T4, настраиваемые поставщики, поддержка ELMAH, ограничитель CSS / Javascript и т. Д.

1 голос
/ 31 марта 2010

Я создаю новый проект с помощью мастера новых проектов, чтобы мне были назначены уникальные GUID проекта. Тогда я бы использовал «Добавить существующий элемент» для копирования элементов из похожих проектов, если это имело смысл.

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

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

Я использую «разделяемые библиотеки» довольно агрессивно в целом, но не специально из-за этого сценария.

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

...