.Net 和插件架构

2024-03-22

继 Jeff 和 Joel 对插件架构的讨论之后。

C++ 中的插件(使用运行时加载的 dll)总是有点麻烦。您必须做大量的基础工作才能启用它们,然后插件也必须用 C++ 编写,甚至通常使用相同的编译器。 COM 对象和 ActiveX 解决了其中一些问题,但也引入了一些自己的问题。
然后,向 C++ 应用程序添加 Python 接口是一项大量的工作。

我是否正确地认为用一种 .Net 语言编写的所有库(或程序集或任何你所说的东西)总是可以从另一种 .Net 语言调用?对象和数据类型可以在它们之间自动传输吗?

据推测,由于所有 .Net 语言也使用 Winforms(或 WPF)作为 gui,因此让插件访问主应用程序的 gui 也相对简单。

抱歉,如果这是一个相当明显的观点,我只是一个老式的 C++ 程序员。但通过 C++/CLI 重用现有 C++ 库的便利性让我相信 C#/.Net 可能值得更多研究。

编辑 - 谢谢,我想讨论插件是否是选择 .Net 的一个原因。能够编写ironpython,同时让我的业务用户能够在 VB 中编写一个简单的插件,技术用户能够在 F# 中制作一些巧妙的东西,而无需我做任何更多的工作,这似乎是从 C++ 切换的一个很好的理由


我是否正确地认为用一种 .Net 语言编写的所有库(或程序集或任何你所说的东西)总是可以从另一种 .Net 语言调用?对象和数据类型可以在它们之间自动传输吗?

