При разрабатывании проектов ASP.NET существует определенное количество шаблона или инфраструктура, которая должна быть сделана, который часто идентичен через проекты. Это в особенности имеет место с MVC и подходами ALT.NET. [Я думаю о вещах, таких как: МОК, ORM, структура Решения (проекты), управление сеансами, Управление пользователями, I18n и т.д.]
Я хотел бы знать то, что приближается, Вы находите лучше всего для 'многократного использования' этой инфраструктуры через проекты?
Я определенно (в основном!) Выбираю шаблоны T4 в сочетании с модифицированной версией SubSonic 3. Я как бы использую базу данных для моделирования своего домена, а затем использую шаблоны T4 для создания модели и связанных контроллеров и представлений. Это отнимает около 50-60% усилий и сохраняет последовательность.
Затем я работаю над переопределениями (частичными) классов вместе с фильтрами и методами расширения, чтобы «создать приложение». Теперь, когда я знаком с окружающей средой и тем, что я делаю, я могу получить базовую модель с хорошей сантехникой за очень короткое время. Что еще более важно, поскольку я создаю набор файлов частичного класса, я могу регенерировать все, что захочу, не теряя ни одного из моих «пользовательских» кодов.
У меня все равно работает :)
Я создаю новый проект с помощью мастера нового проекта, чтобы получить уникальные идентификаторы GUID проекта. . Затем я бы использовал «Добавить существующий элемент», чтобы скопировать элементы из похожих проектов, если это имело смысл.
Иногда я использую инструмент сравнения файлов для копирования ссылок из одного проекта в другой, в противном случае я просто добавляю ссылки вручную. Инструмент сравнения файлов также можно использовать для включения похожих исходных файлов, но базовые файлы все равно нужно скопировать, поэтому я предпочитаю «Добавить существующий элемент».
Я использовал T4 для создания файлов решений и проектов, но это определенно кажется крайним случаем, а не тем, что обычно было бы необходимо. В этом случае я бы, вероятно, обернул T4 в сценарий, подобный PowerShell, для создания и заполнения остальной структуры каталогов.
Я довольно агрессивно использую «разделяемые библиотеки» в целом, но не специально из-за этого сценария.
В общем, я нечасто использую сантехнику между проектами. Вероятно, гораздо чаще я взламываю один «прототип» проекта, а затем отказываюсь от него и перестраиваю проект с нуля, следуя описанному выше подходу, и привожу только «не-хакерский» код.
Я создаю шаблон приложения MVC2 по адресу http://erictopia.com . Он будет содержать все основные элементы, которые, по моему мнению, должны быть в проекте MVC. К ним относятся спецификации BDD, ORM (NHibernate и, возможно, Lightspeed), шаблоны T4, настраиваемые провайдеры, поддержка ELMAH, минификатор CSS / Javascript и т. Д.
Для безумно быстрой настройки MVC сайта, Я использую модифицированные шаблоны T4 (созданные с помощью T4 Editor) и с большой помощью блогов Олега Сыча для генерации страниц (для ваших типичных страниц добавления/редактирования/индексации) в сочетании с потрясающей реализацией автоматического создания-обновления-удаления под названием MVCCrud (если вы предпочитаете метод доступа к данным LINQ-to-LQL). delete под названием MVCCrud (если LINQ-to-SQL - ваш предпочтительный метод доступа к данным)
Используя модифицированные шаблоны T4 и MVCCrud, вы можете создать полностью функциональные сущности (Create/Edit/List/Delete) с обработкой ошибок и интуитивно понятными сообщениями об ошибках примерно за 4 минуты для каждой.
Вы можете сделать это в бородатом, футболке, гибком стиле, создать красивый шаблон и поместить его в систему управления исходным кодом. Итак, когда вам нужен новый проект, вы просто проверяете шаблон?