Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 在开发VSX包或独立Shell包时,最适合使用的模式是什么?_Design Patterns_Vsx - Fatal编程技术网

Design patterns 在开发VSX包或独立Shell包时,最适合使用的模式是什么?

Design patterns 在开发VSX包或独立Shell包时,最适合使用的模式是什么?,design-patterns,vsx,Design Patterns,Vsx,当我开发一组设计器/工具时,VSX包和/或VSX隔离外壳包中最适合的模式是什么 任何示例、链接都很好。如果您正在寻找通用设计模式,我建议您研究(也称为MVP和MVVM)以编写自定义设计器 一般来说,所有VSPackages(无论何种工具)都使用(即IServiceProvider)与IDE和其他VSPackages通信。除了IoC和DI(服务定位器)之外,在较大的软件包上,我用Castle(搜索Castle项目)来“替换”IServiceProvider,以获得我自己的服务等。然后是MVP/MV

当我开发一组设计器/工具时,VSX包和/或VSX隔离外壳包中最适合的模式是什么


任何示例、链接都很好。

如果您正在寻找通用设计模式,我建议您研究(也称为MVP和MVVM)以编写自定义设计器

一般来说,所有VSPackages(无论何种工具)都使用(即IServiceProvider)与IDE和其他VSPackages通信。

除了IoC和DI(服务定位器)之外,在较大的软件包上,我用Castle(搜索Castle项目)来“替换”IServiceProvider,以获得我自己的服务等。然后是MVP/MVC或只是演示模型

我倾向于使用命令模式绑定vsct文件中定义的菜单项

除此之外,我使用我认为合适的任何模式或实践,就像我在常规的.NET解决方案、工厂、构建者、观察者中使用的一样


在其他交叉关注点中,我也倾向于将面向方面编程用于异常策略(请参见)

谢谢我将MVVM用于Designer,将SL模式用于任何其他服务,正如您所提到的:)感谢PostSharp链接。你有关于如何在VSCT文件中为菜单项实现命令模式的博客文章的示例吗?实际上我没有,但我现在已经在这篇文章中尝试将其简化为基本内容: