2017-08-31 127 views
1

我试图构建一个随着时间的推移随着时间的推移而添加功能的企业系统。Angular + ASP.Net核心:插件体系结构

我打算用ASP.Net与Angular的UI进行核心微服务架构。我无法找到一个示例,显示我们如何在不更改任何现有角码的情况下引入新模块。

我能够在传统的Winforms应用程序中使用像MEF这样的技术来完成这项工作,并将dll放入一个shell监视和加载的文件夹中。

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

enter image description here

Module是用作该壳可以呈现和Service是由应用程序本身使用的逻辑服务的角文件asp.net核心服务。

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

任何指针赞赏。

+0

ASP.NET核心模块发生在Angular shell中吗?我不确定它是否有意义。 –

+0

@ MathieuRenda:是的,他们拥有适用于通过Angular Shell呈现的模块的UI部分 – Kiran

回答

0

我试图执行一个插件架构利用ABP,角和ASP.NET核心:https://github.com/chanjunweimy/abp_plugin_with_ui

基本上,我使用不同的角度的应用,那么我动态添加他们共同开发角插件。我如何实现它

更多信息:

我有2个角-CLI应用中,1是主角度CLI应用程序,而另一个是插件角CLI应用程序。我们在Angular-cli插件架构方法中面临的问题是我们如何整合它们。

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

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

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

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

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