【问题标题】:Phased migration - running ASP.NET 4 alongside ASP.NET 5分阶段迁移 - 与 ASP.NET 5 一起运行 ASP.NET 4
【发布时间】:2017-02-18 17:11:05
【问题描述】:

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

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

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

  • 创建一个新的 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 项目,然后使用构建后事件将您的新旧工件复制到第三个原版项目中。这样,新旧项目相互隔离,仅在部署时合并
  • 将 UI 项目中使用的 Helpers、Utilities、Attributes 等问题分离到传统的类库项目中,并且只保留 UI (ASP.NET) 中的最低限度(视图、控制器、脚本、css 等) 5) 项目

任何想法将不胜感激。

【问题讨论】:

    标签: asp.net-mvc asp.net-core asp.net-core-mvc dnx50


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-01-04
      • 1970-01-01
      • 2016-02-25
      • 2019-09-01
      • 2015-11-29
      • 2017-04-11
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多