问题标签 [maf]

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 回答
5176 浏览

c# - MAF vs. MEF vs. Prism

我正在使用 Silverlight 观看一些 MEF 或 Prism 教程,但同时也在做一些 MAF 工作(System.AddIn),并认为这也可能有效。我看到 Prism 和 MEF 几乎是一回事,但 Prism 具有事件聚合器。

有人对 MAF 与 Silverlight 的协同工作有什么想法吗?

0 投票
1 回答
463 浏览

c# - 将 MAF 与 Prism 或 CAL 一起使用

我正在将我的 CAB 应用程序迁移到 Prism。并面临一个特定的要求,即让外壳中托管的所有模块都位于不同的 Appdomain 中。正在考虑使用 MAF 来实现这一目标......任何人都可以给我一些关于如何去做的提示..

在此先感谢维克拉姆

0 投票
1 回答
550 浏览

.net - 自己的可扩展层或 MEF/MAF?

对于那些在 .NET 中使用应用程序可扩展性的人,您更喜欢做什么 - 创建自己的可扩展层或使用 MEF(托管扩展框架)或 MAF(托管插件框架)?

到目前为止,我已经使用了两种实现应用程序可扩展性的方法,并且我喜欢 MEF,因为它可以更轻松地从特定位置加载现有程序集,而无需直接验证接口实现(因为ImplementationOf(interface)在 .NET 中缺少检查) .

您在特定的可扩展层首选项中看到了哪些优势?有什么缺点?

0 投票
1 回答
337 浏览

c# - 使用 System.AddIn 支持部署 ClickOnce 应用程序

我有一个 ClickOnce 应用程序,我希望它支持 MAF(System.AddIn)。

我在本地环境中了解了 System.AddIn Pipeline 结构等,但是当谈到 ClickOnce 时,我找不到任何有关此类壮举的信息。

我是否需要在 ClicKOnce 环境中维护 AddIn 管道?因此,我是否使用应用程序部署整个管道?你们有什么好的链接吗?

0 投票
4 回答
1674 浏览

mono - 在 Mono 上使用 MAF(和 MEF)进行编程

我目前在一家想要为 linux 平台制作软件的公司实习。由于他们是一家具有 .Net 意识的公司,他们希望我研究单声道。我有点不得不看看他们的应用程序和服务器应用程序是否稳定。

我现在正在研究单声道的 MEF 和 MAF(托管插件框架)框架。

