ASP.NET Core Интеграция с современными веб-фреймворками - PullRequest
0 голосов
/ 12 ноября 2018

Я ищу руководство в отношении следующих технологий и как лучше интегрировать / настраивать движущиеся задачи ...

У нас есть несколько существующих веб-приложений, использующих ядро ​​asp.net и asp.net. Мы хотим обновить и продвинуть их вперед, используя преимущества более современных фреймворков JavaScript vue / angular. В данный момент мы идем с vue, так как считаем, что это самый легкий прыжок, учитывая нашу текущую структуру, основанную на нокауте. Эти вопросы / проблемы схожи независимо от конкретной рассматриваемой структуры JavaScript

В настоящее время мы используем соответствующие инструменты среды cli, создаем проект / решение, затем копируем ClientApp в папку с тем же именем в vs.net (затем обновляем файл startup.cs) для интеграции с технологией hmr.

  1. Соображения ... лучше ли переходить к полному подходу типа spa и полностью отойти от кодирования на уровне страниц? Хотя это может быть лучше для обучения, нам нужны способы переноса существующих приложений без полного переписывания. Могут ли эти два подхода легко жить в одном и том же решении (в данный момент мы мигрируем в vue). Есть ли в git-репозиториях такой комбинированный подход? Я считаю, что лучший ответ - это комбинация. Одно решение, где маршруты могут использовать историческую маршрутизацию mvc к контроллеру / методу и просмотру, в то время как другие могут вместе направлять на отдельные страницы spa Я еще не нашел хранилище, которое демонстрирует эту комбинацию. Потенциально, есть веская причина, по которой его трудно найти.

  2. Что касается vue.js, мы изменили Startup.cs, чтобы использовать vue cli 3 vue-cli-service для сервера нашей страницы

    app.UseSpa(spa => {    spa.Options.SourcePath = "ClientApp";    
    if (env.IsDevelopment())
    {
        //spa.UseReactDevelopmentServer(npmScript: "start");    
        // run npm process with client app
        spa.UseVueCli(npmScript: "serve", port: 8080);
        // if you just prefer to proxy requests from client app, use proxy to SPA dev server instead,
        // app should be already running before starting a .NET client:
        // spa.UseProxyToSpaDevelopmentServer("http://localhost:8080"); // your Vue app port
    }    });
    

Я также видел решения, в которых они изменили автозагрузку для непосредственного использования app.UseWebpackDevMiddleware и указали на cli-service / webpack.config.js

 app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
            {
                HotModuleReplacement = true,
                ConfigFile = Path.Combine(env.ContentRootPath, @"node_modules\@vue\cli-service\webpack.config.js")
            });

Оба подхода здесь могут работать нормально, но я задаюсь вопросом, какой из них мы должны установить как лучший подход. По сути, я чувствую, что, вероятно, лучше остаться с # 1, так как он больше всего соответствует документации vue cli, где использование UseWebpackDevMiddleware может просто добавить больше путаницы к миксу.

...