我看到MEF和Lua之间的相似之处。两者都允许您注册方法并根据需要进行部署。既是MEF又是Lua形式的IoC /依赖注入?是MEF微软的Lua版本吗?
回答
我假设你意识到这些技术之间的巨大差异,问题:
“都是MEF和Lua形式的IoC/ 依赖注入?”
此外,我假设你在谈论嵌入式Lua与Lua作为一种语言。
首先,让我们分离控制反转的依赖注入。 Fowler defined Dependency Injection as a specific form of IoC,因为IoC的想法变得如此普遍,以至于它不再是系统的显着特征。他的定义包括三种主要类型的依赖注入:构造器注入,Setter注入和接口注入。在所有三种类型中,这个想法是将一个类或接口的特定实现注入到需要它的类或方法中。这很漂亮,因为它允许你分离依赖和使用它的类。只要他们遵循合同,您就可以编辑和交换依赖项的实现,而无需关心或影响其消费者。
使用此定义,我会说MEF通过并嵌入Lua失败。 MEF主要是依赖注入框架。它允许您动态加载和编写实现特定合同的外部类。另一方面,Lua允许通过脚本进行扩展,但合同的方式很少。当然,你可以为你的应用程序提供一个Lua API,这是一个合同,但它没有做任何事情来确保一个真正的合同是荣幸的。
IoC更广泛(Fowler,Wikipedia)常见的主题是主程序流程临时放弃控制,但从正在执行工作的组件接收流状态更新。常见的方法包括:事件,关闭和延续。
使用此定义,MEF很容易通过(在运行时将控件传递给未知组件),您也可以为嵌入的Lua生成一个参数。主程序一直巡航,直到它需要一个在外部脚本中定义的函数。此时,控制权将交付给脚本,直到完成或中断为止。
有一点要注意的是,Lua在这方面并不特别特别。您可以嵌入Perl,Python,Tcl和Ruby。事实上,IoC的一般定义在现代编程环境中并不特别有用。这太常见了。福勒说这就是为什么他将依赖注入作为特例介绍。在GUI,事件,线程,守护进程,关闭,延续和monad的世界中,一切都使用IoC。今天,当人们说'IoC'时,他们通常意味着某种依赖注入。
MEF和Lua没有任何关系,也不像Lua。
MEF是一个扩展框架(基本上,一个真棒插件框架)。
Lua是一个非常酷的脚本语言。 “
”两者都允许您注册方法并根据需要进行部署。“这句话适用于C,C++,C#,VB,SQL,DI框架,JavaScript,通用汽车,福特,医院......
我不明白“通用汽车,福特,医院......“ – 2008-11-29 00:00:20
- 1. 微软SDK版本
- 2. MEF和版本
- 3. 如何检测微软乐队版本
- 4. 这是微软的问题吗?
- 5. 微软是否停止支持silverlight的新版本?
- 6. 什么是微软的MQ系列版本?
- 7. 版本[共享] MEF导出
- 8. C++的Lua 5.1版本
- 9. 微软边缘版本40/15剪贴板返回“text/html的”
- 10. 为什么微软提供IE虚拟机的Vagrant版本?
- 11. 离线版本的微软TFS源代码tken
- 12. 软件版本
- 13. 软件版本
- 14. IronPython微软。脚本异常
- 15. 在微软有类似的OSGI吗?
- 16. 揭露MEF的版本装“插件”
- 17. MEF - 错误的汇编版本
- 18. 微软公司的MVC是新的Struts for Dot网络吗?
- 19. PHP csv函数,微软安全吗?
- 20. 微软会继续支持C++/CLI吗?
- 21. 微服务版本控制
- 22. 微软的AppFabric,ESB?
- 23. hdinsight微软的Hadoop
- 24. 微软Web Matrix的
- 25. 微软的Outlook API
- 26. 什么是微软的CLSID和PROG ID.sqlserver.Management.Smo
- 27. 微软动态CRM 2013与微软Dynamics CRM在线的区别是什么
- 28. 微软Semblio
- 29. AWS微软AD
- 30. 微软SQLEXPRESS
它们完全不同。 – 2008-11-28 19:58:42