<?xml version="1.0" encoding="utf-8" ?> 
<tipOfTheDay>
	<tip>That you can refresh cached property values (including database schema) using the Refresh Values button above the property grid.</tip>
	<tip>That you can use CTRL-SHIFT-M to collapse all template code blocks.  This is useful to quickly see all static template content.</tip>
	<tip>That you can use CTRL-] when the cursor is located on a highlighted bracket to move to the matching bracket.</tip>
	<tip>That you can use CTRL-SHIFT-] when the cursor is located on a highlighted bracket to select the entire content between the matching brackets.</tip>
	<tip>That you can use CTRL-I to do an incremental search.</tip>
	<tip>That CodeSmith Projects are designed to run everywhere.  You can generate outputs from Windows Explorer, a command prompt / batch file, Visual Studio, MSBuild project or CodeSmith.</tip>
	<tip>That CodeSmith Projects can be set to automatically add the generated outputs into your Visual Studio project.</tip>
	<tip>That CodeSmith Projects can be great way to actively generate your code in an automated fashion and that you can use the Generate on Build option inside of Visual Studio to re-generate your code every time you build your project.</tip>
	<tip>That a CodeSmith Project can manage multiple templates each with their own property set to output files in an automated fashion.</tip>
	<tip>That the PreserveRegions merge strategy lets you preserve custom code regions within a file while regenerating the rest of the file contents.</tip>
	<tip>That the InsertRegion merge strategy lets you take the result of a template execution and insert it into a named region within a file while preserving the rest of the file contents.</tip>
	<tip>That you can save your template property settings to a CodeSmith Project file using the Save Values button in the property grid.</tip>
	<tip>That you can find hundreds of sample templates in the CodeSmith Community file gallery.</tip>
	<tip>That you can turn current line highlighting on in the options dialog.</tip>
	<tip>That you can set the default output file name of a template by overriding the GetFileName method.</tip>
	<tip>That there are several template event methods that you can override like OnInit, OnPreRender, OnPostRender to add custom logic.</tip>
	<tip>That the DbDocumenter sample templates are a great way to document your database schema.</tip>
	<tip>That the StoredProcedures.cst template can generate all of your standard create, retrieve, update, and delete stored procedures for a given table instantly.</tip>
	<tip>That you can use the Progress object to report template execution progress on long running templates.</tip>
	<tip>That you can use Trace.WriteLine to output messages to the Debug output window.</tip>
	<tip>That you can use Debugger.Break in your template to step through your template code.</tip>
	<tip>That the XmlProperty directive makes working with XML metadata a breeze.</tip>
	<tip>That CodeSmith can be extended in many ways including creating your own metadata property types and custom schema providers for SchemaExplorer.</tip>
	<tip>That you can reference sub-templates using the Register directive.</tip>
	<tip>That you can have as many source files as you want dynamically compiled with the template using the Assembly directive's Src attribute.</tip>
	<tip>That you can reference any assembly and import any namespace using the Assembly and Import directives.</tip>
	<tip>That you can create custom base classes for your templates to share common functionality and have multiple templates derive from the same base class.</tip>
  <tip>That you can use the CodeSmith.Engine.StringUtil.ToPlural() and CodeSmith.Engine.StringUtil.ToSingular() methods to change word forms of most words.</tip>
	<tip>That you can use the CodeSmith.Engine.PropertySerializerAttribute to designate the property serializer type for a custom property.</tip>
  <tip>That you can use the CodeSmith API to programmatically render templates.</tip>
  <tip>That CodeSmith Maps can make doing type conversions from one language to another a breeze.</tip>
  <tip>That CodeSmith Maps can also be used for storing semi-static configuration information for templates instead of having template properties for every possible setting.</tip>
  <tip>That you can use ActiveSnippets in Visual Studio to generate snippets of code driven by CodeSmith templates.</tip>
  <tip>That you can view a list of available ActiveSnippets using CTRL-E, CTRL-R in Visual Studio.</tip>
  <tip>That you can view usage information for a specific ActiveSnippet by typing it's alias and then using CTRL-E, CTRL-R in Visual Studio.</tip>
  <tip>That you can drag a template onto the editor in Visual Studio to generate code into the document.</tip>
  <tip>That you can jump start your application in minutes using the .netTiers application framework templates.</tip>
  <tip>That you can manage extended properties for any schema object using the Schema Explorer tool window.  Setting extended properties on your schema objects can help to control the output of your templates.</tip>
  <tip>That the CustomProperties sample project shows how you can create your own property types for use in your templates.</tip>
  <tip>That you can set Response.IndentLevel on your sub-templates to control the indentation level of their output.</tip>
  <tip>That you can enable Show Compiled Source in your options to view the source code that CodeSmith translates your template into.</tip>
  <tip>That you can save your templates as HTML or RTF for easy presentation in other tools.</tip>
  <tip>That you can reverse a CodeSmith Map so that you can use your values as keys when needing to convert back to your source key.</tip>
  <tip>That you can save your CodeSmith Project programatically, by using SavePropertiesToXmlFile() from your template.</tip>
</tipOfTheDay>