<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://community.submain.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SubMain Community</title><link>http://community.submain.com/blogs/default.aspx</link><description>A Support Community for &lt;A href="http://submain.com"&gt;SubMain&lt;/A&gt; Products</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>How to submit CodeIt.Right Log file to SubMain support</title><link>http://community.submain.com/blogs/howto/archive/2008/06/21/how-to-submit-codeit-right-log-file-to-submain-support.aspx</link><pubDate>Sun, 22 Jun 2008 05:43:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:560</guid><dc:creator>Serge B.</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;CodeIt.Right Log file contains detailed debug information that allows us to troubleshoot most every issue on you experience with the product.&lt;/p&gt;
&lt;p&gt;These are the steps to email the log file to us:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Visual Studio &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;In the menu bar, click &lt;strong&gt;CodeIt.Right&lt;/strong&gt;, then click &lt;strong&gt;Help &amp;amp; Support&lt;/strong&gt;, and then click &lt;strong&gt;Email Log File&lt;br /&gt;&lt;br /&gt;&lt;img border="0" src="http://community.submain.com/photos/howto/images/559/original.aspx" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Attach file from the location in the email body - in the screenshot above is &amp;quot;&lt;span style="background-color:#ffff99;"&gt;C:\Users\sergeb\Documents\SubMain\CodeIt.Right for VS2008\CodeIt.Right.log&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;Send&lt;/strong&gt; to email the attached file to us.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=560" width="1" height="1"&gt;</description></item><item><title>PADNUG CodeIt.Right Presentation Slides</title><link>http://community.submain.com/blogs/submain/archive/2008/05/12/padnug-codeit-right-presentation-slides.aspx</link><pubDate>Tue, 13 May 2008 01:13:19 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:536</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky As I mentioned earlier I presented CodeIt.Right in Portland at PADNUG last week. I had great time, thank you all guys and girls - you are wonderful and very friendly audience! I'm glad I got to know better some of you during the "informal" meeting at Gustav's after the presentation. Few of you asked if the slides will be available, so I'm published PDF version of the slides on our community page - PADNUG CodeIt.Right Presentation Slides . If you need the PPT version - just drop...(&lt;a href="http://community.submain.com/blogs/submain/archive/2008/05/12/padnug-codeit-right-presentation-slides.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=536" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/General/default.aspx">General</category></item><item><title>Upcoming updates, tutorials and PADNUG presentation</title><link>http://community.submain.com/blogs/submain/archive/2008/05/02/upcoming-updates-tutorials-and-padnug-presentation.aspx</link><pubDate>Sat, 03 May 2008 00:16:56 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:517</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky v1.1 progress &amp;amp; Enterprise Edition The v1.1 release that includes .NET 3.5 syntax has been slightly delayed. There are two reasons for that - we had too much fun at the MVP Summit mid-April and we made few significant changes to the parsing and refactoring engines to support the 3.5 syntax. The coding part is done, we cover all of the .NET 3.5 now. And we are going through a major testing phase as the base application layer responsible for all .NET versions was affected. We...(&lt;a href="http://community.submain.com/blogs/submain/archive/2008/05/02/upcoming-updates-tutorials-and-padnug-presentation.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=517" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/NET/default.aspx">NET</category><category domain="http://community.submain.com/blogs/submain/archive/tags/.NET/default.aspx">.NET</category><category domain="http://community.submain.com/blogs/submain/archive/tags/General/default.aspx">General</category></item><item><title>CodeIt.Right Rule Update 20080412</title><link>http://community.submain.com/blogs/submain/archive/2008/04/12/codeit-right-rule-update-20080412.aspx</link><pubDate>Sat, 12 Apr 2008 19:59:05 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:506</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky This CodeIt.Right rule update includes fixes as well as 3 new security rules. New rules: Do not declare read only mutable reference types ( Security ) Seal methods that satisfy private interfaces ( Security ) Secure GetObjectData overrides ( Security ) These rules are included with the default profile and you will only need to follow the wizard to merge them into your custom profiles. Fixes: Rule "Do not override operator equals on reference types" incorrectly triggered violation...(&lt;a href="http://community.submain.com/blogs/submain/archive/2008/04/12/codeit-right-rule-update-20080412.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=506" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category></item><item><title>CodeItRight.Cmd.exe Command Line Options</title><link>http://community.submain.com/blogs/tutorials/archive/2008/03/23/codeitright-cmd-exe-command-line-parameters.aspx</link><pubDate>Mon, 24 Mar 2008 05:11:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:484</guid><dc:creator>Serge B.</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;CodeItRight.Cmd is the command-line companion to the CodeIt.Right application. Like CodeIt.Right, CodeItRight.Cmd analyzes source code and reports violations, such as possible design, performance, and security issues. CodeItRight.Cmd can be used as a stand-alone tool or added to automated build processes.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The following are the&amp;nbsp;command line parameters&amp;nbsp;that are supported by&amp;nbsp;SubMain.CodeItRight.Cmd.exe ;&amp;nbsp;Parameter values are not case sensitive.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;/Solution&lt;/strong&gt;&amp;nbsp; - (&lt;strong&gt;Required*&lt;/strong&gt;) - full file name of the solution to load (*.sln file) (*) This parameter is not required if &lt;strong&gt;/Project&lt;/strong&gt; parameter specified.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;/Project&lt;/strong&gt;&amp;nbsp;&amp;nbsp; - (&lt;strong&gt;Required*&lt;/strong&gt;) - full file name of the&amp;nbsp;project to load (*.csproj or *.vbproj file) (*) This parameter is not required if &lt;strong&gt;/Solution&lt;/strong&gt; parameter specified.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;/Out&lt;/strong&gt;&amp;nbsp; - (&lt;strong&gt;Required&lt;/strong&gt;) - full name of the xml report output file.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;/OutXSL&lt;/strong&gt;&amp;nbsp; - (Optional) - full name of the xsl file to override the default xsl.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;/CRData&amp;nbsp;&lt;/strong&gt; - (Optional) - full name of the CodeIt.Right .crdata file. When specified, CodeItRight.Cmd will use the exclusion list (violations, rules and files) saved using the Visual Studio version of CodeIt.Right.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;/Profile&lt;/strong&gt;&amp;nbsp; - (Optional) - name of the User Profile that defines active rule set&amp;nbsp;for&amp;nbsp;the analysis.&amp;nbsp;When omitted, the buil-in profile&amp;nbsp;is used.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;/Quiet&lt;/strong&gt; - (Optional) - disables console output.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;/Help&lt;/strong&gt;&amp;nbsp; -&amp;nbsp;display&amp;nbsp;list of&amp;nbsp;command line parameters.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;font face="courier new,courier"&gt;SubMain.CodeItRight.Cmd.exe /Solution:&amp;quot;C:\MyProjects\MyProject\MyProject.sln&amp;quot; &lt;br /&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;/Out:&amp;quot;C:\MyProjects\MyProject\MyProject.CIR.Output.xml&amp;quot; &lt;br /&gt;/CRData:&amp;quot;C:\MyProjects\MyProject\MyProject.crdata&amp;quot; /Profile:&amp;quot;My Profile&amp;quot;&lt;/font&gt;&lt;/blockquote&gt;&lt;h4&gt;CodeItRight.Cmd Error Codes&lt;/h4&gt;&lt;blockquote&gt;&lt;table cellpadding="3" cellspacing="1"&gt;&lt;tr&gt;&lt;td&gt;0x0&lt;/td&gt;&lt;td&gt;No errors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x1&lt;/td&gt;&lt;td&gt;Command Line Switch Error&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x2&lt;/td&gt;&lt;td&gt;Command Line Argument Error&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x4&lt;/td&gt;&lt;td&gt;Initialization Error&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x8&lt;/td&gt;&lt;td&gt;Analysis Error&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x10&lt;/td&gt;&lt;td&gt;Output Error&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0x20&lt;/td&gt;&lt;td&gt;Unknown Error&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/blockquote&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=484" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/tutorials/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/Command+Line/default.aspx">Command Line</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/Continuous+Integration/default.aspx">Continuous Integration</category></item><item><title>CodeIt.Right v1.0.08035 CodeItRight.Cmd.exe Refresh</title><link>http://community.submain.com/blogs/submain/archive/2008/03/23/codeit-right-v1-0-08035-codeitright-cmd-exe-refresh.aspx</link><pubDate>Sun, 23 Mar 2008 09:00:44 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:491</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky Since the v1.0 release a number of improvements were requested for use CodeIt.Right in an automated build process and we are making a refresh for CodeItRight.Cmd.exe available today. This version of CodeItRight.Cmd will be included as part of the v1.1 release which additionally will ship with ready to use tasks for MSBuild and NAnt. See CodeItRight.Cmd.exe Command Line Options for complete list of the console version command line switches and error codes. Important: This copy...(&lt;a href="http://community.submain.com/blogs/submain/archive/2008/03/23/codeit-right-v1-0-08035-codeitright-cmd-exe-refresh.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=491" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category></item><item><title>Tutorial: Creating Custom Rules</title><link>http://community.submain.com/blogs/tutorials/archive/2008/03/16/tutorial-creating-custom-rules.aspx</link><pubDate>Sun, 16 Mar 2008 23:17:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:469</guid><dc:creator>Serge B.</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;The best part about CodeIt.Right is that you are not limited to just the rule libraries included into the box. You can easily define your own (custom) rules. What makes this possible is the &amp;quot;CodeIt.Right SDK&amp;quot;. The SDK documentation is available online at &lt;a href="http://submain.com/codeit.right/sdk/"&gt;http://submain.com/codeit.right/sdk/&lt;/a&gt; as well as locally as part of your CodeIt.Right help file.&lt;/p&gt;&lt;p&gt;In this tutorial we will create &amp;quot;Use Certain Suffixes For Derived Types&amp;quot; rule. We will &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Create Custom Rule Template using Wizard that CodeIt.Right adds to Visual Studio&lt;/li&gt;&lt;li&gt;Implement set of methods and properties that will find and correct violations of the rule&lt;/li&gt;&lt;li&gt;Define Configurable Properties for the rule, so the users will be able to create instances of the rule and tweak it to their needs&lt;/li&gt;&lt;li&gt;Deploy the new rule&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Create Custom Rule Template Using Wizard&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Open Visual Studio&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the menu bar, click &lt;strong&gt;File&lt;/strong&gt;, and then click &lt;strong&gt;New Project&lt;/strong&gt; &lt;p&gt;&lt;img border="0" height="197" src="http://community.submain.com/photos/tutorials/images/470/original.aspx" width="358" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;In the &lt;strong&gt;New Project&lt;/strong&gt; dialog box, in the &lt;strong&gt;Project Types&lt;/strong&gt; pane, select &lt;strong&gt;CodeIt.Right Projects&lt;/strong&gt; if that option is not already selected. &lt;p&gt;&lt;img border="0" height="495" src="http://community.submain.com/photos/tutorials/images/471/original.aspx" width="681" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;In the &lt;strong&gt;Templates&lt;/strong&gt; pane, select the template for the appropriate programming language (Visual Basic or Visual C#). The custom rule in the examples uses Visual Basic.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Complete the &lt;strong&gt;Name&lt;/strong&gt;, &lt;strong&gt;Location&lt;/strong&gt;, and &lt;strong&gt;Solution&lt;/strong&gt; fields for the custom rule. &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt;. The &lt;strong&gt;New Rule Wizard&lt;/strong&gt; dialog box appears.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the &lt;strong&gt;New Rule Wizard&lt;/strong&gt; dialog box, complete as many of the fields as possible. Fields that have a red asterisk to the right are required. Click &lt;strong&gt;Next&lt;/strong&gt;. &lt;p&gt;&lt;img border="0" height="460" src="http://community.submain.com/photos/tutorials/images/473/original.aspx" width="626" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Select the options to determine the scope for the custom rule. To select or deselect all the options, select &lt;strong&gt;All&lt;/strong&gt;. Click &lt;strong&gt;Next&lt;/strong&gt;. &lt;p&gt;&lt;img border="0" height="460" src="http://community.submain.com/photos/tutorials/images/474/original.aspx" width="626" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Select the targets for the custom rule. When done, click &lt;strong&gt;Finish&lt;/strong&gt;. &lt;p&gt;&lt;img border="0" height="460" src="http://community.submain.com/photos/tutorials/images/475/original.aspx" width="626" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The status bar at the bottom of the Visual Studio window displays the progress of the creation of the custom rule.&lt;/p&gt;&lt;h4&gt;Edit the Generated Template&lt;/h4&gt;&lt;p&gt;After a custom rule template is created, you can edit it in the &lt;strong&gt;Solution Explorer&lt;/strong&gt;. You can edit template information, the content generated by the &lt;strong&gt;New Rule Wizard&lt;/strong&gt;, and implement code of the &lt;strong&gt;Check&lt;/strong&gt; and &lt;strong&gt;Correct&lt;/strong&gt; methods.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Double-click the rule in Soultion Explorer to edit it. The generated regions of the rule are collapsed by default. &lt;p&gt;&lt;a href="http://community.submain.com/photos/tutorials/picture477.aspx" target="_blank"&gt;&lt;/a&gt;&lt;img border="0" height="389" src="http://community.submain.com/photos/tutorials/images/477/original.aspx" width="491" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Expand the &lt;strong&gt;Wizard Generated Code&lt;/strong&gt; region to review the code generated based on options selected in the &lt;strong&gt;New Rule Wizard&lt;/strong&gt;. You can edit the options&amp;nbsp;if necessary. Note that the rule&amp;#39;s ID is automatically generated GUID - you can edit it as well but &lt;em&gt;make sure your ID is not equal to any of the built-in CodeIt.Right rules&lt;/em&gt; or even better your rule ID doesn&amp;#39;t follow CodeIt.Right internal ID schema. &lt;br /&gt;&lt;br /&gt;&lt;table cellspacing="0" class="irisContainer" style="border-collapse:collapse;border-spacing:0pt;"&gt;&lt;tr&gt;&lt;td style="margin:0pt;padding:0pt;"&gt;&lt;/td&gt;&lt;td class="highlighted output" rowspan="2"&gt;&lt;pre class="vb highlighted"&gt;&lt;span class="normal"&gt;&lt;span class="type"&gt;#&lt;/span&gt;Region &lt;span class="string"&gt;&amp;quot;Wizard Generated Code&amp;quot;&lt;/span&gt;

&lt;span class="type"&gt;#&lt;/span&gt;Region &lt;span class="string"&gt;&amp;quot;Data Entered On Wizard form&amp;quot;&lt;/span&gt;

    &lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="statement"&gt;Const&lt;/span&gt; InputID &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="string"&gt;&amp;quot;0500daf7-f2a0-4549-b90e-bd8f6d515bb5&amp;quot;&lt;/span&gt;
    &lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="statement"&gt;Const&lt;/span&gt; InputName &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="string"&gt;&amp;quot;UseCertainSuffixesForDerivedTypes&amp;quot;&lt;/span&gt;
    &lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="statement"&gt;Const&lt;/span&gt; InputTitle &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="string"&gt;&amp;quot;Use Certain Suffixes For Derived Types&amp;quot;&lt;/span&gt;
    &lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="statement"&gt;Const&lt;/span&gt; InputSeverity &lt;span class="statement"&gt;As&lt;/span&gt; SeverityLevel &lt;span class="operator"&gt;=&lt;/span&gt; SeverityLevel&lt;span class="operator"&gt;.&lt;/span&gt;Warning
    &lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="statement"&gt;Const&lt;/span&gt; InputScopes &lt;span class="statement"&gt;As&lt;/span&gt; RuleScopes &lt;span class="operator"&gt;= _&lt;/span&gt;
      RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;&lt;span class="statement"&gt;Public&lt;/span&gt; &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;ProtectedInternal &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;&lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;Abstract &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;Sealed&lt;span class="operator"&gt; _&lt;/span&gt;
      &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;Readonly &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;Virtual &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;Override &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;Extern &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;Unsafe&lt;span class="operator"&gt; _&lt;/span&gt;
      &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;SpecialName &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;&lt;span class="statement"&gt;Const&lt;/span&gt; &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;Volatile &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;WriteOnly&lt;span class="operator"&gt; _&lt;/span&gt;
      &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;&lt;span class="statement"&gt;WithEvents&lt;/span&gt; &lt;span class="operator"&gt;or&lt;/span&gt; RuleScopes&lt;span class="operator"&gt;.&lt;/span&gt;Default
    &lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="statement"&gt;Const&lt;/span&gt; InputAuthor &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="string"&gt;&amp;quot;SubMain Team&amp;quot;&lt;/span&gt;
    &lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="statement"&gt;Const&lt;/span&gt; InputEmail &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="string"&gt;&amp;quot;support@submain.com&amp;quot;&lt;/span&gt;
    &lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="statement"&gt;Const&lt;/span&gt; InputUrl &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="string"&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="statement"&gt;Const&lt;/span&gt; InputAvailableTargets &lt;span class="statement"&gt;As&lt;/span&gt; RuleTargets &lt;span class="operator"&gt;=&lt;/span&gt; RuleTargets&lt;span class="operator"&gt;.&lt;/span&gt;Class
    &lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="statement"&gt;Const&lt;/span&gt; InputViolationDescription &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="string"&gt;&amp;quot;&amp;quot;&lt;/span&gt;

&lt;span class="type"&gt;#&lt;/span&gt;&lt;span class="statement"&gt;End&lt;/span&gt; Region

&lt;span class="type"&gt;#&lt;/span&gt;Region &lt;span class="string"&gt;&amp;quot;Constructor&amp;quot;&lt;/span&gt;

    &lt;span class="statement"&gt;Public&lt;/span&gt; &lt;span class="statement"&gt;Sub&lt;/span&gt; &lt;span class="statement"&gt;New&lt;/span&gt;&lt;span class="operator"&gt;()&lt;/span&gt;
        &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;&lt;span class="statement"&gt;Name&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; InputName
        &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;Title &lt;span class="operator"&gt;=&lt;/span&gt; InputTitle
        &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;Severity &lt;span class="operator"&gt;=&lt;/span&gt; InputSeverity
        &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;Targets &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;AvailableTargets
        &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;Scopes &lt;span class="operator"&gt;=&lt;/span&gt; InputScopes
    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Sub&lt;/span&gt;

&lt;span class="type"&gt;#&lt;/span&gt;&lt;span class="statement"&gt;End&lt;/span&gt; Region

    &lt;span class="statement"&gt;Public&lt;/span&gt; Overrides ReadOnly &lt;span class="statement"&gt;Property&lt;/span&gt; ID &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;
        &lt;span class="statement"&gt;Get&lt;/span&gt;
            &lt;span class="statement"&gt;Return&lt;/span&gt; InputID
        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Get&lt;/span&gt;
    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Property&lt;/span&gt;

    &lt;span class="statement"&gt;Public&lt;/span&gt; Overrides ReadOnly &lt;span class="statement"&gt;Property&lt;/span&gt; AvailableTargets &lt;span class="statement"&gt;As&lt;/span&gt; RuleTargets
        &lt;span class="statement"&gt;Get&lt;/span&gt;
            &lt;span class="statement"&gt;Return&lt;/span&gt; InputAvailableTargets
        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Get&lt;/span&gt;
    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Property&lt;/span&gt;

    &lt;span class="statement"&gt;Public&lt;/span&gt; Overrides ReadOnly &lt;span class="statement"&gt;Property&lt;/span&gt; Author &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;
        &lt;span class="statement"&gt;Get&lt;/span&gt;
            &lt;span class="statement"&gt;Return&lt;/span&gt; InputAuthor
        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Get&lt;/span&gt;
    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Property&lt;/span&gt;

    &lt;span class="statement"&gt;Public&lt;/span&gt; Overrides ReadOnly &lt;span class="statement"&gt;Property&lt;/span&gt; Email &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;
        &lt;span class="statement"&gt;Get&lt;/span&gt;
            &lt;span class="statement"&gt;Return&lt;/span&gt; InputEmail
        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Get&lt;/span&gt;
    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Property&lt;/span&gt;

    &lt;span class="statement"&gt;Public&lt;/span&gt; Overrides ReadOnly &lt;span class="statement"&gt;Property&lt;/span&gt; Url &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;
        &lt;span class="statement"&gt;Get&lt;/span&gt;
            &lt;span class="statement"&gt;Return&lt;/span&gt; InputUrl
        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Get&lt;/span&gt;
    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Property&lt;/span&gt;

    &lt;span class="statement"&gt;Public&lt;/span&gt; Overrides ReadOnly &lt;span class="statement"&gt;Property&lt;/span&gt; ViolationDescription &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;
        &lt;span class="statement"&gt;Get&lt;/span&gt;
            &lt;span class="statement"&gt;Return&lt;/span&gt; InputViolationDescription
        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Get&lt;/span&gt;
    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Property&lt;/span&gt;

    &lt;span class="statement"&gt;Public&lt;/span&gt; Overloads &lt;span class="statement"&gt;Function&lt;/span&gt; Correct&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="statement"&gt;ByVal&lt;/span&gt; correctionOptionIndex &lt;span class="statement"&gt;as&lt;/span&gt; &lt;span class="type"&gt;Integer&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt; &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;Boolean&lt;/span&gt;
        MyBase&lt;span class="operator"&gt;.&lt;/span&gt;Correct&lt;span class="operator"&gt;(&lt;/span&gt;correctionOptionIndex&lt;span class="operator"&gt;)&lt;/span&gt;

        &lt;span class="conditional"&gt;Select&lt;/span&gt; &lt;span class="conditional"&gt;Case&lt;/span&gt; correctionOptionIndex

            &lt;span class="conditional"&gt;Case&lt;/span&gt; &lt;span class="conditional"&gt;Else&lt;/span&gt;
        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="conditional"&gt;Select&lt;/span&gt;

        &lt;span class="statement"&gt;Return&lt;/span&gt; &lt;span class="boolean"&gt;False&lt;/span&gt;
    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Function&lt;/span&gt;

&lt;span class="type"&gt;#&lt;/span&gt;&lt;span class="statement"&gt;End&lt;/span&gt; Region
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="output lineNumbers"&gt;&lt;pre class="lineNumbers"&gt;&lt;span class="lineNumbers"&gt;1
2
3
4
5
6
7
8
9
&lt;span class="nthLineNumber"&gt;10&lt;/span&gt;
11
12
13
14
15
16
17
18
19
&lt;span class="nthLineNumber"&gt;20&lt;/span&gt;
21
22
23
24
25
26
27
28
29
&lt;span class="nthLineNumber"&gt;30&lt;/span&gt;
31
32
33
34
35
36
37
38
39
&lt;span class="nthLineNumber"&gt;40&lt;/span&gt;
41
42
43
44
45
46
47
48
49
&lt;span class="nthLineNumber"&gt;50&lt;/span&gt;
51
52
53
54
55
56
57
58
59
&lt;span class="nthLineNumber"&gt;60&lt;/span&gt;
61
62
63
64
65
66
67
68
69
&lt;span class="nthLineNumber"&gt;70&lt;/span&gt;
71
72
73
74
75
76
77
78
79
&lt;span class="nthLineNumber"&gt;80&lt;/span&gt;
81
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the &lt;strong&gt;Template to be populated by rule author&lt;/strong&gt; region, edit the &lt;strong&gt;AutoCorrectionOptions&lt;/strong&gt; property to establish all the options for automatic correction of violations to the rule. Each option is added to the drop-down list in the &lt;strong&gt;Action&lt;/strong&gt; column when code is analyzed. The &lt;strong&gt;GetCorrect0Name&lt;/strong&gt; will be implemented in the next bullet. &lt;br /&gt;&lt;br /&gt;&lt;table cellspacing="0" class="irisContainer" style="border-collapse:collapse;border-spacing:0;"&gt;&lt;tr&gt;&lt;td style="margin:0px;padding:0px;"&gt;&lt;/td&gt;&lt;td class="highlighted output" rowspan="2"&gt;&lt;pre class="vb highlighted"&gt;&lt;span class="normal"&gt;&lt;span class="statement"&gt;Public&lt;/span&gt; Overrides ReadOnly &lt;span class="statement"&gt;Property&lt;/span&gt; AutoCorrectionOptions &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;&lt;span class="operator"&gt;()&lt;/span&gt;

    &lt;span class="statement"&gt;Get&lt;/span&gt;

        &lt;span class="conditional"&gt;If&lt;/span&gt; &lt;span class="operator"&gt;(&lt;/span&gt;MyBase&lt;span class="operator"&gt;.&lt;/span&gt;_userCorrectOptions&lt;span class="operator"&gt;.&lt;/span&gt;&lt;span class="preProc"&gt;Count&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt; &lt;span class="conditional"&gt;Then&lt;/span&gt;

           &lt;span class="comment"&gt; &amp;#39; Get title of the correction option&lt;/span&gt;
            &lt;span class="statement"&gt;Dim&lt;/span&gt; text &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;GetCorrect0Name

            &lt;span class="conditional"&gt;If&lt;/span&gt; &lt;span class="operator"&gt;(&lt;/span&gt;[text]&lt;span class="operator"&gt;.&lt;/span&gt;Length &lt;span class="operator"&gt;&amp;gt;&lt;/span&gt; &lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt; &lt;span class="conditional"&gt;Then&lt;/span&gt;

               &lt;span class="comment"&gt; &amp;#39; Add to the list of available options&lt;/span&gt;
                MyBase&lt;span class="operator"&gt;.&lt;/span&gt;_userCorrectOptions&lt;span class="operator"&gt;.&lt;/span&gt;&lt;span class="preProc"&gt;Add&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;[text]&lt;span class="operator"&gt;)&lt;/span&gt;

            &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="conditional"&gt;If&lt;/span&gt;

        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="conditional"&gt;If&lt;/span&gt;

        &lt;span class="statement"&gt;Return&lt;/span&gt; MyBase&lt;span class="operator"&gt;.&lt;/span&gt;AutoCorrectionOptions

    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Get&lt;/span&gt;

&lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Property&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="output lineNumbers"&gt;&lt;pre class="lineNumbers"&gt;&lt;span class="lineNumbers"&gt;1
2
3
4
5
6
7
8
9
&lt;span class="nthLineNumber"&gt;10&lt;/span&gt;
11
12
13
14
15
16
17
18
19
&lt;span class="nthLineNumber"&gt;20&lt;/span&gt;
21
22
23
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the &lt;strong&gt;Template to be populated by rule author&lt;/strong&gt; region, edit the &lt;strong&gt;Correction&lt;/strong&gt;&amp;nbsp;method to establish how violations to the rule are corrected. In the example below, the correct suffix is added to the code element. The new name is then checked using helper function &lt;a href="http://submain.com/codeit.right/sdk/SubMain.CodeItRight.Sdk.Utils.NamingRuleUtilities.FixForUniqueName.html"&gt;NamingRuleUtilities.FixForUniqueName&lt;/a&gt; to make sure it is unique in the solution. If not, the name is further modified so that it is unique. &lt;strong&gt;SuffixToCheck&lt;/strong&gt; is a configurable property that we will define later in this tutorial. &lt;br /&gt;&lt;br /&gt;&lt;table cellspacing="0" class="irisContainer" style="border-collapse:collapse;border-spacing:0;"&gt;&lt;tr&gt;&lt;td style="margin:0px;padding:0px;"&gt;&lt;/td&gt;&lt;td class="highlighted output" rowspan="2"&gt;&lt;pre class="vb highlighted"&gt;&lt;span class="normal"&gt;&lt;span class="statement"&gt;Private&lt;/span&gt; &lt;span class="statement"&gt;Function&lt;/span&gt; GetCorrect0Name&lt;span class="operator"&gt;()&lt;/span&gt; &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;

    &lt;span class="statement"&gt;Dim&lt;/span&gt; baseName &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;&lt;span class="type"&gt;Empty&lt;/span&gt;

    &lt;span class="conditional"&gt;If&lt;/span&gt; &lt;span class="operator"&gt;(Not&lt;/span&gt; MyBase&lt;span class="operator"&gt;.&lt;/span&gt;Element &lt;span class="statement"&gt;Is&lt;/span&gt; &lt;span class="statement"&gt;Nothing&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt; &lt;span class="conditional"&gt;Then&lt;/span&gt;

        &lt;span class="statement"&gt;Dim&lt;/span&gt; info &lt;span class="statement"&gt;As&lt;/span&gt; ICodeElementInfo &lt;span class="operator"&gt;=&lt;/span&gt; MyBase&lt;span class="operator"&gt;.&lt;/span&gt;Element&lt;span class="operator"&gt;.&lt;/span&gt;ToCodeElementInfo

        &lt;span class="conditional"&gt;If&lt;/span&gt; &lt;span class="operator"&gt;(Not&lt;/span&gt; info &lt;span class="statement"&gt;Is&lt;/span&gt; &lt;span class="statement"&gt;Nothing&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt; &lt;span class="conditional"&gt;Then&lt;/span&gt;

           &lt;span class="comment"&gt; &amp;#39; Get the code element name&lt;/span&gt;
            &lt;span class="statement"&gt;Dim&lt;/span&gt; displayName &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; info&lt;span class="operator"&gt;.&lt;/span&gt;DisplayName

           &lt;span class="comment"&gt; &amp;#39; Add the correct suffix&lt;/span&gt;
            &lt;span class="conditional"&gt;If&lt;/span&gt; &lt;span class="operator"&gt;((Not&lt;/span&gt; &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;SuffixToCheck &lt;span class="statement"&gt;Is&lt;/span&gt; &lt;span class="statement"&gt;Nothing&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt; AndAlso &lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;SuffixToCheck&lt;span class="operator"&gt;.&lt;/span&gt;Length &lt;span class="operator"&gt;&amp;gt;&lt;/span&gt; &lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;))&lt;/span&gt; &lt;span class="conditional"&gt;Then&lt;/span&gt;
                baseName &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="operator"&gt;(&lt;/span&gt;displayName &lt;span class="operator"&gt;&amp;amp;&lt;/span&gt; &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;SuffixToCheck&lt;span class="operator"&gt;)&lt;/span&gt;
            &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="conditional"&gt;If&lt;/span&gt;

        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="conditional"&gt;If&lt;/span&gt;
    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="conditional"&gt;If&lt;/span&gt;

   &lt;span class="comment"&gt; &amp;#39; Make sure the new name is unique&lt;/span&gt;
    &lt;span class="statement"&gt;Return&lt;/span&gt; NamingRuleUtilities&lt;span class="operator"&gt;.&lt;/span&gt;FixForUniqueName&lt;span class="operator"&gt;(&lt;/span&gt;baseName&lt;span class="operator"&gt;,&lt;/span&gt; MyBase&lt;span class="operator"&gt;.&lt;/span&gt;Element&lt;span class="operator"&gt;)&lt;/span&gt;

&lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Function&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="output lineNumbers"&gt;&lt;pre class="lineNumbers"&gt;&lt;span class="lineNumbers"&gt;1
2
3
4
5
6
7
8
9
&lt;span class="nthLineNumber"&gt;10&lt;/span&gt;
11
12
13
14
15
16
17
18
19
&lt;span class="nthLineNumber"&gt;20&lt;/span&gt;
21
22
23
24
25
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the &lt;strong&gt;Template to be populated by rule author&lt;/strong&gt; region, edit the &lt;strong&gt;Check&lt;/strong&gt;&amp;nbsp;method to establish violations to the rule are found. In the example below, each appropriate code element is checked for the correct suffix. If the element does not include the correct suffix, it is flagged as a violation. &lt;strong&gt;MustImplement&lt;/strong&gt; is another configurable property defined later in the tutorial. Method &lt;a href="http://submain.com/codeit.right/sdk/SubMain.CodeItRight.Sdk.Core.Reflection.ITypeInfo.IsAssignableFrom.html"&gt;ITypeInfo.IsAssignableFrom&lt;/a&gt; returns True if the code element derived from the type stored in MustImplement. Helper function &lt;a href="http://submain.com/codeit.right/sdk/SubMain.CodeItRight.Sdk.Utils.NamingRuleUtilities.HasSuffix.html"&gt;NamingRuleUtilities.HasSuffix&lt;/a&gt; returns True is code element has the suffix, False otherwise. &lt;br /&gt;&lt;br /&gt;&lt;table cellspacing="0" class="irisContainer" style="border-collapse:collapse;border-spacing:0;"&gt;&lt;tr&gt;&lt;td style="margin:0px;padding:0px;"&gt;&lt;/td&gt;&lt;td class="highlighted output" rowspan="2"&gt;&lt;pre class="vb highlighted"&gt;&lt;span class="normal"&gt;&lt;span class="statement"&gt;Public&lt;/span&gt; Overrides &lt;span class="statement"&gt;Function&lt;/span&gt; Check&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="statement"&gt;ByVal&lt;/span&gt; element &lt;span class="statement"&gt;As&lt;/span&gt; IElementInfo&lt;span class="operator"&gt;)&lt;/span&gt; &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;Boolean&lt;/span&gt;

    &lt;span class="conditional"&gt;If&lt;/span&gt; &lt;span class="operator"&gt;(Not&lt;/span&gt; element &lt;span class="statement"&gt;Is&lt;/span&gt; &lt;span class="statement"&gt;Nothing&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt; &lt;span class="conditional"&gt;Then&lt;/span&gt;

        &lt;span class="statement"&gt;Dim&lt;/span&gt; info &lt;span class="statement"&gt;As&lt;/span&gt; ICodeElementInfo &lt;span class="operator"&gt;=&lt;/span&gt; element&lt;span class="operator"&gt;.&lt;/span&gt;ToCodeElementInfo

        &lt;span class="conditional"&gt;If&lt;/span&gt; &lt;span class="operator"&gt;(Not&lt;/span&gt; info &lt;span class="statement"&gt;Is&lt;/span&gt; &lt;span class="statement"&gt;Nothing&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt; &lt;span class="conditional"&gt;Then&lt;/span&gt;

           &lt;span class="comment"&gt; &amp;#39; Get the code element name&lt;/span&gt;
            &lt;span class="statement"&gt;Dim&lt;/span&gt; displayName &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt; &lt;span class="operator"&gt;=&lt;/span&gt; info&lt;span class="operator"&gt;.&lt;/span&gt;DisplayName

           &lt;span class="comment"&gt; &amp;#39; If configurable properties SuffixToCheck and MustImplement have values&lt;/span&gt;
            &lt;span class="conditional"&gt;If&lt;/span&gt; &lt;span class="operator"&gt;(((Not&lt;/span&gt; &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;SuffixToCheck &lt;span class="statement"&gt;Is&lt;/span&gt; &lt;span class="statement"&gt;Nothing&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt; AndAlso &lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;SuffixToCheck&lt;span class="operator"&gt;.&lt;/span&gt;Length &lt;span class="operator"&gt;&amp;gt;&lt;/span&gt; &lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;)) _&lt;/span&gt;
               AndAlso &lt;span class="operator"&gt;((Not&lt;/span&gt; &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;MustImplement &lt;span class="statement"&gt;Is&lt;/span&gt; &lt;span class="statement"&gt;Nothing&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt; AndAlso &lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;MustImplement&lt;span class="operator"&gt;.&lt;/span&gt;Length &lt;span class="operator"&gt;&amp;gt;&lt;/span&gt; &lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="operator"&gt;)))&lt;/span&gt; &lt;span class="conditional"&gt;Then&lt;/span&gt;

                &lt;span class="statement"&gt;Dim&lt;/span&gt; info2 &lt;span class="statement"&gt;As&lt;/span&gt; ITypeInfo &lt;span class="operator"&gt;=&lt;/span&gt; TryCast&lt;span class="operator"&gt;(&lt;/span&gt;info&lt;span class="operator"&gt;,&lt;/span&gt; ITypeInfo&lt;span class="operator"&gt;)&lt;/span&gt;

               &lt;span class="comment"&gt; &amp;#39; If element derives from the type (MustImplement) and doesn&amp;#39;t have correct suffix (SuffixToCheck)&lt;/span&gt;
                &lt;span class="conditional"&gt;If&lt;/span&gt; &lt;span class="operator"&gt;(((Not&lt;/span&gt; info2 &lt;span class="statement"&gt;Is&lt;/span&gt; &lt;span class="statement"&gt;Nothing&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt; AndAlso info2&lt;span class="operator"&gt;.&lt;/span&gt;IsAssignableFrom&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;MustImplement&lt;span class="operator"&gt;)) _&lt;/span&gt;
                   AndAlso &lt;span class="operator"&gt;Not&lt;/span&gt; NamingRuleUtilities&lt;span class="operator"&gt;.&lt;/span&gt;HasSuffix&lt;span class="operator"&gt;(&lt;/span&gt;displayName&lt;span class="operator"&gt;,&lt;/span&gt; &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;SuffixToCheck&lt;span class="operator"&gt;))&lt;/span&gt; &lt;span class="conditional"&gt;Then&lt;/span&gt;

                   &lt;span class="comment"&gt; &amp;#39; Flag the violation&lt;/span&gt;
                    &lt;span class="statement"&gt;Return&lt;/span&gt; &lt;span class="boolean"&gt;True&lt;/span&gt;

                &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="conditional"&gt;If&lt;/span&gt;

            &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="conditional"&gt;If&lt;/span&gt;

        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="conditional"&gt;If&lt;/span&gt;

    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="conditional"&gt;If&lt;/span&gt;

    &lt;span class="statement"&gt;Return&lt;/span&gt; &lt;span class="boolean"&gt;False&lt;/span&gt;

&lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Function&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="output lineNumbers"&gt;&lt;pre class="lineNumbers"&gt;&lt;span class="lineNumbers"&gt;1
2
3
4
5
6
7
8
9
&lt;span class="nthLineNumber"&gt;10&lt;/span&gt;
11
12
13
14
15
16
17
18
19
&lt;span class="nthLineNumber"&gt;20&lt;/span&gt;
21
22
23
24
25
26
27
28
29
&lt;span class="nthLineNumber"&gt;30&lt;/span&gt;
31
32
33
34
35
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;Configurable Properties&lt;/h4&gt;&lt;p&gt;Configurable Properties are flexible mechanism that allows to develop rules that can be customized in user profiles (rule instances). They&amp;nbsp;must be&amp;nbsp;marked with attribute &lt;strong&gt;&amp;lt;ConfigurableProperty&amp;gt;&lt;/strong&gt;. &lt;/p&gt;&lt;p&gt;For our rule we need two configurable properties - &lt;/p&gt;&lt;ul&gt;&lt;li&gt;MustImplement - will filter and only run the rest of the rule against code elements that derive from the type assigned in this property&lt;/li&gt;&lt;li&gt;SuffixToCheck - will allow to define for each rule instance suffix to be that the code element derived from MustImplement should have&lt;/li&gt;&lt;br /&gt;&lt;table cellspacing="0" class="irisContainer" style="border-collapse:collapse;border-spacing:0;"&gt;&lt;tr&gt;&lt;td style="margin:0px;padding:0px;"&gt;&lt;/td&gt;&lt;td class="highlighted output" rowspan="2"&gt;&lt;pre class="vb highlighted"&gt;&lt;span class="normal"&gt;&lt;span class="operator"&gt;&amp;lt;&lt;/span&gt;ConfigurableProperty&lt;span class="operator"&gt;,&lt;/span&gt; Description&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Type should implement the specified type or interface&amp;quot;&lt;/span&gt;&lt;span class="operator"&gt;)&amp;gt; _&lt;/span&gt;
    &lt;span class="statement"&gt;Public&lt;/span&gt; &lt;span class="statement"&gt;Property&lt;/span&gt; MustImplement &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;

        &lt;span class="statement"&gt;Get&lt;/span&gt;
            &lt;span class="statement"&gt;Return&lt;/span&gt; &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;_mustImplement
        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Get&lt;/span&gt;

        &lt;span class="statement"&gt;Set&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="statement"&gt;ByVal&lt;/span&gt; &lt;span class="preProc"&gt;value&lt;/span&gt; &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt;
            &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;_mustImplement &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="preProc"&gt;value&lt;/span&gt;
        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Set&lt;/span&gt;

    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Property&lt;/span&gt;

&lt;span class="operator"&gt;&amp;lt;&lt;/span&gt;ConfigurableProperty&lt;span class="operator"&gt;,&lt;/span&gt; Description&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Certain Suffix to be checked&amp;quot;&lt;/span&gt;&lt;span class="operator"&gt;)&amp;gt; _&lt;/span&gt;
    &lt;span class="statement"&gt;Public&lt;/span&gt; &lt;span class="statement"&gt;Property&lt;/span&gt; SuffixToCheck &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;

        &lt;span class="statement"&gt;Get&lt;/span&gt;
            &lt;span class="statement"&gt;Return&lt;/span&gt; &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;_suffixToCheck
        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Get&lt;/span&gt;

        &lt;span class="statement"&gt;Set&lt;/span&gt;&lt;span class="operator"&gt;(&lt;/span&gt;&lt;span class="statement"&gt;ByVal&lt;/span&gt; &lt;span class="preProc"&gt;value&lt;/span&gt; &lt;span class="statement"&gt;As&lt;/span&gt; &lt;span class="type"&gt;String&lt;/span&gt;&lt;span class="operator"&gt;)&lt;/span&gt;
            &lt;span class="statement"&gt;Me&lt;/span&gt;&lt;span class="operator"&gt;.&lt;/span&gt;_suffixToCheck &lt;span class="operator"&gt;=&lt;/span&gt; &lt;span class="preProc"&gt;value&lt;/span&gt;
        &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Set&lt;/span&gt;

    &lt;span class="statement"&gt;End&lt;/span&gt; &lt;span class="statement"&gt;Property&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="output lineNumbers"&gt;&lt;pre class="lineNumbers"&gt;&lt;span class="lineNumbers"&gt;1
2
3
4
5
6
7
8
9
&lt;span class="nthLineNumber"&gt;10&lt;/span&gt;
11
12
13
14
15
16
17
18
19
&lt;span class="nthLineNumber"&gt;20&lt;/span&gt;
21
22
23
24
25
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;Here is how properties are configured for a specific instance of the rule we developed&amp;nbsp;in this tutorial&amp;nbsp;- &amp;quot;Exception class name must have &amp;#39;Exception&amp;#39; suffix&amp;quot; (click the image for full size):&lt;/p&gt;&lt;p style="margin-left:40px;"&gt;&lt;a href="http://community.submain.com/photos/tutorials/images/479/original.aspx" target="_blank"&gt;&lt;img border="0" height="375" src="http://community.submain.com/photos/tutorials/images/479/434x375.aspx" width="434" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;Adding another rule to the same project&lt;/h4&gt;&lt;p&gt;At this point of the tutorial we have one custom rule implemented in the project (library). If you want to add another rule or more to the library, you need to right-click project in the &lt;strong&gt;Solution Explorer&lt;/strong&gt;, select &lt;strong&gt;Add New Item&lt;/strong&gt; and pick &lt;strong&gt;Custom Rule Class&lt;/strong&gt; under &lt;strong&gt;CodeIt.Right Items&lt;/strong&gt; - this will start &lt;strong&gt;New Rule Wizard&lt;/strong&gt;.&lt;/p&gt;&lt;p style="margin-left:40px;"&gt;&lt;img border="0" height="419" src="http://community.submain.com/photos/tutorials/images/472/original.aspx" width="681" /&gt;&lt;/p&gt;&lt;h4&gt;Build and Deploy new rule&lt;/h4&gt;&lt;p&gt;Our rule is now ready to be deployed.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Build your custom rule project&lt;/li&gt;&lt;li&gt;Copy the resulting .dll assembly into the &lt;em&gt;&amp;lt;CodeIt.Right installation&amp;gt;\Rules&lt;/em&gt; directory (typically &lt;em&gt;Program Files\SubMain\CodeIt.Right\Rules&lt;/em&gt;)&lt;/li&gt;&lt;li&gt;Add a new instance of the new rule to your user profile. See &lt;a href="http://community.submain.com/blogs/howto/archive/2008/01/24/how-to-add-rule-to-user-profile.aspx"&gt;How to add rule to User Profile&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: You &lt;em&gt;don&amp;#39;t need&lt;/em&gt; to close Visual Studio when you deploy new or updated rule library. CodeIt.Right picks up the rule library changes every time you analyze code or open Profile Editor.&lt;/p&gt;&lt;h4&gt;Where do I find samples?&lt;/h4&gt;&lt;p&gt;Your&amp;nbsp;best source for rule examples is CodeIt.Right&amp;#39;s own rule library (see the &lt;em&gt;&amp;lt;CodeIt.Right installation&amp;gt;\Rules&lt;/em&gt; directory). As of this post we have implemented 75+ rule classes with 100+ rule instances in the detault profile.&amp;nbsp;Feel free to explore what we&amp;#39;ve got using Lutz Roeder&amp;#39;s&amp;nbsp;wonderful &lt;a href="http://www.aisto.com/roeder/dotnet"&gt;Reflector&lt;/a&gt; and learn what&amp;#39;s inside of each rule.&lt;/p&gt;&lt;p&gt;Keep an eye on&amp;nbsp;is our community &lt;a href="http://community.submain.com/files/11/default.aspx"&gt;Custom Rule Repository&lt;/a&gt; - it will grow as users develop and share their rules. This is also the place where we post our complete sample rule projects.&lt;/p&gt;&lt;h4&gt;Further Reading and Resources&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://submain.com/codeit.right/sdk/"&gt;CodeIt.Right SDK Documentation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://community.submain.com/content/tutorials.aspx"&gt;CodeIt.Right Tutorials&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://community.submain.com/blogs/howto/archive/2008/01/24/how-to-create-own-profile.aspx"&gt;How to create own Profile&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://community.submain.com/blogs/howto/archive/2008/01/24/how-to-add-rule-to-user-profile.aspx"&gt;How to add rule to User Profile&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Defining ViolationDescription and CorrectionDescription&amp;nbsp;properties (to be published)&lt;/li&gt;&lt;li&gt;&lt;a href="http://submain.com/codeit.right/sdk/#helper"&gt;Built-in API helper functions&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://community.submain.com/files/11/default.aspx"&gt;Custom Rule Repository&lt;/a&gt; &lt;/li&gt;&lt;li&gt;FxCop rule mapping (to be published)&lt;/li&gt;&lt;li&gt;Using SuppressMessage Attribute (to be published)&lt;/li&gt;&lt;li&gt;Top 10 most useful API helper functions&amp;nbsp;explained (to be published)&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=469" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/tutorials/archive/tags/SDK/default.aspx">SDK</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/Custom+Rules/default.aspx">Custom Rules</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/Tutorial/default.aspx">Tutorial</category><category domain="http://community.submain.com/blogs/tutorials/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category></item><item><title>Join us at the Party With Palermo MVP Summit 2008</title><link>http://community.submain.com/blogs/submain/archive/2008/03/12/join-us-at-the-party-with-palermo-mvp-summit-2008.aspx</link><pubDate>Wed, 12 Mar 2008 08:34:19 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:468</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky Besides hosting traditional now vbCity and VB-INSIDERS get-together around MVP Summit this year we are also sponsoring the " Party With Palermo " on Sunday, April 13, 2008 @ 7:00PM - 10:00PM - more details at http://www.partywithpalermo.com/ If you are in Seattle area that weekend, come join in - it'll be fun. There will be plenty great people to meet, free swag, free drinks and food. Find me - you will get free software too (did I just say CodeIt.Right out loud? :)...(&lt;a href="http://community.submain.com/blogs/submain/archive/2008/03/12/join-us-at-the-party-with-palermo-mvp-summit-2008.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=468" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/General/default.aspx">General</category></item><item><title>CodeIt.Right reviewed by Mike McIntyre</title><link>http://community.submain.com/blogs/submain/archive/2008/03/10/codeit-right-reviewed-by-mike-mcintyre.aspx</link><pubDate>Mon, 10 Mar 2008 07:53:50 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:461</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky Mike McIntyre posted great review of CodeIt.Right on DevCity.NET - http://www.devcity.net/Articles/348/CodeIt.Right.Review.aspx - Mike has put CodeIt.Right through a test using 10 of his projects. Mike summarizes: I feel CodeIt.Right's features for configurable static code analysis and its ability to automatically correct my code make it well worth the purchase price. It has become and indispensable addition to my developer toolkit. I highly recommend you give it a try. Thank...(&lt;a href="http://community.submain.com/blogs/submain/archive/2008/03/10/codeit-right-reviewed-by-mike-mcintyre.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=461" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Reviews/default.aspx">Reviews</category></item><item><title>CodeIt.Right Pricing and Limited Time Offer</title><link>http://community.submain.com/blogs/submain/archive/2008/02/21/codeit-right-pricing-and-limited-time-offer.aspx</link><pubDate>Thu, 21 Feb 2008 10:20:12 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:453</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky CodeIt.Right is back to regular price of $250/user and we also introduced volume license discounts. For limited time when you purchase CodeIt.Right license we include complementary 1 year of Software Assurance &amp;amp; Gold Support Subscription - more information about the subscription - (regular - only 3 months of Software Assurance only included with additional $100 per year subscription). And, as always, you are covered by our 60-day money-back guarantee. » Buy CodeIt.Right Now...(&lt;a href="http://community.submain.com/blogs/submain/archive/2008/02/21/codeit-right-pricing-and-limited-time-offer.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=453" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category></item><item><title>CodeIt.Right Introductory Price</title><link>http://community.submain.com/blogs/submain/archive/2008/02/05/codeit-right-introductory-price.aspx</link><pubDate>Wed, 06 Feb 2008 07:51:21 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:438</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky CodeIt.Right will be available at the introductory price of $180 through February 20th, 2008 (regular price $250/user after Feb 20th). To make it even better the introductory price also includes complementary 1 year of Software Assurance &amp;amp; Gold Support Subscription - more info about the subscription - (regular - only 3 months included with additional $100 per year). And, as always, you are covered by our 60-day money-back guarantee. &gt; February 20th is only two weeks away,...(&lt;a href="http://community.submain.com/blogs/submain/archive/2008/02/05/codeit-right-introductory-price.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=438" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category></item><item><title>CodeIt.Right v1.0 Released!</title><link>http://community.submain.com/blogs/submain/archive/2008/02/05/codeit-right-v1-0-released.aspx</link><pubDate>Wed, 06 Feb 2008 03:50:33 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:437</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky CodeIt.Right is finally finished after about 3 years in the making. That's right, CodeIt.Right is Released ! It is out in its all new shiny package :) I would like to make a pause here and extend my deepest gratitude towards everyone who helped make this release possible. From the SubMain development team, the advisory board members, to everyone who participated in the community and contributed feedback over the year since we released the first public beta. CodeIt.Right, my 7...(&lt;a href="http://community.submain.com/blogs/submain/archive/2008/02/05/codeit-right-v1-0-released.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=437" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Releases/default.aspx">Releases</category><category domain="http://community.submain.com/blogs/submain/archive/tags/General/default.aspx">General</category></item><item><title>New CodeIt.Right Rules - Update 20080128</title><link>http://community.submain.com/blogs/submain/archive/2008/01/28/new-codeit-right-rules-update-20080128.aspx</link><pubDate>Mon, 28 Jan 2008 22:57:15 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:426</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky Another CodeIt.Right rule update. Next stop, release of CodeIt.Right, is targeted at February 1. Yes, that's the end of this week, better hurry to take advantage of the pre-release pricing ;) New CodeIt.Right rule posted: Use prefix for return type ( Naming ) Avoid prefix for return type ( Naming ) Use prefix for derived type ( Naming ) Avoid prefix for derived type ( Naming ) The four rules above will not be included into the default profile - see How to add rule to User Profile...(&lt;a href="http://community.submain.com/blogs/submain/archive/2008/01/28/new-codeit-right-rules-update-20080128.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=426" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category></item><item><title>How to add rule to User Profile</title><link>http://community.submain.com/blogs/howto/archive/2008/01/24/how-to-add-rule-to-user-profile.aspx</link><pubDate>Thu, 24 Jan 2008 10:15:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:407</guid><dc:creator>Serge B.</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;a href="http://community.submain.com/photos/howto/images/418/original.aspx" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://community.submain.com/photos/howto/images/418/original.aspx" target="_blank"&gt;&lt;/a&gt;Some of the rules included with &lt;a href="http://submain.com/codeit.right"&gt;CodeIt.Right&lt;/a&gt; are not part of the built-in profile as are not part of the Microsoft Guidelines and yet they often come very handy especially when you choose to use a standard other than recommended by Microsoft.&lt;/p&gt;&lt;p&gt;This post covers step-by-step how to add a rule to custom user profile.&amp;nbsp;In this&amp;nbsp;walk-through we will add rule &amp;quot;&lt;em&gt;Replace identifier prefix&lt;/em&gt;&amp;quot; (ReplaceIdentifierPrefix) [&lt;strong&gt;Naming&lt;/strong&gt;] and configure it to replace the old style &amp;quot;m_&amp;quot; variable prefix with the new .NET style &amp;quot;_&amp;quot; (underscore). This is very convenient when move existing old style project to the .NET naming conventions.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Open &lt;em&gt;Profile Editor&lt;br /&gt;&lt;/em&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Make sure you are not using built-in profile -&amp;gt; see &lt;a href="http://community.submain.com/blogs/howto/archive/2008/01/24/how-to-create-own-profile.aspx"&gt;How to create own Profile&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the&amp;nbsp;&lt;em&gt;Add Rule&lt;/em&gt;&amp;nbsp;toolbar button&lt;br /&gt;&lt;br /&gt;&lt;img border="0" height="159" src="http://community.submain.com/photos/howto/images/414/original.aspx" width="661" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Find and select the &amp;quot;&lt;em&gt;Replace identifier prefix&lt;/em&gt;&amp;quot; in the list and click &lt;em&gt;OK&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border="0" height="544" src="http://community.submain.com/photos/howto/images/415/original.aspx" width="639" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Enter name for the new rule (we will use &amp;quot;&lt;em&gt;Replace &amp;quot;m_&amp;quot; with &amp;quot;_&amp;quot; is&amp;quot;&lt;/em&gt;), set &lt;em&gt;PrefixToCheck&lt;/em&gt; parameter to &amp;quot;m_&amp;quot; and &lt;em&gt;PrefixToReplace&lt;/em&gt; to &amp;quot;_&amp;quot;, choose &lt;em&gt;Targets&lt;/em&gt; (using only the targets that are applicable to the rule allows for better analysis performance) and click &lt;em&gt;Save&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://community.submain.com/photos/howto/images/416/original.aspx" target="_blank"&gt;&lt;img border="0" height="480" src="http://community.submain.com/photos/howto/images/416/569x480.aspx" width="569" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;New rule &amp;quot;&lt;em&gt;Replace &amp;quot;m_&amp;quot; with &amp;quot;_&amp;quot; is&lt;/em&gt;&amp;quot; is part of your profile now.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://community.submain.com/photos/howto/images/418/original.aspx" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://community.submain.com/photos/howto/images/418/original.aspx" target="_blank"&gt;&lt;img border="0" height="480" src="http://community.submain.com/photos/howto/images/418/569x480.aspx" width="569" /&gt;&lt;/a&gt;&lt;a href="http://community.submain.com/photos/howto/images/418/original.aspx" target="_blank"&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=407" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/howto/archive/tags/Profiles/default.aspx">Profiles</category><category domain="http://community.submain.com/blogs/howto/archive/tags/Howto/default.aspx">Howto</category><category domain="http://community.submain.com/blogs/howto/archive/tags/Rules/default.aspx">Rules</category><category domain="http://community.submain.com/blogs/howto/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category></item><item><title>How to create own Profile</title><link>http://community.submain.com/blogs/howto/archive/2008/01/24/how-to-create-own-profile.aspx</link><pubDate>Thu, 24 Jan 2008 08:45:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:413</guid><dc:creator>Serge B.</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;When you try to edit the built-in Microsoft Guidelines profile in &lt;a href="http://submain.com/codeit.right"&gt;CodeIt.Right&lt;/a&gt; you will get a message saying that profile is not modifiable. If you want to customize CodeIt.Right profile, you need to create your own profile first. This can be done by cloning existing profile or creating your own from scratch.&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Cloning existing profile&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;To clone existing profile you need&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Open &lt;em&gt;Profile Editor&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;a href="http://community.submain.com/photos/howto/images/408/original.aspx" target="_blank"&gt;&lt;strong&gt;&lt;img border="0" height="192" src="http://community.submain.com/photos/howto/images/408/original.aspx" width="396" /&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the &lt;em&gt;Save As&lt;/em&gt; toolbar button&lt;br /&gt;&lt;br /&gt;&lt;a href="http://community.submain.com/photos/howto/picture409.aspx" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://community.submain.com/photos/howto/images/409/original.aspx" target="_blank"&gt;&lt;img border="0" height="136" src="http://community.submain.com/photos/howto/images/409/640x136.aspx" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Enter name and (optional) description for your profile&lt;br /&gt;&lt;br /&gt;&lt;img border="0" height="313" src="http://community.submain.com/photos/howto/images/410/original.aspx" width="372" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Newly created profile is opened in &lt;em&gt;Profile Editor&lt;/em&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Creating new&amp;nbsp;profile&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;To&amp;nbsp;create&amp;nbsp;new profile from scratch you need&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Open &lt;em&gt;Profile Editor&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;img border="0" height="192" src="http://community.submain.com/photos/howto/images/408/original.aspx" width="396" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click the&amp;nbsp;&lt;em&gt;New&lt;/em&gt; toolbar button&lt;br /&gt;&lt;br /&gt;&lt;a href="http://community.submain.com/photos/howto/images/411/original.aspx" target="_blank"&gt;&lt;img border="0" height="139" src="http://community.submain.com/photos/howto/images/411/640x139.aspx" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Enter name, (optional) description for your profile. Then choose &lt;em&gt;Base Profile&lt;/em&gt; to copy rules from (select Blank if you want to start your profile from scratch)&lt;br /&gt;&lt;br /&gt;&lt;img border="0" height="313" src="http://community.submain.com/photos/howto/images/412/original.aspx" width="372" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Newly created profile is opened in &lt;em&gt;Profile Editor&lt;/em&gt;&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=413" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/howto/archive/tags/Profiles/default.aspx">Profiles</category><category domain="http://community.submain.com/blogs/howto/archive/tags/Howto/default.aspx">Howto</category><category domain="http://community.submain.com/blogs/howto/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category></item><item><title>CodeIt.Right Release Candidate build 1.0.08005</title><link>http://community.submain.com/blogs/submain/archive/2008/01/16/codeit-right-release-candidate-build-1-0-08005.aspx</link><pubDate>Wed, 16 Jan 2008 10:11:49 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:396</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky Here we have another smallish update for CodeIt.Right - build 1.0.08005. Early next week we publish another couple of new really cool rules. We will use rule Auto-Update to push them to you. You can see the product is getting very stable now and we only do minor modifications. Which means, guess what? That we are releasing soon :) So, make sure you take advantage of our pre-release CodeIt.Right license pricing while it's not too late ;) Changes since the last build Enabled the...(&lt;a href="http://community.submain.com/blogs/submain/archive/2008/01/16/codeit-right-release-candidate-build-1-0-08005.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=396" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category></item><item><title>CodeIt.Right Pre-release price</title><link>http://community.submain.com/blogs/submain/archive/2007/12/25/codeit-right-pre-release-price.aspx</link><pubDate>Tue, 25 Dec 2007 10:02:44 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:370</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky As the RC is available we are releasing CodeIt.Right in the next 3 weeks. We decided to offer the product for purchase at a pre-release price with an extra bonus. Buy CodeIt.Right here . This is the full license we just give you an opportunity to get it at a lower price. Pre-release price Pre-release price $250 $150 (includes complementary 1 year of Software Assurance &amp;amp; Gold Support subscription ) Buy CodeIt.Right today and save! Post-release price User license - $250 (includes...(&lt;a href="http://community.submain.com/blogs/submain/archive/2007/12/25/codeit-right-pre-release-price.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=370" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category></item><item><title>CodeIt.Right Release Candidate build 1.0.07355</title><link>http://community.submain.com/blogs/submain/archive/2007/12/21/codeit-right-release-candidate-build-1-0-07355.aspx</link><pubDate>Fri, 21 Dec 2007 12:28:36 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:367</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky Release is just around the corner - CodeIt.Right Release Candidate build 1.0.07355 is available now. This build also includes CodeIt.Right SDK help file. Please download the Release Candidate and share your feedback in the forums . Major changes overview since the last Beta build Added support for VS2008 - currently only supports .NET 2.0 solutions in the VS2008 IDE Included CodeIt.Right SDK help file - installs into the SubMain/CodeIt.Right/Help directory. Also available separately...(&lt;a href="http://community.submain.com/blogs/submain/archive/2007/12/21/codeit-right-release-candidate-build-1-0-07355.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=367" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Beta/default.aspx">Beta</category><category domain="http://community.submain.com/blogs/submain/archive/tags/NET/default.aspx">NET</category><category domain="http://community.submain.com/blogs/submain/archive/tags/.NET/default.aspx">.NET</category></item><item><title>New CodeIt.Right Rules - Update 20071203</title><link>http://community.submain.com/blogs/submain/archive/2007/12/03/new-codeit-right-rules-update-20071203.aspx</link><pubDate>Mon, 03 Dec 2007 10:26:36 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:361</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky New CodeIt.Right rule posted: Externally visible types and members should have XML comments (General) This rule makes sure all Public and Protected members and types have XML documentation comment. AutoCorrect option for this rule is 'Add XML comment template' which will add (for VB) ''' &amp;lt;summary&amp;gt; ''' ''' &amp;lt;/summary&amp;gt; ''' &amp;lt;value&amp;gt; ''' &amp;lt;para&amp;gt; ''' ''' &amp;lt;/para&amp;gt; ''' &amp;lt;/value&amp;gt; ''' &amp;lt;remarks&amp;gt; ''' ''' &amp;lt;/remarks&amp;gt; (for C#) /// &amp;lt;summary&amp;gt; ///...(&lt;a href="http://community.submain.com/blogs/submain/archive/2007/12/03/new-codeit-right-rules-update-20071203.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=361" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category></item><item><title>CodeIt.Right Beta build 1.0.07322</title><link>http://community.submain.com/blogs/submain/archive/2007/11/19/codeit-right-beta-build-1-0-07322.aspx</link><pubDate>Mon, 19 Nov 2007 10:20:33 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:347</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky Another refresh for CodeIt.Right Beta build 1.0.07322. Please download the latest build and to let us know what you think on the forums . Major changes overview since the last build Changed setup directory for VS2005 version to "CodeIt.Right" - used to be "CideIt.Right for VS2005" Toolbar and most of the menu is now enabled even when you don't have any solution/projects open Changed file format of Rule Update engine to .ZIP (from .DLL) to avoid firewall issues. Added new rules...(&lt;a href="http://community.submain.com/blogs/submain/archive/2007/11/19/codeit-right-beta-build-1-0-07322.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=347" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Beta/default.aspx">Beta</category></item><item><title>CodeIt.Right Tutorials Updated</title><link>http://community.submain.com/blogs/submain/archive/2007/11/02/codeit-right-tutorials-updated.aspx</link><pubDate>Fri, 02 Nov 2007 18:32:47 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:348</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky We have updated CodeIt.Right Flash presentations based on the Beta 2 layout - they are covering new features as well - http://submain.com/tutorials Quick Start - Quick 1 minute CodeIt.Right walk through Introduction to CodeIt.Right Features - Here is where we show main CodeIt.Right functions and options ISerializable Pattern example - One of many scenarios when CodeIt.Right helps to diagnose issues early and implement coding patterns correctly. Please let us know in the CodeIt.Right...(&lt;a href="http://community.submain.com/blogs/submain/archive/2007/11/02/codeit-right-tutorials-updated.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=348" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category></item><item><title>CodeIt.Once build 1.2.07303</title><link>http://community.submain.com/blogs/submain/archive/2007/10/31/codeit-once-build-1-2-07303.aspx</link><pubDate>Wed, 31 Oct 2007 20:42:22 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:349</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky Another update for CodeIt.Once - build 1.2.07303 - resolved issues with solution folders, generics, improved quality of the Rename, Extract Interface and Encapsulate Field commands. Download link - http://submain.com/download Technorati Tags: CodeIt.Once , Refactoring , Visual Studio , .NET , NET...(&lt;a href="http://community.submain.com/blogs/submain/archive/2007/10/31/codeit-once-build-1-2-07303.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=349" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Once/default.aspx">CodeIt.Once</category></item><item><title>New CodeIt.Right Rules published - Update 20071017</title><link>http://community.submain.com/blogs/submain/archive/2007/10/17/new-codeit-right-rules-published-update-20071017.aspx</link><pubDate>Wed, 17 Oct 2007 08:59:59 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:350</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky New set of CodeIt.Right rules: Avoid unsealed attributes (Performance) COM visible types should be creatable (Interoperability) Pointers should not be visible (Security) Remove empty finalizers (Performance) (All of the new rules above offer AutoCorrect options) This set of rules is distributed using the Rule AutoUpdate feature added into the Beta 2 of CodeIt.Right. Auto Update triggers in 15 minutes after you start Visual Studio. If you turned the feature off you can manually...(&lt;a href="http://community.submain.com/blogs/submain/archive/2007/10/17/new-codeit-right-rules-published-update-20071017.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=350" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/News/default.aspx">News</category><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category><category domain="http://community.submain.com/blogs/submain/archive/tags/NET/default.aspx">NET</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category><category domain="http://community.submain.com/blogs/submain/archive/tags/.NET/default.aspx">.NET</category></item><item><title>New CodeIt.Right Rules published - Update 20071008</title><link>http://community.submain.com/blogs/submain/archive/2007/10/08/new-codeit-right-rules-published-update-20071008.aspx</link><pubDate>Tue, 09 Oct 2007 00:17:36 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:351</guid><dc:creator>SubMain.Blog()</dc:creator><slash:comments>0</slash:comments><description>by Serge Baranovsky We published new CodeIt.Right rules: Mark assemblies with assembly version (Design) Mark assemblies with CLSCompliant (Design) Mark assemblies with ComVisible (Design) Remove unused locals (Performance) (All of the new rules above offer AutoCorrect options) This is the first set of rules that we distribute using the Rule AutoUpdate feature recently added into the Beta 2 of CodeIt.Right. Auto Update triggers in 15 minutes after you start Visual Studio. If you turned the feature...(&lt;a href="http://community.submain.com/blogs/submain/archive/2007/10/08/new-codeit-right-rules-published-update-20071008.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.submain.com/aggbug.aspx?PostID=351" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/submain/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Updates/default.aspx">Updates</category><category domain="http://community.submain.com/blogs/submain/archive/tags/NET/default.aspx">NET</category><category domain="http://community.submain.com/blogs/submain/archive/tags/Rules/default.aspx">Rules</category><category domain="http://community.submain.com/blogs/submain/archive/tags/.NET/default.aspx">.NET</category></item><item><title>CodeIt.Right Beta 2 released - build 1.0.07268 - Share feedback and win $100 Amazon gift certificate</title><link>http://community.submain.com/blogs/news/archive/2007/09/27/codeit-right-beta-2-released-build-1-0-07268-share-feedback-and-win-100-amazon-gift-certificate.aspx</link><pubDate>Thu, 27 Sep 2007 08:06:00 GMT</pubDate><guid isPermaLink="false">e6092f25-edd1-48d7-b80f-8bdb13d630d6:274</guid><dc:creator>Serge B.</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;CodeIt.Right Beta 2 is out now - this is a major update since the Beta 1. &lt;/p&gt;&lt;p&gt;&lt;span style="margin:0px;border:0px;"&gt;Our team is eager to hear your feedback on the Beta 2 version, as you can really influence the next stage of development. Be sure &lt;a href="http://submain.com/blog/ct.ashx?id=3e91bf0f-39fa-456e-a80d-1cbdfcde2845&amp;amp;url=http%3a%2f%2fsubmain.com%2fdownload%2fcodeit.right"&gt;download the Beta 2&lt;/a&gt; and to &lt;a href="http://submain.com/blog/ct.ashx?id=3e91bf0f-39fa-456e-a80d-1cbdfcde2845&amp;amp;url=http%3a%2f%2fsubmain.com%2fsupport%2fcodeit.right"&gt;let us know what you think&lt;/a&gt; on the &lt;a href="http://submain.com/blog/ct.ashx?id=3e91bf0f-39fa-456e-a80d-1cbdfcde2845&amp;amp;url=http%3a%2f%2fsubmain.com%2fsupport%2fcodeit.right"&gt;forums&lt;/a&gt;, and have your chance to win 1 of 3 &lt;strong&gt;$100 Amazon gift certificates&lt;/strong&gt; to be awarded to the top three posts by October 31st. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="margin:0px;border:0px;"&gt;Read more here - &lt;a href="http://submain.com/blog/CodeItRightBeta2IsOutBuild1007268.aspx"&gt;http://submain.com/blog/CodeItRightBeta2IsOutBuild1007268.aspx&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://community.submain.com/aggbug.aspx?PostID=274" width="1" height="1"&gt;</description><category domain="http://community.submain.com/blogs/news/archive/tags/CodeIt.Right/default.aspx">CodeIt.Right</category><category domain="http://community.submain.com/blogs/news/archive/tags/Beta/default.aspx">Beta</category></item></channel></rss>