今天升级到VS 2008,在写代码时想做一些重构(refactor)的操作,却发现VS的重构没有提供提取常量(extract constant)的功能。查找了一下,找到了这个著名的第三方重构插件:Refactor!™ Pro
支持的重构
| Add AssociatedControlID Attribute | Add Block Delimiters | Add End Tag | |||
| Add Parameter | Add RunAt Attribute | Add to Interface | |||
| Add Validator | Boolean to Enum | Break Apart Arguments | |||
| Break Apart Parameters | Case to Conditional | Change Tag | |||
| Collapse Accessors | Combine Conditionals | Compress to Lambda Expression | |||
| Compress to Null Coalescing Operation | Compress to Ternary Expression | Conditional to Case | |||
| Consolidate Using Statements | Convert to Auto-implemented Property | Convert to Auto-implemented Property (convert all) | |||
| Convert to Built-in Type | Convert to Create & Set | Convert to HEX | |||
| Convert to Initializer | Convert to IsNothing | Convert to Named Color | |||
| Convert to Pixels | Convert to Points | Convert to RGB | |||
| Convert to Skin | Convert to System Type | Create Backing Store | |||
| Create Method Contract | Create Method Stub | Create Multi-variable Declaration | |||
| Create Overload | Create Setter Method | Create With Statement | |||
| Decompose Parameter | Encapsulate Downcast | Encapsulate Field | |||
| Expand Accessors | Expand Lambda Expression | Expand Null Coalescing Operation | |||
| Expand Ternary Expression | Extract ContentPlaceHolder | Extract ContentPlaceHolder (Create Master) | |||
| Extract Function (outside of class) | Extract Interface | Extract Method | |||
| Extract Property | Extract Script | Extract String to Resource | |||
| Extract Style (Class) | Extract Style (id) | Extract to User Control | |||
| Extract to XAML Resource | Extract to XAML Resource (replace all) | Extract XML Literal to Resource | |||
| Flatten Conditional | For to ForEach | ForEach to For | |||
| Inline Alias | Inline Constant | Inline Delegate | |||
| Inline Format Item | Inline Macro | Inline Recent Assignment | |||
| Inline Result | Inline Temp | Inline With Statement | |||
| Introduce Alias | Introduce Alias (replace all) | Introduce Constant | |||
| Introduce ForEach Action | Introduce Format Item | Introduce Local | |||
| Introduce Local (replace all) | Introduce Parameter Object | Introduce Result Variable | |||
| Introduce Setter Guard Clause | Introduce Using Statement | Line-up Arguments | |||
| Line-up Parameters | Lock to Try/Finally | Make Explicit | |||
| Make Explicit (and Name Anonymous Type) | Make Id Unique | Make Implicit | |||
| Make Method Static | Merge Styles | Method to Property | |||
| Move Declaration Near Reference | Move Initialization to Declaration | Move Method to Header | |||
| Move Method to Source File | Move Style Attributes to CSS | Move Style Attributes to External CSS | |||
| Move Style Attributes to Theme | Move Style Attributes to Theme (use SkinId) | Move to Code-behind | |||
| Move Type to File | Move Type to Namespace | Name Anonymous Method | |||
| Name Anonymous Type | Optimize Namespace References | Promote to Parameter | |||
| Property to Method | Reduce Visibility | Remove Assignments to Parameters | |||
| Remove Attribute | Remove Block Delimiters | Remove Empty Handler | |||
| Remove End Tag | Remove Parameter | Remove Private Setter | |||
| Remove Redundant Assignment | Remove Redundant Conditional | Remove Setter Guard Clause | |||
| Remove Tag | Remove Type Qualifier | Remove Type Qualifier (replace all) | |||
| Rename | Rename File to Match Type | Rename Type to Match File | |||
| Reorder Attributes | Reorder Parameters | Replace Temp with Query | |||
| Replace with Alias | Replace with Constant | Replace with Local | |||
| Replace with XAML Resource | Reverse Conditional | Safe Rename | |||
| Set CssClass | Simplify Expression | Split Conditional | |||
| Split Initialization from Declaration | Split Multi-variable Declaration | Split Style | |||
| Split Temporary Variable | Split With Statement | Surround with Tag | |||
| Surround with Update Panel | Toggle ViewState | Use Const (C++ only) | |||
| Use IsNullOrEmpty | Use String.Compare | Use String.Format | |||
| Use StringBuilder | Use typedef (C++ only) | Using to Try/Finally | |||
| Widen Scope (promote constant) | Widen Scope (promote to field) |
博客园老李早有介绍:http://www.cnblogs.com/Terrylee/archive/2007/02/07/free_refactoring_tools_for_aspnet.html
其它参考文档:Free refactoring tools for ASP.NET code in Visual Studio 2005
试用版下载:
http://www.devexpress.com/Downloads/Visual_Studio_Add-in/Refactoring/