2014-01-07 3 views
1

у меня есть общее «ядро» для всех моих проектов в MVC 4, который содержит стили связки, скрипты, пользователи системы управления (точно настроены на мои потребности) и т.д.ASP MVC 4 Split в нескольких проектах

Я хотел бы использовать это как «Шаблон» для всех моих новых проектов, но в то же время я хочу, чтобы он обновлялся во всех проектах.

Итак, представьте, что у меня есть 5 проектов, и я использую Bootstrap 2, теперь вышел Bootstrap 3, и я хочу просто обновить его в своем базовом проекте («ядро») и увидеть это изменение во всех проектах, которые были используй это.

Как это сделать?

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

+0

См. [Совместное использование просмотров, css, javascript между несколькими asp.net mvc 3 projects] (http://stackoverflow.com/questions/15506811/sharing-views-css-javascript-between-multiple-asp-net-mvc -3-проекты), [Совместное использование представлений между проектами веб-приложений ASP.NET MVC 3] (http://stackoverflow.com/questions/6430571/sharing-views-between-asp-net-mvc-3-web-application- проекты), [MVC4 хостинг просмотров из другого проекта MVC] (http://stackoverflow.com/questions/16241039/mvc4-hosting-views-from-other-mvc-project) или просто поиск в Интернете для «asp.net mvc совместный проект ". – CodeCaster

ответ

2

Создайте собственный репозиторий nuget и поместите там обычные биты. Пакеты Nuget не обязательно должны быть * .dll, они могут содержать любые файлы и скрипты powershell. Обновление пакета может означать обновление ~/Views/Shared/_Layout.cshtml.

Если вы создаете много новых проектов с одинаковой структурой, вы можете создать собственный шаблон проекта Visual Studio.

Я бы не зашел слишком далеко, пытаясь получить «обновление одной DLL, чтобы перейти от начальной загрузки 2 к 3», потому что вы не можете предсказать, как изменится код/​​разметка внешних библиотек (например, классы css от icon* до glyphicon*). Вам нужно будет создать HtmlHelpers для всех компонентов Bootstrap, чтобы предотвратить их разрыв со следующей версией.

2

Вместо 5 отдельных проектов у вас может быть только один с несколькими областями (в том числе один для вашего «ядра»). Таким образом, будет намного проще повторно использовать функциональность из вашей «явной» области и в то же время поддерживать только один экземпляр . Больше по областям: Walkthrough: Organizing an ASP.NET MVC Application using Areas.

В качестве альтернативы возьмите добычу на отметке this, где автор упоминает MVCContrib Portable areas как возможное решение.

Надеюсь, это поможет.

+0

Спасибо, но ... У меня разные партнеры в каждом проекте, что я не хочу делиться с ними остальным кодом (только ядром) ... и каждый проект очень отличается ... так что я бы как это сделать, возможно ли это? –

+1

@ VicençGascó Возможно, тогда жизнеспособным решением для вас может стать пакет NuGet из проекта «ядро». Таким образом, сотрудники могут просто обновлять пакет всякий раз, когда вы вносите изменения (вы можете разместить пакет в своем собственном репозитории пакетов NuGet, если вы не хотите публиковать его). Другой вариант (из связанного вопроса SO) заключается в использовании [MVCContrib Portable областей] (http://lostechies.com/erichexter/2009/11/01/asp-net-mvc-portable-areas-via-mvccontrib/). – volpav

Смежные вопросы