gpt4 book ai didi

asp.net - Angular + ASP.Net 核心 : Plugin Architecture

转载 作者:太空狗 更新时间:2023-10-29 19:34:07 26 4
gpt4 key购买 nike

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

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

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

貌似没有使用Angular框架的例子。所以我很好奇是否有可能实现如下所示的架构?

enter image description here

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

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

感谢任何指点。

最佳答案

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

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

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

我有 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 中显示的 View ,而主 UI 只是一个框架/模板,它将显示“IT/Ops 客户端”想要显示的内容.使用这种方式,我们可以注册这些服务,并选择要使用的服务。这是微服务架构,可能无法满足您的需求。微服务专家 Udi Dahan 对此有一篇博文(链接:http://udidahan.com/2014/07/30/service-oriented-composition-with-video/)

关于asp.net - Angular + ASP.Net 核心 : Plugin Architecture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45981344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com