【问题标题】:AngularJs 2 with ASP .NET 4.5.1带有 ASP .NET 4.5.1 的 AngularJs 2
【发布时间】:2016-06-29 16:25:49
【问题描述】:

我想将 Angular 2 用于现有 ASP.NET 4 应用程序的前端,即不是 MVC 6/ASP.NET CORE,我宁愿不使用 node,因为我们已经使用 nuget 作为我们的包经理。有谁知道任何可以指导我完成此任务的资源?

【问题讨论】:

  • 不要来 Stack Overflow 询问广泛的开放式“我该怎么做”风格的问题或要求某人为您提供一些非现场资源。 Stack Overflow 用于回答特定的可解决编程问题。
  • @mason 诚然,这个问题没有以特定方式表达(并且授予 OP 要求提供教程),但潜在问题是合法的,可以以更合法的方式表达(例如“我试过这样做,但我得到了构建错误”)。根本问题似乎是 ASP.NET MVC 4 / .NET 4.5 不能很好地与 Angular 2 配合使用,我很好奇为什么。谷歌似乎在 MVC 4 + Angular 2 + VS2015 上提供的东西不多。
  • @mason 您说 Angular 2 是一种客户端技术是正确的,但是 OP 正在询问 Angular 2 在 MVC 4 项目中使用 NuGet 而不是 NPM 的可操作性 - 可能与混合的 .NET 4.5 +核心参考,可能还有基于 Typescript 和 NuGet 的 Typescript Angular 2 定义支持。当然,这不是 OP 的问题,但不在可能性范围之外。
  • 我同意,我最初的问题太宽泛了。不过,我很高兴在这里解释我们最终是如何解决这个问题的,还是我应该提出一个新问题的共识?
  • @DanO'Leary 这个tutorial怎么样?

标签: asp.net node.js angular


【解决方案1】:

我关注了https://angular.io/docs/ts/latest/cookbook/visual-studio-2015.html 并遇到了一个问题,这只是为了帮助如果有人遇到同样的问题。

由于某种原因,我没有在新项目的 package.json 上获得恢复包选项,重新启动 Visual Studio 2015 专业再次带来了该选项。

我不得不将 systemjs.config.js 复制到项目文件夹中,否则它卡在 Loading ... 上,开发人员栏显示 systemjs.config.js 的 404 并且复制它会带来“我的第一个 Angular 帮助”。

【讨论】:

    【解决方案2】:

    我为 Angular 2.0 创建了一个启动项目,该项目刚刚使用 ASP.NET 4.5.2 在https://github.com/chanoto89/angular2-startup 上线。

    我使用了 http://blogs.msmvps.com/deborahk/angular-2-getting-started-with-a-visual-studio-2015-asp-net-4-x-project/ 大纲,但利用 MVC 和 gulp 将所需的依赖项移动到项目中,而不是使用 npm 安装的整个 node_modules。

    【讨论】:

    • 最佳实践是从 node_modules 区域将所需的依赖项拉到项目系统中,而不是包含该文件夹结构。
    【解决方案3】:

    他们用非核心场景更新了 Angular 网站:

    https://angular.io/docs/ts/latest/cookbook/visual-studio-2015.html

    【讨论】:

    • 在本教程的第 3 步中,除了教程告诉您要包​​含在项目中的文件之外,您还需要包含 systemjs.config.js。
    【解决方案4】:

    为了回答我最初的问题,这就是我们如何设法让 Angular 2 启动并在 .net 4.5.1 上运行(我们最终不得不使用 npm)。

    在_Layout.cshtml的头文件中,从cdn导入Angular 2文件并配置SystemJs。

    <!-- 1. Load libraries -->
    <!-- IE required polyfills, in this exact order -->
    <script src="../../node_modules/es6-shim/es6-shim.min.js"></script>
    <script src="../../node_modules/systemjs/dist/system-polyfills.js"></script>
    <script src="../../node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>
    
    <script src="../../node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="../../node_modules/systemjs/dist/system.src.js"></script>
    <script src="../../node_modules/rxjs/bundles/Rx.js"></script>
    <script src="../../node_modules/angular2/bundles/angular2.dev.js"></script>
    
    <!-- 2. Configure SystemJS -->
    <script>
      System.config({
        packages: {
            'my-app': {
            format: 'register',
            defaultExtension: 'js'
          }
        }
      });
        System.import('my-app/main')
            .then(null, console.error.bind(console));
    </script>
    

    在项目的路由中添加了 package.json 和 tsconfig.json

    packages.json:

    {
     "name": "angular2-quickstart",
     "version": "1.0.0",
     "scripts": {
      "tsc": "tsc",
      "tsc:w": "tsc -w",
      "typings": "typings",
      "postinstall": "typings install"
      },
     "license": "ISC",
     "dependencies": {
      "angular2": "2.0.0-beta.9",
      "systemjs": "0.19.24",
      "es6-promise": "^3.0.2",
      "es6-shim": "^0.35.0",
      "reflect-metadata": "0.1.2",
      "rxjs": "5.0.0-beta.2",
      "zone.js": "0.5.15"
     },
     "devDependencies": {
      "typescript": "^1.8.7",
      "typings": "^0.7.5"
      }
    }
    

    tsconfig.json:

    {
     "compileOnSave": true,
     "compilerOptions": {
     "target": "es5",
     "module": "system",
     "moduleResolution": "node",
     "sourceMap": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "removeComments": false,
     "noImplicitAny": false
    },
    "exclude": [
     "node_modules",
     "typings/main",
     "typings/main.d.ts"
     ]
    }
    

    如果你的机器上安装了 node 和 npm,它应该会自动下载你需要的 npm 模块,并将它们保存在 node_modules 文件夹中。您现在应该准备好设置 Angular 2 应用程序,我们使用 this 开始。

    【讨论】:

    • 你是如何最终让 Typescript 工作的?您使用的是 Visual Studio 2015、Typescript Tools for Visual Studio 2013 还是 npm Typescript 包?
    • 我们正在使用 Visual Studio 2015 和 Typescript Tools 1.8
    • 我只想指出文件应该命名为 package.json 而不是 packages.json
    • 我正在尝试使用 Visual Studio 2013 和 typescript 1.6。没有运气。请问有人有解决办法吗?
    • @Ashish 我建议您开始自己的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多