用Visual Studio 2005创建宏代码生成器

目前的软件并不是自动生成的,但是我们都知道软件将会一代代地发展下去。那么,为什么我们不努力于自动生成的软件?为什么不努力于创造能够一代代自动生长或发展使用的软件而却致力于改变现有的?目前我们所拥有的哪些技术能够支持生成的软件而遗忘了哪些技术呢?对这些问题的回答可能还不存在,但是VS 2005中已经具有一些能力来支持生成的代码了。

在Visual Studio 2005中,你可以使用宏来为你书写代码。这些宏代码生成器并不是随便生成的,而你也不必凭想象和发明来构划要写什么样的宏。两个独立但仍有联系的研究领域-设计模式和重构-明确地提供了许多的选择用于书写易理解的,具有良好文档的代码生成器(代码生成与生成的代码并不是一回事,这是在使用宏引擎时所必须要理解的)。本文将向你展示怎样使用Visual Studio 2005中的宏引擎创建一个代码生成器来为VB.NET实现重构封装字段。

二、重构:封装字段

重构是一个为提高代码实现质量的定义过程。具体地说,重构是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。在最简单意义上,重构从代码中提取了一些主观性。作为软件工程师,我们不必再依赖于舆论和意志力来判断编码是好的还是不好的;我们能运用一个客观的标准并同意重构的代码优于非重构的代码。

就象设计模式一样,重构是命名的代码模式,带有充分的描述,指令,要想达到的结果。任何一个程序员,不管是否有开发经验,都能读取相应的描述,并象遵循医生的处方一样使用预先确定的指令,并取得可以预料的进步。

一个重构的例子称作封装字段。封装字段意指,使字段名成为私有的并通过公共的属性方法来限制到这些字段的存取。限制到一对象的状态的存取优于无限制的存取,封装字段正是基于相信对数据的限制存取所具有的价值(有些人可能还不同意基本的前提-有约束的存取优于自由的存取-而有些人还认为基于对象进行设计并没有多少好处,更不用争论重构是良性的还是非良性的问题了。不过,本文假定是良性的重构)。

三、实现宏

如果你正处于Visual Studio 2005的一个C#工程上下文中,那么一定会存在一个重构菜单。而在VB.NET工程上下文中,是不存在这样的菜单的(至少到目前发行的beta 2版本中是如此)。然而,你能容易地为VB.NET仿效这种支持的行为-例如通过书写一个轻量级的代码生成器来实现封装字段(或其它重构)。

为了实现封装字段,自动化下列步骤:

1. 选择一个字段,不需要一个一致的属性方法。

2. 把字段的存取修饰词改成private。

3. 稍微改变一下该字段名以避免属性冲突(使用任何你喜欢的习惯)。

4. 生成getter/setter属性方法以及一些代码已提供对该字段的存取。

提示:开始用宏进行工作的一个好办法是打开宏记录器,完成一项任务,进而分析在集成开发环境中生成了哪些宏语句。然后,再进一步归纳录制下的宏。

时间: 2024-09-30 16:22:32

用Visual Studio 2005创建宏代码生成器的相关文章

在Visual Studio 2005和ASP.NET 2.0中使用强类型数据存取

asp.net|visual|数据 "Never put off until run time what can be done at compile time."David Gries, Compiler Construction for Digital Computers Introduction 作为程序员,我们在学习一些新技术的时候,范例有时候会是我们最大的敌人.指南通常被设计成简单易懂,但同时里面的懒惰.无效率的甚至是危险的代码编写会增多.像这种情况最普遍存在的就是在ADO.

如何在Microsoft Visual Studio 2005中创建控制台应用程序

在 Visual Studio 2005 中创建控制台应用程序 在 Visual Studio 2005 中的"文件" 菜单上,指向"新建" 并单击"项目". 在"新建项目" 对话框中,选择一种语言,然后在"项目类型" 框中选择"Windows". 在"模板" 框中,选择"控制台应用程序" . 在"位置" 框中,键入指向应用程序

Visual Studio 2005/2008的代码段编辑器

