Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何升级AngularJs应用程序_Javascript_Angularjs_Migration_Upgrade - Fatal编程技术网

Javascript 如何升级AngularJs应用程序

Javascript 如何升级AngularJs应用程序,javascript,angularjs,migration,upgrade,Javascript,Angularjs,Migration,Upgrade,我有一个旧的大规模应用程序,我假设支持。它是一个AngularJs前端,调用.NETMVC后端进行额外处理。就试图使这个应用程序现代化而言,我甚至不知道从哪里开始。代码有一定的组织结构,但多年来,大部分代码要么是意大利面编码,要么是软件熵膨胀(在前端和后端),代码中到处都是业务规则 目前,我们正在评估将前端升级到最新的Angular版本的努力,这看起来需要几个月才能完成。我们已经考虑过使用分级的方法来尝试单独地升级每个指令或组件,但是对我来说,这感觉就像猪的口红。另一种选择是从一个新的基线开始,

我有一个旧的大规模应用程序,我假设支持。它是一个AngularJs前端,调用.NETMVC后端进行额外处理。就试图使这个应用程序现代化而言,我甚至不知道从哪里开始。代码有一定的组织结构,但多年来,大部分代码要么是意大利面编码,要么是软件熵膨胀(在前端和后端),代码中到处都是业务规则

目前,我们正在评估将前端升级到最新的Angular版本的努力,这看起来需要几个月才能完成。我们已经考虑过使用分级的方法来尝试单独地升级每个指令或组件,但是对我来说,这感觉就像猪的口红。另一种选择是从一个新的基线开始,并在迁移过程中尝试使两者共存


是否有人有过升级现有AngularJs的良好经验,并愿意分享他们的方法?

您可以从迁移到AngularJs的typescript版本开始。这是一个很好的库,其中包含TS decorators(),与angular+中的类似

另外,您可以尝试将状态逻辑重写为ng redux()。它将帮助您将来迁移到ngrx


这种改变可以一步一步地进行,不会影响项目。

这是AngularJS应用程序的常见问题。现代化项目通常需要完全重写,因为新的AngularJS元素与AngularJS不兼容。但迁移的持续时间取决于应用程序的大小。中型和大型系统需要更多的升级工作,预计需要几个月的时间

迁移方法必须基于系统结构、最终目标和所需的技术堆栈。总的来说,我将区分以下几种方法:

  • 与ngUpgrade的混合允许您同时运行两个框架。ngUpgrade允许AngularJS和AngularJS共存并协同工作,而不会中断应用程序
  • 角度元素允许您将角度组件转换为浏览器本机理解的自定义元素
  • 重写。有时这是一个适当的解决方案。从零开始,您可以重新设计应用程序(如果需要,甚至可以重新构建),并扩展功能

在我看来,混合方法是最有效、最无痛的迁移方式。最近,我们完成了从AngularJS到Angular9的迁移,没有任何停机时间。我们所做的是制定一个周密规划的有效战略。你可以从中学习。

我感受到了你的痛苦。