Поэтапная миграция - запуск ASP.NET 4 вместе с ASP.NET 5

У нас есть веб-приложения MVC ASP.NET, написанные в области ASP.NET 4.*, которые мы хотели бы перейти на ASP.NET 5. Во время перехода (а также клиентские скрипты / библиотеки JavaScript, CSS и т. Д.) Нам бы хотелось, чтобы старое приложение (которое, очевидно, содержит Views, Controllers, Helpers, Utilities, Attributes и т. д.) сосуществовало в проекте MVC/Web-приложения ASP.NET 5 с новой (ASP.NET 5) кодовой базой.,

Во-первых, возможно ли это с минимальными изменениями? Я проводил некоторое тестирование и много читал - для библиотек на стороне клиента я смог бы справиться с сосуществованием, скопировав существующий контент в область wwwroot через Gulp. Мой вопрос в основном касается серверных артефактов - например, я использую фреймворк (как указано в project.json) "dnx46" (который представляется наиболее подходящим для этой цели), но я получаю ряд конфликты (вокруг отсутствующих сборок) вокруг простых вещей, таких как ссылки на Project, ActionFilterAttribute & AuthorizeAttribute [например. Тип или имя пространства имен "AuthorizeAttribute" не существует в пространстве имен "System.Web.Mvc" (вам не хватает ссылки на сборку?)] (Потому что они больше не существуют в пространстве имен System.Web.Mvc), HttpContextBase, безопасность (OWIN и т. Д.) И т. Д. - обратите внимание, что мне известно о включении ссылок, которые отражены в файле project.json (и некоторых, которые заканчиваются в соответствующей папке 'wrap')

Если есть предпочтительный подход - некоторые возможности

  • создайте новый проект WebApplication ASP.NET 5, который помимо прочего содержит готовые к работе Bower, npm, Gulp, CodeFirst Migrations, Controller/Views и т. д., а затем скопируйте свои устаревшие артефакты проекта в
  • создайте пустой проект ASP.NET 5 и запустите все с нуля (согласно http://aspnetmvc.readthedocs.org/projects/mvc/en/latest/migration/migratingfrommvc5.html), а затем снова скопируйте устаревшие артефакты проекта в
  • создайте новый проект ASP.NET 5 для WebApplication, а затем с событием после сборки скопируйте ваши новые и устаревшие артефакты в третий ванильный проект. Таким образом, старый и новый проекты живут изолированно и объединяются только во время развертывания.
  • отдельные задачи, такие как Helpers, Utilities, Attributes и т. д., которые используются в проекте пользовательского интерфейса в традиционном проекте библиотеки классов и сохраняют только минимальный уровень (Views, Controller, scripts, css и т. д.) в проекте UI (ASP.NET 5)

Любые идеи очень приветствуются.

1 ответ

Я не знаю, как устроен ваш проект MVC 4, я бы предпочел создать его с нуля, используя пустой шаблон ASP.NET 5 для dnx451. То, что я не понимаю, это предыдущие вещи.NET, такие как атрибут Authorize, не найдены, поскольку они доступны, и я использую его. Вот некоторые вещи, которые могут вам помочь при миграции:-

  1. Ваш EF Context и классы безопасности должны рассматриваться как промежуточное программное обеспечение в ASP.NET 5 и должны быть настроены в классе Startup.cs, который отсутствует в MVC 4.
  2. Поместите все свои файлы CSS\JS в wwwroot и сделайте ссылку _Layout.cshtml как root как обычно (используйте gulp Task Runner для повышения производительности.)
  3. Должен предназначаться для dnx451, потому что dnx50 не содержит всех библиотек, и это примерно в ASP.NET Core RC2 и RTM. (Если вы не можете ждать RC 2).
  4. Если вы используете Identity for Authorization, обратите внимание, что теперь в политике авторизации произошли большие изменения, которые можно найти здесь.

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

Другие вопросы по тегам