代码段(Snippet)是可以从键盘上快速访问的代码模版.它不是代码生成器,而是一些面向常用编码模式的快捷方式.它支持字段链接,因此,当修改某一处参数名称的时候就会同时更新整个代码块.另外,代码段还会自动添加项目引用和(命名空间)声明. 除去作为提高生产力的帮手外,在Visual Basic中它还充当培训工具的作用,其中包括简单如创建一个属性.一个异常类到复杂如通过串口播叫电话的一些列任务等.如果需要看到VB代码段的完整列表,需要敲"?-tab".(虽然C#也支持代码段,但内置的任务类

Visual Studio 2005 IDE的使用技巧和窍门

将双手保持在键盘上 我最喜欢使用的键盘快捷方式 您可曾有过这样的期望:在 Visual Studio 内部进行开发工作时双手不必离开键盘?如果您是一名高级用户,您肯定会享受到使用键盘快捷方式执行各种操作所带给您的飞速体验.我确信大部分开发人员都已经熟悉了其中的某些快捷方式.使用 F5 执行 Debug.Start.F10 执行 Debug.StepOver.F4 执行 View.Properties,等等.不过仍有其他几个不太为人所知但极其实用的键盘快捷方式.在下表中,我列出了自己最喜欢使用的一

asp.net夜话之四:Visual Studio 2005中容易被忽略的技巧

在今天我主要要介绍的有如下知识点: Visual Studio 2005网站开发环境 任务管理器 配置外部工具 代码段管理器 发布网站 之所以要单独用一篇文章来介绍Visual Studio 2005这个集成开发环境,是因为在做企业培训的时候,发现很多程序员仅仅用了一些基本功能,这个好像也符合软件界一个"20%和80%法则",就是80%的用户只用到了软件的20%的功能.确实有时候利用基本功能就足以进行开发了,但是有些功能能够方便我们的开发,有些能提高我们的开发速度,所以我觉得这些计较值

Visual Studio 2005 集成开发环境

Visual Studio 2005 集成开发环境   作者:ChinaBang时间:2005-04-10Blog: blog.csdn.net/shuaihj                 摘要:IDE增强     内容: Microsoft Visual Studio 2005 包含许多对开发环境新的增强.创新和提高,其目的在于使 Visual  .NET 开发人员比以往更加高效.本章探讨其中的一些功能,并且阐述开发人员如何使用它们以更快.更准确地编写代码. 提示除其他对 IDE 的"改进

【转】Visual Studio 2005不能调试的错误

运行Microsoft Visual Studio 2005出现如下情况: 无法在web服务器上启动调试.调试器未在web服务器计算机上注册.web服务器上必须安装visual studio或者远程调试器组件? 解决方法:重新注册一下msdbg2.dll这个文件就可以了,具体操作如下:在开始------->运行regsvr32 "C:\Program Files\Common Files\Microsoft Shared\VS7Debug\msdbg2.dll"就可以了. 访问I

Chrome Visual Studio 2005下的编译过程_C#教程

编译篇 研究Chrome ,首先得把它编译出来,这对于后续的代码分析和阅读有很大的帮助,想想自己编译出一个 Chrome 浏览器来使用,那是一件很炫的事情. 编译环境准备 Chrome的编译和 WebKit 相比起来,难度上来说,简直是一元二次方程求解和偏微分方程求解的对比(我到现在还没有完整的把 WebKit 编译出来,鄙视一下自己).虽然 Chrome 也是从 WebKit 演进过来,差不多也就是把 WebKit 的 JS 引擎替换成了 V8 .但是不得不承认 Google 把 WebKit

Visual Studio 2005 XviD编译过程

这几天做一个BMP2AVI的转换器,要用到XviD Codec的编码器,使用过程中,发现有一个Status窗口弹出来,压缩过程奇慢GraphEdit里的结构如下:PushSourceBitmapSetFilter -> XviD MPEG-4 Codec -> AVI Mux -> FileWriter并且关闭GraphEdit的时候,关闭不了程序,程序失去响应,怀疑是因为Status窗口造成的,google上搜索了一下,发现需要修改XviD的源代码来去掉这个东西.参见http://to