0

我们有在 ASP.NET 4.* 范围内编写的 MVC ASP.NET Web 应用程序,我们希望逐步过渡到 ASP.NET 5。当我们过渡时(以及客户端 JavaScript 脚本/库、CSS 等)我们希望旧应用程序(显然包含视图、控制器、帮助程序、实用程序、属性等)与新的 (ASP.NET 5) 代码库共存于 MVC/Web-Application ASP.NET 5 项目中.

首先,这可以通过最小的变化来实现吗?我一直在做一些测试和大量阅读——对于客户端库,我应该能够通过 Gulp 将现有内容复制到 wwwroot 区域来处理共存。我的问题主要是关于服务器端工件 - 例如,我正在使用“dnx46”(这似乎是最适合此目的)的框架(如 project.json 中指定),但我得到了一些围绕项目引用、ActionFilterAttribute 和 AuthorizeAttribute 等简单事物的冲突(围绕缺少的程序集)[例如。命名空间“System.Web.Mvc”中不存在类型或命名空间名称“AuthorizeAttribute”(您是否缺少程序集引用?)](因为它们不再存在于 System.Web.Mvc 命名空间中)、HttpContextBase、

如果有首选方法 - 一些可能性是

  • 创建一个新的 WebApplication ASP.NET 5 项目,其中包含开箱即用的 Bower、npm、Gulp、CodeFirst 迁移、控制器/视图等,然后将您的遗留项目工件复制到
  • 创建一个空白的 ASP.NET 5 项目并从头开始一切(根据http://aspnetmvc.readthedocs.org/projects/mvc/en/latest/migration/migratingfrommvc5.html)然后再次将您的旧项目工件复制到
  • 创建一个新的 WebApplication ASP.NET 5 项目,然后使用构建后事件将您的新旧工件复制到第三个 vanilla 项目中。这样,新旧项目相互隔离,仅在部署时合并
  • 将 UI 项目中使用的 Helpers、Utilities、Attributes 等单独的关注点放入传统的类库项目中,并且只保留 UI (ASP.NET 5) 项目中的最低限度(视图、控制器、脚本、css 等)

任何想法将不胜感激。

4

1 回答 1

1

我不知道您的 MVC 4 项目的结构如何,我更愿意使用针对 dnx451 的空白 ASP.NET 5 模板从头开始创建它。我不明白的是以前的 .NET 东西(如Authorize属性)没有找到,因为它们可用并且我正在使用它。以下是一些在迁移时可能对您有所帮助的东西:-

  1. 您的 EF 上下文和安全类应被视为 ASP.NET 5 中的中间件,并应在 MVC 4 中找不到的Startup.cs类中进行配置。
  2. 将所有 CSS\JS 文件放在 wwwroot 中,并像往常一样以 root 身份引用_Layout.cshtml(使用 gulp 任务运行器以获得更好的性能。)
  3. 必须以dnx451为目标,因为dnx50不包含所有库,并且它在 ASP.NET Core RC2 和 RTM 中非常有用。(如果你等不及 RC 2)。
  4. 如果您使用身份进行授权,请注意授权策略现在有很大的变化,可以在此处找到

这有点困难,但它将优化您的团队工作并使您的项目流程比以前更快。

于 2016-04-15T19:38:04.497 回答