是否可以将 MVC“.Net framework 4.5”应用程序迁移到 "ASP.NET MVC CORE"。如果是那么如何?

Is it possible to Migrate MVC ".Net framework 4.5" application to "ASP.NET MVC CORE". If yes then how?

我在 visual studio 2015 年有一个使用 .Net 框架 4.5 构建的现有 MVC Web 应用程序。现在我想要的是将此应用程序迁移到新框架,即 ASP.NET MVC CORE 使用 visual studio 2015 没有安装任何其他框架工具或东西。

是的,这是可能的。

1) 创建一个新的空 ASP.NET Core web 应用程序,名称与之前的项目相同。所以命名空间将匹配。

2) 安装 Microsoft.AspNetCore.MvcMicrosoft.AspNetCore.StaticFiles NuGet 包。 ASP.NET 运行时是模块化的,您必须明确选择提供静态文件

3) 打开 .csproj 文件并添加一个 PrepareForPublish 目标: 例如

  <Exec Command="bower install" />
</Target>

4) 打开 Startup.cs 文件并更改代码以匹配以下内容:

namespace WebApp1
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }
}

5) 添加控制器 folder.Then 将名称为 HomeController.cs 的 MVC 控制器 class 添加到控制器文件夹。

  • 添加 Views 文件夹。
  • 添加 Views/Home 文件夹。
  • 将 Index.cshtml、MVC 视图页面添加到 Views/Home 文件夹。

对于中间测试,请执行以下操作

将 Views/Home/Index.cshtml 文件的内容替换为以下内容:

<h1>Hello world!</h1>

6) 从 ASP.NET MVC 项目迁移功能。我们需要移动以下内容:

  • 客户端内容(CSS、字体和脚本)
  • 控制器
  • 观看次数
  • 型号
  • 捆绑
  • 过滤器
  • 日志in/out、身份

7) 将每个方法从 ASP.NET MVC OldController 复制到 NewController

8) 将 About.cshtml、Contact.cshtml 和 Index.cshtml Razor 视图文件从 ASP.NET MVC 项目复制到 ASP.NET 核心项目。

9) 运行 ASP.NET 核心应用程序并测试每个方法。

10) 对于静态内容将名为 bower.json 的 Bower 配置文件添加到项目根目录(右键单击项目,然后添加 > 新项目 > Bower 配置文件)。将 Bootstrap 和 jQuery 添加到文件

11) 将旧 MVC 项目中的 favicon.ico 文件复制到 ASP.NET Core 项目中的 wwwroot 文件夹中。

12) 将 _ViewStart.cshtml 文件从旧 ASP.NET MVC 项目的 Views 文件夹复制到 ASP.NET Core 项目的 Views 文件夹中。 _ViewStart.cshtml 文件在 ASP.NET 核心 MVC 中没有改变。

13) 创建一个 Views/Shared 文件夹。

14) 将旧 ASP.NET MVC 项目的 Views/Shared 文件夹中的 _Layout.cshtml 文件复制到 ASP.NET 核心项目的 Views/Shared 文件夹中。

15) 更改 razor view 上的一些旧功能,如以下新闻

  • <link> 元素替换 @Styles.Render("~/Content/css") 加载 bootstrap.css
  • 删除@Scripts.Render("~/bundles/modernizr")。 注释掉 @Html.Partial("_LoginPartial") 行(将 符合 @*...*@).
  • <script> 替换 @Scripts.Render("~/bundles/jquery") 元素。
  • @Scripts.Render("~/bundles/bootstrap")替换为 <script> 元素。