【问题标题】:Angular + ASP.Net Core : Plugin ArchitectureAngular + ASP.Net Core:插件架构
【发布时间】:2018-02-09 09:41:02
【问题描述】:

我正在尝试构建一个企业系统,该系统会随着时间的推移而发展,并会随着时间的推移而添加功能。

我计划使用带有 Angular 的 ASP.Net Core 微服务架构作为 UI。我找不到一个示例来展示我们如何在不更改任何现有角度代码的情况下引入新模块。

我能够使用 MEF 等技术在传统的 winforms 应用程序中执行此操作,并将 dll 放入 shell 监视和加载的文件夹中。

看起来没有使用 Angular 框架的此类示例。所以我很好奇它是否有可能实现如下所示的架构?

Module 是 asp.net 核心服务,为 shell 可以渲染的角度文件提供服务,Service 是应用程序本身使用的逻辑服务。

我确实看到了this post,这与我想要做的很接近,但我不确定这是否是正在讨论的正确解决方案。

任何指针表示赞赏。

【问题讨论】:

  • ASP.NET Core 模块发生在 Angular shell 中?我不确定这是否有意义。
  • @MathieuRenda:是的,他们的 UI 部分适用于通过 Angular Shell 呈现的模块

标签: asp.net angular asp.net-core architecture


【解决方案1】:

我尝试使用 ABP、Angular 和 ASP.NET Core 实现插件架构:https://github.com/chanjunweimy/abp_plugin_with_ui

基本上,我使用不同的角度应用程序开发了角度插件,然后我将它们动态地添加在一起。

关于我如何实现它的更多信息:

我有 2 个 angular-cli 应用程序,1 个是主要的 angular cli 应用程序,另一个是插件 angular cli 应用程序。我们在 Angular-cli 插件架构方法中面临的问题是我们如何集成它们。

现在,我所做的是,我在两个应用程序上运行 ng-build,并将它们放入“wwwroot”文件夹,然后托管在 ASP.NET core 2.0 服务器中。

abp_plugin_with_ui 是一个用于开发包含后端和 Angular cli 的插件的存储库。对于后端,我使用了 aspnetboilerplate 框架,前端是使用多个 angular-cli 应用程序开发的。

要使主应用程序与插件应用程序集成,我们必须在两个应用程序上运行“ng-build”(注意我们也必须更改为插件应用程序的href),然后我们移动构建插件 Angular cli 应用程序的内容,到主应用程序“wwwroot”文件夹。完成所有这些之后,我们可以运行“dotnet run”来为 ASP.NET Core 2.0 Web 应用程序提供服务,以托管“ng build”生成的静态文件。在这种方法中,插件 Angular UI 应用程序独立于主 Angular UI 应用程序:它们使用 IFrame 连接。

最近,我意识到我们可以动态创建组件,这意味着下载“NgModule”并动态创建该模块可能会更好。此选项更好,因为插件 UI 将直接集成到主应用程序 UI 中。我还在尝试这个方法。

@bruno 建议的另一个选择是改为在 SOA 中开发 UI。这意味着,我们可以选择不将 UI 拆分为插件,而是将它们拆分为模块作为独立服务。您需要有一个所谓的“IT/Ops 客户端”,它可以帮助您管理要在 UI 中显示的视图,而主 UI 只是一个框架/模板,它将显示“IT/Ops 客户端”想要显示的内容.使用这种方式,我们可以注册这些服务,并选择要使用的服务。这是微服务架构,可能不符合您的要求。微服务专家 Udi Dahan 有一篇关于此的博文(链接:http://udidahan.com/2014/07/30/service-oriented-composition-with-video/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 2021-11-23
    • 2021-05-18
    • 2020-10-29
    相关资源
    最近更新 更多