有没有人有在 MONO 中使用 MEF 和 MAF 框架构建应用程序的经验?您在单声道等方面遇到过一些问题吗?(欢迎提供解决方案(:)

我测试了一些简单的 MEF 教程代码,并且在 mono 上运行良好(尽管我没有使用它们给我的所有功能)。关于 MAF,我没有发现太多可以帮助我的东西。任何可以帮助我的链接?更具体地说,我想知道是否有一些关于 MONO 和 MAF 的帖子是否有效。

我已经感谢您阅读我的问题,

本杰明

0 投票
1 回答
1145 浏览

c# - 权限被拒绝 - 使用 .NET Remoting 和 FrameworkElementAdapters 的跨进程 UI

我的问题非常相似,如果不是这个的复制品的话。令人恼火的是,“答案”并没有给我很多工作,坦率地说,我处于一个松散的结局。

问题应该是相当明显的。我想在可插入应用程序框架的进程之间传递 WPF 元素,而不必使用托管插件框架。我部署到一个环境,由于高度限制性的权限,将文件缓存到我无法控制的磁盘是不可接受的。这些是解决方法 - 将插件根放在 appdata 中 - 但强制执行的目录结构是不可取的,据我所知,这不是该文件夹的用途。

异常方法如下,异常行以粗体突出显示:

p>

实验似乎需要通过STA 线程上的FrameworkElementAdapters.ContractToViewAdapter()解组句柄 ,因此需要调用。需要注意的是,client是一个回调MarshalByRefObject,在这个方法中是通过代理访问的。句柄也是通过调用FrameworkElementAdapters.ViewToContractAdapter()远程创建的,并作为远程方法的返回值传递到此应用程序域。

我收到的异常是发生了 RemotingException - 权限被拒绝:无法远程调用非公共或静态方法。

欢迎任何反馈。

0 投票
2 回答
1274 浏览

c# - 处理使用 MAF (System.AddIn) 创建的插件

有谁知道如何处理使用 System.AddIn 创建的插件。所有在线示例似乎都展示了如何轻松加载和使用插件,但没有一个展示如何在它们存在后处理它们。我的问题是我在新进程中创建插件,而这些进程永远不会被垃圾收集,这显然是一个问题。

下面是一些说明我的问题的示例代码。假设用户从未退出此应用程序,而是创建了许多 ICalculator 实例。这些 addIn 进程是如何被处理掉的?

0 投票
5 回答
7310 浏览

.net - 寻找一种实用的方法来沙箱化 .NET 插件

我正在寻找一种从 .NET 应用程序访问插件的简单且安全的方法。虽然我认为这是一个非常普遍的要求,但我很难找到满足我所有需求的任何东西:

  • 宿主应用程序将在运行时发现并加载其插件程序集
  • 插件将由未知的 3rd 方创建,因此必须对它们进行沙盒处理以防止它们执行恶意代码
  • 一个通用的互操作程序集将包含主机及其插件引用的类型
  • 每个插件程序集将包含一个或多个实现通用插件接口的类
  • 初始化插件实例时,宿主会以宿主接口的形式传递给它自己的引用
  • 主机将通过其通用接口调用插件,插件也可以调用主机
  • 主机和插件将以互操作程序集中定义的类型(包括泛型)的形式交换数据

我对 MEF 和 MAF 都进行了调查,但我很难了解如何使它们中的任何一个符合要求。

假设我的理解是正确的,MAF 无法支持泛型类型跨越其隔离边界的传递,这对我的应用程序至关重要。(MAF 实现起来也非常复杂,但如果我能解决泛型类型问题,我会准备好使用它)。

MEF 几乎是一个完美的解决方案,但似乎达不到安全要求,因为它将其扩展程序集加载到与主机相同的 AppDomain 中,因此显然可以防止沙箱。

我见过这个问题,它谈到了在沙盒模式下运行 MEF,但没有描述如何。这篇文章指出“在使用 MEF 时,您必须信任扩展不会运行恶意代码,或通过代码访问安全性提供保护”,但同样,它没有描述如何。最后,还有这篇文章,它描述了如何防止加载未知插件,但这不适合我的情况,因为即使是合法的插件也会是未知的。

我已成功地将 .NET 4.0 安全属性应用于我的程序集,并且 MEF 正确地尊重了它们,但我不明白这如何帮助我锁定恶意代码,因为许多框架方法可能是安全威胁(例如System.IO.File) 的方法被标记为SecuritySafeCritical,这意味着它们可以从SecurityTransparent程序集中访问。我在这里错过了什么吗?我可以采取一些额外的步骤来告诉 MEF 它应该为插件程序集提供 Internet 权限吗?

最后,我还研究了使用单独的 AppDomain 创建我自己的简单沙盒插件架构,如此所述。然而,据我所知,这种技术只允许我使用后期绑定来调用不受信任程序集中类的静态方法。当我尝试扩展此方法以创建我的插件类之一的实例时,返回的实例无法转换为通用插件接口,这意味着主机应用程序无法调用它。是否有一些技术可以用来跨 AppDomain 边界获取强类型代理访问?

我为这个问题的长度道歉;原因是展示我已经调查过的所有途径,希望有人可以提出一些新的尝试。

非常感谢你的想法,蒂姆

0 投票
1 回答
203 浏览

.net - 受限 AppDomain 中的加载项应如何访问升级的服务

我目前使用 MAF 创建了一个加载项模型,其中加载项加载在受限的 AppDomain(Internet 权限)中。这意味着插件无法调用我们的数据库,这在大多数情况下是我们想要的,因为我们希望阻止插件作者直接对数据库运行任何查询。

我们希望他们使用某种形式的主机 API,允许他们执行某些任务(例如运行非常具体的查询或发送电子邮件)。谁能告诉我最好的方法来做到这一点?

我尝试设置 AppDomain 以将包含主机 API 的程序集视为完全信任程序集,同时以受限方式运行加载项,但是当我尝试打开数据库连接时仍然收到 SecurityExceptions。

0 投票
2 回答
375 浏览

visual-studio-2010 - 我可以使用 MEF 将内容添加到 vs2010 右键单击​​上下文菜单吗?

专门处理扩展vs2010右键上下文菜单。我可以使用 MEF 将内容添加到右键单击上下文菜单吗?我知道这应该是 2009 年的作品,所以我想也许现在有,或者,我是否因此而坚持使用 MAF?