问题标签 [plugin-architecture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
810 浏览

c++ - 沙盒插件架构

我在谷歌上搜索并搜索插件架构,我对如何实现它的一般知识感到满意。现在我进一步寻找沙盒架构。基本上我的意思是一个带有插件的应用程序,其中插件崩溃不会导致整个应用程序崩溃,并且可以重新加载插件。我找不到好的文档。我知道 Firefox 实现了它(崩溃的 flash 插件不会影响整个 FF,可以重新加载)谢谢!

0 投票
2 回答
719 浏览

asp.net - How to Plugin Web Pages dynamically in ASP .NET (and update the plugin)?

For regular assemblies one can use MEF to load assemblies dynamically. If a live update is required of those assemblies, the recommendation is to use AppDomains to host the dynamic assemblies (potentially one can use Managed Add-in Framework (MAF)). When requiring an update, the appdomain is stopped, the assemblies are updated and the appdomain is reloaded.

What about assemblies that are loaded by ASP .NET that contain that code behind classes? How can I update them without forcing a restart of the main appdomain. Is it possible to host some of my pages in a dynamic appdomain? How would you do that? Can this appdomain share login token and authentication stuff so the user doesn't have to re-login?

Thanks

0 投票
7 回答
55950 浏览

asp.net-mvc-3 - 视图必须派生自 WebViewPage 或 WebViewPage

我正在关注Justin Slattery 的插件架构教程并尝试将其调整为 Razor,而不是 WebForm 视图。

其他一切(控制器、插件程序集加载等)似乎都还可以。但是,我无法让嵌入式 Razor 视图正常工作。当我尝试浏览到“HelloWorld/Index”时,出现以下错误:

异常被抛出System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +262

如果需要,我可以包含完整的堆栈跟踪。

谁能建议我可能做错了什么?

0 投票
2 回答
826 浏览

c# - 将依赖项 (NLog) 注入动态加载的类型

我的解决方案中有某种插件架构。有一个众所周知的文件夹可以在其中放置插件。插件实现了一个在宿主项目中共享的接口。

最初我通过加载插件Assembly.LoadFrom(fi.FullName).GetTypes() 并通过(IPlugin)Activator.CreateInstance(type);.

因此主机(主应用程序)可以执行插件程序集实现的适当代码。到目前为止,这工作正常。

但最近我尝试通过 NLog 实现应用程序日志记录,并在宿主项目中配置了 NLog,效果很好。

问题是我想在插件程序集中使用(已经配置的)记录器。如果我只是引用 NLog 并使用它,LogManager.GetCurrentClassLogger();似乎没有配置集。它不会从插件程序集中记录到我在宿主项目中配置的文件。

我想尝试将 NLogger 实例(在宿主项目中创建)注入到插件类型的属性中。

这是可能的还是有一个首选的方法来完成这样的事情?谢谢

0 投票
3 回答
1902 浏览

python - Python3插件系统

我正在尝试创建一个类似于 yapsy 的插件框架(不幸的是 yapsy 不兼容 python3)。

我的代码如下所示:

在 PluginManager.py 我定义了以下类:

其中 Candidate_filepath 包含插件路径。

textui.py 包含以下内容:

当我尝试加载插件时,出现此错误:

我怎么解决这个问题?

0 投票
1 回答
1061 浏览

c# - 在类库中获取 Razor 模板

我的解决方案中有一个基于插件的架构(使用区域),效果很好。

问题是插件项目是类库,因此当我右键单击视图文件夹时,添加视图向导不可见。

有没有办法在类库中获取该向导?还是有另一种方法可以在类库项目中获得脚手架?

0 投票
3 回答
116 浏览

java - 我自己的可以自定义的 Java 应用程序

我打算使用java应用程序实现一个过程。该过程有不同的阶段。每个阶段都有一个输入和输出。

所以它类似于 input1=>phase1=>outpu1=>phase2=>output2=>phase3=>final_output

我想编写一个 java 应用程序,用户可以在其中扩展任何阶段来实现自己的功能。

例如:假设 phase1 对给定的输入进行排序。我想让我的应用程序用户创建将替换阶段1 功能的自定义类。他们可能想要计数而不是排序。

关于如何做到这一点的任何想法?插件架构?任何以类似方式工作的框架示例?从哪儿开始?编辑:输入来自用户。让我们说我的应用程序需要一组数字并进行排序(阶段1)然后删除重复项(阶段2)和添加(阶段3)并给出输出。现在我希望这些阶段是可定制的。可能是通过允许他们定义自己的类来做其他事情。

0 投票
0 回答
116 浏览

c# - 如何测试我的插件架构功能?

我正在应用程序中实现一个简单的插件架构。基本上,将有一个简单的字符串定义插件各自主类的程序集名称和完全限定类型,并且主机应用程序应该加载主类并调用Initialize插件类的方法。

如何为此进行 NUnit 样式集成测试?我可以在测试运行时创建一个存根 MyPlugin 类型并将其保存为程序集(dll 文件)吗(这可以使用某些库吗?)?还是你有更好的主意?

0 投票
2 回答
291 浏览

c# - 我应该如何管理类依赖/重构?

我的应用程序实现了一种模块化架构,可以动态加载一个或多个“插件”程序集。每个程序集都包含一个实现IPlugin接口的类,提供宿主应用程序用来与插件交互的各种方法和属性。

这个类不可避免地依赖于插件中的其他类,而这些类又可能有自己的依赖关系。到目前为止,我一直在使用 Castle Windsor 管理所有这些(每个插件都包含一个IWindsorInstaller我注册其依赖项的位置),并通过它们的构造函数进行 DI。缺点是类必须是public这种方法才能工作。

我现在已经意识到并想通过制作所有这些类来锁定插件internal,但是我不确定处理依赖项的最佳方法,因为大概我将无法使用 Windsor。我不希望这些类实例化它们自己的依赖项(不是松散耦合、缺乏可测试性等),那么还有哪些其他方法呢?

0 投票
0 回答
65 浏览

c# - 防止插件在用户之间共享的最佳方法

我们正在使用 MEF 开发基于插件架构的 C# 应用程序。

主应用程序只是一个基本框架,它的模块化功能将由用户必须购买的插件提供。

我真的不希望每个插件都有单独的许可证密钥,但确实需要采取合理的预防措施,以便用户不只是购买一个插件的副本,然后将其安装在应用程序的十几个实例中。