visual-studio - VS 2008 IDE 是用什么编写的?

标签 visual-studio visual-studio-2008

我试图搜索,但如果这是重复的,它会被一些噪音隐藏。问题的备用标题:

需要与 Visual Studio IDE 集成时需要具备哪些技能?

最佳答案

Visual Studio 2008 是用 native 代码和托管代码编写的,尽管大部分是用 C++ 编写的。有几个 Visual Studio 部分一直是用托管代码编写的(例如属性浏览器、WinForms 设计器)。当然,Visual Studio 2008 与 COM 结合在一起。

在 Visual Studio 2010 中,我们努力将更多 IDE 移至托管代码。文本编辑器和外壳(即菜单、工具栏、文档和工具窗口框架等)是用 C# 编写的。此外,部分 C# 和 VB IDE 分别用 C# 和 VB 编写。新语言 F# 完全用托管代码编写——编译器、语言服务、项目系统等都是用 F# 编写的。

您可以使用 C#、VB 或 C++ 与 Visual Studio 2008 集成。但是,鉴于 Visual Studio 是基于 COM 构建的,因此充分了解 COM/ATL 将很有帮助。此外,如果您选择使用托管语言,那么了解 COM 互操作和混合模式调试将非常有帮助。请注意,VS 集成有几个级别:

  1. 宏——在 IDE 中运行自定义代码的最简单方法。
  2. 插件——一种将自定义功能构建到 IDE 中的简单但功能强大的方法。使用加载项,您可以创建自定义命令、监听事件、在编辑器中操作文本等。但是,您不能使用加载项向 IDE 添加新语言或编辑器。对于许多用途,加载项都可以正常工作。
  3. 程序包——这是与 Microsoft 功能使用的相同级别的集成。借助包,您可以在 Visual Studio IDE 中创建几乎所有内容,包括添加新语言。

您应该注意到,这些创作和部署变得越来越复杂。

在 Visual Studio 2010 中,IDE 的多个区域引入了一种新形式的可扩展性,但主要用于扩展新的 WPF 文本编辑器。展望 future ,与 Visual Studio 的集成将需要 MEF(托管可扩展性框架)组件而不是 COM。因此,在 VS 2010 中,扩展文本编辑器只需要用您最喜欢的托管语言编写一个 MEF 组件。

关于visual-studio - VS 2008 IDE 是用什么编写的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/990828/

相关文章:

c++ - 如果我执行 printf ("one\0two"会怎样;?

visual-studio-2008 - IIS7 : URL Rewrite not working when debugging with Visual Studio

c# - 替换文件路径中的分隔符

c++ - 编译 CUDA 示例出现构建错误

.net - 将exe文件放入构建输出目录

c++ - 自动包含不同版本的OpenCV库

c++ - 由于 64 位 DLL,Win32 应用程序和错误 0xC0000007b

visual-studio - Visual Studio 2013 更新后如何恢复空间?

c++ - 显式调用 DLL

visual-studio-2008 - 是否可以在 Visual Studio TestMethod 执行期间显示进度?