是的。在 .NET 中,由于 CTS(提供一组通用数据类型以供所有 .NET 兼容语言使用并确保类型兼容性)和 CLS(定义了所有 .NET 语言编译器必须遵循的一组最低标准),跨语言兼容性成为可能。必须符合,从而确保语言互操作性)。在编译期间,任何 .NET 兼容语言的源代码都会由相应的语言编译器转换为中间语言代码。由于所有 .NET 程序集(EXE 或 DLL)都作为中间语言存在,因此它们可以在它们之间进行互操作。所有 .NET 兼容语言都使用相同的数据类型,并且仅表示为 .NET 类型。因此,无论您在 C# 中使用 int 还是在 Visual Basic .NET 中使用 Integer,在 IL 中它都表示为 System.Int32。 []

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.Net 和插件架构 的相关文章

  • 是否可以使用.NET 跟踪文件操作?

    当以某种方式调用文件操作 例如打开或关闭 时 我是否可以在操作系统继续请求之前处理它 如果可能的话可以通过以下方式取消它 NET http en wikipedia org wiki NET Framework 如果 NET没有这样的能力
  • 如何暂时暂停实时数据图表的绘制更新

    我想要 暂停 图表的系列更新来完成一些工作 就像我有一个按钮 当我单击它时 它将暂停图表更新 然后当我单击恢复按钮时 它将更新系列中的所有暂停点 我知道关于 chart1 Series SuspendUpdates 但它似乎不适合我 我使用
  • 学习实体框架[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • If 语句中 Bool 计算错误

    只是为了好奇 我的代码有这个问题 e被评估为false 我知道通过查看数据库中的数据会得到错误 但 if 语句并不关心这一点 并假设这是真的 并试图抛出异常 有什么想法吗 edit 没有 在第 16 行末尾 价值false是正确的 我已经检
  • EF数据库首先如何针对数据库更改更新模型?

    在班级图书馆Ado net Entity Data Model已生成 POCO 类 这些是第一次生成的 但数据库更改并未得到反映 在edmx图表右键单击并选择Update Model from Database显示新创建的表 但即使选择添加
  • 在服务器桌面会话上捕获屏幕

    我开发了一个 GUI 测试框架 可以按计划对我们公司网站进行集成测试 当出现问题时 它会截取桌面等内容 它在专用 Windows Server 2008 上的登录用户上运行 无人值守 问题是在我已断开远程桌面会话连接的桌面上截取屏幕截图 我
  • 如何在 WPF 应用程序中实现气球消息

    我们想使用气球消息 如UX Guide http msdn microsoft com en us library aa511451 aspx来自微软 我发现一些示例使用 Windows 窗体中的本机代码 但本机代码需要组件的句柄 这对于
  • 标签中的路径显示

    NET 中有没有自动修剪路径字符串的方法 例如 C Documents and Settings nick My Documents Tests demo data demo data emx becomes C Documents dem
  • FullCalendar Asp.Net WebForms

    我正在尝试实施全日历 https i stack imgur com wmhGx png在我的 ASP NET 上WebForms项目 我见过一些实现此目的的示例 但没有任何运气 因为它们是针对我不习惯的 MVC 的 My Events数据
  • 对 URL 进行编码 C#

    所以我有一个看起来像这样的 URL http www test com folder1 id 3 但基本上 当他们单击按钮时 我想在 URL 栏中显示与该 id 关联的值的名称 例如 id 3 是名为 Rollex 的手表 所以我想要读取
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • 为什么文件更新时“如果较新则复制”不复制文件?

    我在 Visual Studio Express 中有一个解决方案 如下所示 The LogicSchemaC 中的类 将在运行时解析指定的 XML 文件 以下是在main的方法Program cs LogicSchema ls new L
  • 如何使用 .NET 4 运行时运行 PowerShell?

    我正在更新管理一些 NET 程序集的 PowerShell 脚本 该脚本是为针对 NET 2 与 PowerShell 运行的框架版本相同 构建的程序集编写的 但现在需要使用 NET 4 程序集以及 NET 2 程序集 由于 NET 4 支
  • 为什么要加密 ASP.NET 中的查询字符串?

    我正在开发一个用 C ASP NET 编写的 Web 应用程序 该应用程序的原始设计者选择使用加密的查询字符串和Viewstate控制应用程序的 安全 和 状态 在此之前 我来自 GET POST 世界 我没有很好的基础来理解为什么人们会经
  • MVC4更新部分视图

    我正在开发一个简单的 MVC 应用程序 我有主视图 部分视图和控制器 这是我的主要视图 model partitalViewTest Models Qset div class transbox style height 1 Html Pa
  • 为什么 System.Math 有 Sin、Cos 等外部方法?

    MethodImpl MethodImplOptions InternalCall public static extern double Sin double a 其原因何在 MethodImplOptions InternalCall表
  • Response.Redirect() 将绝对 URL 作为相对 URL 处理

    我有一个 net C 页面 它重定向到绝对 url 例如 Response Redirect rtsp myvideoServer com myVideoAddress mp4 ticket 1234 dt 1234 但重定向后会导致 ht
  • C# 要么返回 false 要么什么也不做

    我想知道是否有办法不必重复相同的事情如果施工而是调用一个状态检查 成功后无法返回true 有人知道这个问题更好的标题吗 bool Enable if GetStatus ref status Trace WriteLine Error re
  • FileStream 构造函数和默认缓冲区大小

    我们有一个使用 NET 4 用 C 编写的日志记录类 我想添加一个构造函数参数 该参数可以选择设置文件选项 WriteThrough http msdn microsoft com en us library system io fileo
  • 使用 Enumerable.OfType() 或 LINQ 查找特定类型的所有子控件

    Existed MyControl1 Controls OfType

随机推荐

  • 当应用程序处于后台/未运行时,不打开通知单击上的特定活动

    仅当打开应用程序并执行通知单击时 通知单击才会启动指定的活动 如果应用程序处于后台 未运行并且执行了通知单击 则应用程序的 MainActivity 将打开 简而言之 就像应用程序按照 Activity 堆栈正常打开一样 而不是打开 Pen
  • 填充无效且无法移除

    来自评论 一旦我手动将填充设置为 无 问题就消失了 这段代码有什么问题吗 VS2010确实可以编译它 但是从VS2010运行时出现错误 说cs close 填充无效 有人可以帮忙吗 谢谢 public static byte Decrypt
  • 如何从javascript中的字符串中删除“,”

    原始字符串是 a d k 我想删除所有 并使其达到 adk 我尝试了下面的代码 但它不起作用 a d k replace 您没有将替换方法的结果分配回您的变量 当您调用replace时 它会返回一个新字符串 而不修改旧字符串 例如 将其加载
  • Wordpress - 选择/加载子菜单项页面时突出显示父菜单项

    我有一个基本菜单 一些菜单项有子菜单 我对 WordPress 的经验很少 现在没有时间深入研究细节 所以我的问题是 当用户导航到子菜单页面之一时突出显示顶部菜单项的最简单方法是什么 我尝试使用 javascript 和纯 css 通过元素
  • 具有动态高度的 CSS 三角形

    想知道是否有人可以帮助解决我遇到的 css 问题 请参阅此 jsbin http jsbin com uviyat 2 edit http jsbin com uviyat 2 edit 注意 较长的措辞示例 如何使三角形箭头指示器垂直缩放
  • 从 XSL 创建 XSL

    我正在尝试从 XSLT 样式表动态生成 XSLT 文档 当然 原则上这是可行的 但我没有让命名空间正常工作 我希望生成的 XSLT 元素带有 xsl 前缀
  • jquery ui滑块,如果满足某些条件则停止滑动

    使用 jQuery UI Slider 我试图找出如何使滑块在满足某些条件后停止工作 有任何想法吗 我认为在 开始 部分停止事件传播会起作用 但是 事实并非如此 所以我还是一无所知 迷失了方向
  • 您可以使用 RedirectToAction 传递模型吗?

    我正在使用 mvc 2 候选版本 并且想知道是否有任何方法可以使用 RedirectToAction 将模型传递给操作 例如 我有一个编辑操作 它采用 ID 从数据库加载记录 在文本框中显示当前值 并让用户编辑并单击提交 public Ac
  • 无法在 Zsh 中使用颜色;文字有效,但没有出现颜色

    我刚买了一台 Mac 我正在尝试用颜色自定义我的 Zsh 提示符 但我无法让颜色起作用 我不确定是因为 LS COLORS 还是什么原因 这是我的 zshrc export CLICOLOR 1 export LSCOLORS ExFxBx
  • C# 没有私有变量的自定义 getter/setter

    我最近学习了c 所以当我学习写属性时 我被教这样做 public string Name get set 汽车属性太棒了 但现在我想做一些更复杂的事情 所以我需要编写一对自定义访问器 private string Name public s
  • 在 for 循环中重新创建 ArrayList 的最快方法

    在Java中 对一个巨大的矩阵X使用以下函数来打印其列不同的元素 create the list of distinct values List
  • 我应该如何订购 DI/IOC 的 ctor 参数?

    我是一个 DI 新手 所以如果这是错误的方法或一个愚蠢的问题 请原谅我 假设我有一个创建 更新订单的表单 并且我知道它将需要检索要显示的产品和客户列表 我想传递它正在编辑的 Order 对象 但我还想注入 ProductsService 和
  • 作为 Windows 服务运行时,如何获取活动监视器的数量? C++

    当 exe 作为 Windows 服务运行时 我在检索活动监视器的数量时遇到了问题 我尝试使用 EnumDisplayDevices 和 GetSystemMetrics SM CMONITROS 来获取监视器的数量 这两种方法在以控制台模
  • 如何更改本地sql server sa密码?

    我是计算机的本地管理员 如何更改本地安装的 sql server 2008 的 sa 密码 注意 我不知道sa帐户的密码 该线程的回复确实很晚 但我刚刚丢失并重置了 SA 的密码 按照以下简单步骤操作即可完成 在 Windows 身份验证模
  • Facebook Like Box:如何检测用户是否已经喜欢该页面?

    我在我的博客中安装了 Like Box 我想知道用户是否已经喜欢我的页面 我想向我的读者实现这样的东西 因为如果他们已经喜欢我的页面 我想向他们提供隐藏的内容 是否有一个事件可以检测用户是否已经喜欢 赞 框中的页面 如果您使用的是 XFBM
  • 如何将 Springdoc Swagger UI 指向我自己的 YAML 文件而不是自动生成的文件?

    我创建了一个 Spring Boot RESTFul 微服务 对于文档 我创建了一个 swagger yaml 文件 但我不知道如何运行该文件 为了创建 swagger yaml 文件 我使用了 OpenAPI 规范 我知道我们有一个 Sw
  • 长数组列表渲染使 Angular.js 中的页面滚动变慢

    当尝试从数组 带有图像 渲染超过 120 个项目时滚动列表的速度变慢 基本上 当我在无限滚动中加载新数据时 我会将旧数组数据与新数组数据连接起来 另一方面 像 dribbble behance 这样的流行网站似乎没有这个问题 也许这个问题是
  • Pimpl 习语的实践

    SO 上有一些关于粉刺成语 但我更好奇它在实践中被利用的频率是多少 我知道性能和封装之间存在一些权衡 再加上额外的重定向带来的一些调试烦恼 那么 这是应该在每个班级中采用 还是全有或全无的基础上采用 这是最佳实践还是个人偏好 我意识到这有点
  • 从一个 data.frame 中选择第二个 data.frame 中不存在的行

    我有两个数据框 a1 lt data frame a 1 5 b letters 1 5 a2 lt data frame a 1 3 b letters 1 3 我想找到 a1 有而 a2 没有的行 是否有针对此类操作的内置函数 注 我确
  • .Net 和插件架构

    继 Jeff 和 Joel 对插件架构的讨论之后 C 中的插件 使用运行时加载的 dll 总是有点麻烦 您必须做大量的基础工作才能启用它们 然后插件也必须用 C 编写 甚至通常使用相同的编译器 COM 对象和 ActiveX 解决了其中一些