ASP.NET核心角度模板:app.module.client与app.module.server

时间:2017-06-14 17:36:49

标签: asp.net angular asp.net-mvc-4 typescript single-page-application

Microsoft提供了一个很棒的模板,用于在ASP.NET Core中开发Angular(而不是AngularJS),如他们的文章" Building Single Page Applications on ASP.NET Core with JavaScriptServices"中所述。

虽然它非常简单,但模板中有一部分让我措手不及:而不仅仅是app.module.ts文件,还有app.module.client.ts和{ {1}}。

screenshot of <code>app.module.client.ts</code> and <code>app.module.server.ts</code>

我在网上找不到任何可以解释这一点的内容。有没有人知道为什么app模块有这两个单独的文件,它们的具体用途是什么,如何使用它们等等?

如果它有帮助,这就是完整模板的样子:

full ASP.NET Core Angular template

我应该注意app.module.server.tsClientApp/app/models是我为自己的目的添加的两个文件夹;它们不是模板的一部分。此外,ClientApp/app/services实际上非常简单,只是防止必须编写两次代码,所以不用担心。

以下是两个文件的外观:

<code>app.module.client.ts</code> and <code>app.module.server.ts</code> code side-by-side

1 个答案:

答案 0 :(得分:4)

首先让我先说明我对此陈述的准确性不是100%,但由于其他人似乎没有回答,我会给它一个机会。

使用Angular 2的Microsoft SPA使用Angular Universal进行AOT渲染。它现在已升级为使用Angular 4,它不使用Angular Universal。我的想法是,它将app.module.ts分解为客户端和服务器文件,以帮助进行AOT渲染。

app.module.shared.ts文件实际上只是app.module.client.ts和app.module.server.ts使用的全局常量。因为在发布期间它们都被渲染成了几个js文件,所以它们拆分app.module文件并不重要。