240
一线老司机

随笔分类 -  VSX

VSX相关的文章
摘要:http://www.ticklishtechs.net/2008/07/27/getting-rid-of-the-dsl-model-explorer/ Every DSL you create with DSL Tools has a model explorer. This model explorer is a tool window in Visual Studio display... 阅读全文
posted @ 2011-11-24 16:18 明年我18 阅读(446) 评论(0) 推荐(0) 编辑
摘要:(LearnVSXNow又开始继续翻译了,为了提高翻译速度,不再对每句话进行翻译,并且会用自己的理解来代替不好翻译的句子。理解不一定正确,见谅。) 前面那篇文章介绍了Visual Studio的自定义编辑器的基本概念,并用一个例子来说明如何创建自定义编辑器,今天我们继续这个例子。 1. 注册Editor Editor需要注册到Visual Studio中才能使用。通常会注册下面三个东西: Editor Factory:告诉Visual Studio我们的package可以提供哪些Editor Factory。 Editor支持的文件扩展名:告诉Visual Studio哪种扩展名的文件会关联. 阅读全文
posted @ 2011-06-11 18:23 明年我18 阅读(2337) 评论(6) 推荐(3) 编辑
摘要:liberate是一个集成在vs里的轻量小巧的代码生成框架,当然如果您已经熟练运用CodeSmith了,您就不用考虑它了。不过也可以把它作为学习vsx的一个入门示例。 下载地址是:http://liberate.codeplex.com/ 可以下载安装包、示例代码和整个源代码。目前只支持VS2008。 它只是一个基于velocity的代码生成框架,你得在它的基础上参考示例代码来写自己的生成工具。示... 阅读全文
posted @ 2010-10-29 20:06 明年我18 阅读(1470) 评论(6) 推荐(3) 编辑
摘要:做完VSPackage后,如何打包发布它?其实有很多种打包的方式,在这里我只介绍在VS2008下用Wix制作VSPackage的安装程序。您首先要下载并安装Wix toolset(http://wix.codeplex.com/)。 创建测试用的VSPackage 新建一个VSPackage项目用来测试。为了演示安装后的效果,别忘了在向导中给它添加一个Menu Command。 创建Wix项目 ... 阅读全文
posted @ 2010-10-11 01:16 明年我18 阅读(5620) 评论(11) 推荐(4) 编辑
摘要:在前两篇里,我向大家介绍了如何把vs的windows forms designer作为自己的自定义编辑器,这这篇文章里我再介绍一些大家可能关心的和设计器相关的其他问题。 给toolbox添加自己的控件 首先我们要开发自己的控件。我们在WinFormsDesigner项目里添加一个Controls文件夹,用于放置自己的控件。然后添加一个MyTextBox的控件,继承自TextBox: 我们需要一段... 阅读全文
posted @ 2010-08-09 08:20 明年我18 阅读(3412) 评论(14) 推荐(3) 编辑
摘要:我们在上一篇文章里利用Windows Forms Designer做了一个简单的表单设计器,但这个设计器还存在一些问题,比如控件不能自动命名;文档窗口不会自动加入dirty标记;不能undo/redo和copy/paste;不能保存和读取数据等等。这一篇我们来逐一解决这些问题。控件自动命名 从toolbox里拖入一个控件时,如果想让控件自动命名,我们需要往DesignerHost里加一个IName... 阅读全文
posted @ 2010-08-06 08:32 明年我18 阅读(3400) 评论(23) 推荐(3) 编辑
摘要:有时候我们想实现一个表单设计器,在这个设计器实现拖动控件、设置属性等功能。VS内置的WinForm Designer无疑是最好的选择,那么,我们怎样才能把它作为自己的编辑器呢? 首先,我们来看一下VS编辑器的结构,下图摘自LearnVSXNow: 从上图可以看出,要实现一个编辑器,实现需要Editor Factory、Document Data和Document View。其中,我们不需要再实现... 阅读全文
posted @ 2010-07-19 08:14 明年我18 阅读(3962) 评论(28) 推荐(4) 编辑
摘要:在了解了菜单和命令之后,我们接下来的几篇文章将以自定义编辑器为主题。在开发程序的时候,我们可以用文本编辑器来编写程序代码,并且实际上我们可以用文本编辑器完成所有的开发工作,但我们通常不这么做,因为在visual studio中有很多可以提高我们效率的编辑器,例如winforms编辑器和asp.net的页面编辑器。 Visual Studio IDE允许我们创建自己的编辑器。但创建一个自定义编辑器要... 阅读全文
posted @ 2010-07-17 14:08 明年我18 阅读(3422) 评论(1) 推荐(3) 编辑
摘要:在第13篇里,我说过我要给你们展示一些菜单、工具栏和命令的示例代码,但是相关的东西太多了,一篇文章没办法全部囊括,所以在这里我只涉及一些和vsct文件相关的代码。 前言 在本系列前面的文章里,我多次提到过Package是按需加载的,IDE只有在真正用到Package的时候才去加载它们。但这样就带来一个问题:IDE如何在不加载Package的情况下,显示Package里定义的菜单和工具栏?或者说当我... 阅读全文
posted @ 2010-06-28 08:18 明年我18 阅读(3222) 评论(11) 推荐(6) 编辑
摘要:我们自己做的组件,一般希望它的属性在设计时能够在属性窗里显示为中文,可以在属性上添加System.ComponentModel.DisplayNameAttribute标注达到这个目的。但是,枚举的选项如何以中文的形式显示在属性窗里呢? 假设我们有如下枚举: 在某个组件里有一个MyEnum类型的属性,如下: 在设计时把这个组件拖到设计器中,发现属性窗中出现了“我的枚举”这... 阅读全文
posted @ 2010-06-12 13:54 明年我18 阅读(1909) 评论(3) 推荐(3) 编辑
摘要:几乎所有的VSPackage都有用户交互,用户可以通过点击Visual Studio中的菜单或工具栏来激活VSPackage的功能或显示相关的界面。 在这一篇文章里,我们来看一下Visual Studio的菜单和工具栏是如何被定义、创建、显示和使用的。不过这篇文章我只是说一下一些基本的知识,到下一篇文章我们再来看一些示例代码。 一些概念 我们创建的VSPackage的功能可以被别的packag... 阅读全文
posted @ 2010-05-03 13:37 明年我18 阅读(2487) 评论(6) 推荐(3) 编辑
摘要:前面的11篇文章涉及到了在VSX开发中最重要的知识,利用这些知识,我们已经可以开始开发VSPackage了。但是,还有很多重要的主题我们并没有涉及到(例如Package Load Key、部署和安装、属性页,自定义编辑器、项目树,文档窗口等等)。 通过前面这些文章的读者反馈来看,现在是进行下一个主题的时候了。但在这之前,让我先对比一下软件开发和潜水运动… 不仅仅我的昵称叫作DeepDi... 阅读全文
posted @ 2010-04-23 14:01 明年我18 阅读(1662) 评论(6) 推荐(2) 编辑
摘要:在前面的文章里,当我们创建package的时候,总是在向导那里勾掉测试选项,从而不采用自动测试的方式,只是手动的测试它:把package运行起来,并且看看它是否有我们预期的功能。 我之所以勾掉测试选项,并不是因为我讨厌测试,而是我认为package的测试应该作为一个主题单独来讲,需要至少一篇专门的文章来叙述它。坦率的讲,当我在第10篇里写VsxTools的代码的时候,我真的觉得我们缺少了测试这一步... 阅读全文
posted @ 2010-04-11 14:06 明年我18 阅读(1971) 评论(0) 推荐(2) 编辑
摘要:我们在第6和第7篇创建的Calculate小工具窗还有很多可以改进的地方,所以在这篇文章里,我们不会开发新的功能,而是重构我们的代码,封装出可以重用的类和方法。 VSX背后的对象模型是非常丰富的:有几百个类和几千个方法。但我们在开发VS add-in和package的时候,光记住类和方法的名字是不够的,我们还需要知道相应的GUID以及其他相关的常数。 我觉得在VSX的开发中最难的是开发者必须要把.... 阅读全文
posted @ 2010-03-28 23:00 明年我18 阅读(1730) 评论(0) 推荐(0) 编辑
摘要:在第6篇和第7篇里,我们创建了一个名为StartupToolset的示例package,并且手动地添加了一个菜单项和工具窗。在这篇文章里,我们将重构这个package,提取独立的服务模块出来。 我们这个示例package有很多地方可以重构:不仅可以做提取服务之类的结构调整,也可以封装可重用的代码,以便供以后调用或提高代码可读性。在下一篇文章里我们将封装可重用的代码,但在这一篇里,我们把精力放在服务... 阅读全文
posted @ 2010-03-20 23:14 明年我18 阅读(1741) 评论(4) 推荐(1) 编辑
摘要:当我准备去写“创建我们的第一个工具集”系列的下一篇时,我意识到我的注册表已经被我之前创建的示例package给污染了。当我试图卸载这些package以便清理这些垃圾时,我和regpkg.exe程序有了一次亲密的接触。早先我就有计划写这么一篇类似主题的文章(但一直没有写),现在我决定不再拖了,就算我们不得不先暂停一下“创建我们的第一个工具集”系列的编写... 阅读全文
posted @ 2010-03-14 22:35 明年我18 阅读(2278) 评论(1) 推荐(1) 编辑
摘要:在上一篇文章中,我们创建了一个例子:我们为一个空的package添加了一个菜单命令,并且在这个过程中了解了Visual Studio Command Table文件的作用和用法。 在这篇文章中,我们继续这个例子,手动为它添加一个工具窗。为项目添加工具窗 我们将创建如下图所示的工具窗: 这个工具窗的功能非常简单:在FirstArgEdit和SecondArgEdit文本框里输入数字,在Operato... 阅读全文
posted @ 2010-03-13 19:01 明年我18 阅读(2217) 评论(4) 推荐(0) 编辑
摘要:VSX团队已经成立了,团队地址http://vsx.cnblogs.com/,QQ群:118191491 有兴趣加入的朋友,请回复此文。 补充:由于最近QQ和360闹得火热,装有360的童鞋的QQ经常会退出,特申请了一个msn的群,msn群申请加入地址:http://vsx2010.groups.live.com/ 2011-9-31再补充:由于很少上msn,所以msn群废弃不用了,只用QQ。 阅读全文
posted @ 2010-03-10 09:32 明年我18 阅读(1443) 评论(34) 推荐(2) 编辑
摘要:在LearnVSXNow系列译文的第6篇发布后,有个朋友问了这么一个问题:“如果我想将一个Package的UI元素放至另外一个第三方的Package的菜单下,你有什么好的建议吗?这个东西现在在困扰着我。” 我们知道,可以把package的菜单放到Visual Studio提供的菜单下,这其实和把菜单放到第三方package的菜单下没有本质的区别,当然前提是你得知道第三方的... 阅读全文
posted @ 2010-03-10 00:46 明年我18 阅读(2132) 评论(4) 推荐(0) 编辑
摘要:在前面的文章中,我们在向导的帮助下创建了一些小的VSPackages。在第五讲中我们整理了VSX的一些思路和概念,深入了解了packages是如何工作的以及服务的机制。在这篇文章中我们继续前进。 为了创建创建“容易编写和理解”的代码,从本文开始,我们开始创建一个工具集示例Package。我计划用至少如下三个主题来讨论: 序幕:创建示例package的第一部分,它是这个工具集... 阅读全文
posted @ 2010-03-08 23:52 明年我18 阅读(3483) 评论(15) 推荐(0) 编辑