Tips Tricks Tips and Tricks for Code Smith
- Slides: 49
Tips & Tricks Tips and Tricks for Code. Smith 3. 0 Rob Howard rhoward@telligent. com Code. Smith Tools, LLC
For More Information… • Learn more • www. codesmithtools. com • Download free 30 day trial • Contact Us • sales@codesmithtools. com • +1 972 407 0688 • Code. Smith & Telligent • Partnered together with a common goal: • “Build world-class software tools”
Agenda • • • What is Code. Smith? Using Code. Smith 3. 0 Working with Data & XML Advanced Tips & Tricks Licensing & Pricing
What is Code Generation • Software creation • Can be fun and challenging • …but also repetitive and monotonous • Repetition & monotony leads to bugs • Code generation is not a new concept • With most tools you don’t control the output • Often viewed as a “Black Box” solution • Ex, data layer created (but it is not your code) • Code. Smith 3. 0 • Not a “Black Box” solution • Template driven code generation (it is your code) • Use existing templates or write new ones
The value of Code. Smith • The cost of creating software • Design, Development, Test, Release • Easily runs between $50 - $300/hour • Code. Smith 3. 0 Professional: $299 • Equivalent to 3 -6 hours of development • Real value you can measure • Dramatically reduces project time & cost • Quickly pays for itself
Your code. Your way. Faster! • Code. Smith • Version 2. 6, released January 2004 • Version 3. 0, released May 2005 • Version 3. 1, released August 2005 • Code. Smith 3. 0 includes • • Code. Smith Professional Studio (IDE) Visual Studio. NET integration Command line code generation engine Base set of common templates
New in Version 3. 0 • • Active Generation Templates Statement Completion, AKA Intellisense™ Deep XML support New merge strategies & preserve region Easier template debugging Template caching for faster execution Event driven template architecture Ability to auto-execute SQL scripts …and much, much more
Customers include… …and many others
Using Code. Smith 3. 0
Code. Smith Professional Studio • Integrated Development Environment • Editing and Executing templates • Template Explorer • Professional Edition only • Features • • Database schema browser Template syntax highlighting Template, Output, and Compilation views Property editing
Code. Smith Templates • Similar to ASP. NET page • Code. Smith Templates will be familiar • Event and <% %> code • Template contains • • Directives Template logic (VB & C# code) Output Text (your code, comments, etc. ) Template events, methods, and properties • A Code. Smith template is • Document with. cst extension • Edit with Code. Smith Studio or text editor
Statement Completion • Code. Smith 2. 6 • Lacked Intellisense support • Required intimate knowledge of APIs • Code. Smith 3. 0 • Full statement completion support • VB. NET and C# • Intellisense • Makes you more productive • Reduces development time
My First Template
Visual Studio Integration • Integrated with Visual Studio. NET • Automatically integrated during installation • “Visual Studio add-in” • Using Code. Smith within Visual Studio. NET • Tools -> Add-in Manager • Tools -> Code. Smith Explorer • Executing Templates in Visual Studio. NET • View templates in Template Explorer • Right-click to execute templates
Code. Smith Add-in Code. Smith Explorer
Visual Studio Integration
Active & Passive Generation • Use Code. Smith as “key stroke” saver • Render template and then use results • Code. Smith may or may not be used again • Active Generation (Recommended) • Use template as source code • Whenever build project run template • Ex, write single template to generate 100 s of classes (or other files)
Active Generation Templates • Enabled through Visual Studio Custom Tool • • “Active Generation Templates” Executed each time the input file changes Perfect for Active Generation Example: Sample. ProjectsCSharp. Code. Generator. Sample • Execute Active Generation Templates • • • Right-click hashtable. xml in VS. NET Select ‘Run Custom Tool’ Renders multiple property sets for template Any time xml file is touched templates are regenerated Click on show all files to see hidden code files
Bound to Custom Tool Generated Source File Generated Source
Active Generation Template
Working with Data & XML
Creating Data Access Layer • Stored Procedures (SPROC) • Preferred data access technique • Provides abstraction API for data access • Create/Read/Update/Delete (CRUD) • Tedious to write (Equals more bugs) • Imagine manually creating for every table • Stored. Procedures. cst Template • Generates CRUD layer for any table • Created in seconds! …for all tables
Creating Data Access Layer
Auto SQL Script Execution • Automatically update database • Generated SQL is automatically executed • Maintain entities in Code. Smith • Updating template to update schema • Ex, Telligent used Code. Smith for VSIP • 100% template driven database layer
Script Execution
Building Data Access APIs • Data Access Layer • APIs for working with data APIs, e. g. sprocs • Typically monotonous repetitive code • Time consuming to code by hand • Encourages Stored Procedures • Template generates typed wrapper • VB. NET and C# • Enforces best practices • Open connection late, close early • Try/Catch blocks
Building Data Access APIs
Building Data Access APIs • All. Command. Wrappers. cst Template • Point to a database • Code. Smith outputs all occurrences • Output. Directory • Default location for generated files • Configurable, e. g. “my project directory” • Generate entire data layer • Can exclude stored procedures
Building Data Access APIs
Database Documentation • Db. Documenter Templates (master. cst) • Set basic information and run batch file • Ex, database connection and title • Great demo of Code. Smith capabilities • Simple repetitive problem • Would take weeks to create manually • Demonstrates Code. Smith “best practices” • Additional ideas… • Modify templates to generate ASP. NET • Generate. CHM help files • Add execute capabilities, etc.
Database Documentation
Working with XML • New Xml. Property • Work with XML in a strongly typed manner • Using XML as metadata very easy • With an XSD • Strongly typed accessory to XML file • Read-only access • Without an XSD file • Xml. Document type returned
Xml. Property Directive
Advanced Tips & Tricks
Debugging Templates • Set Debugger. Break() in code • Break-point in Template execution • . NET JIT Debugger window opens • From. NET JIT Debugger window • Select Debug Tool • EX, Visual Studio. NET 2003 • Step through template source • Reports error in template directly • Most tools allow debugging of the result
Debugging Templates, cont • Compilation is similar to ASP. NET • Occasionally template is not enough • Need the ability to examine source • Line. Pragmas • Defined in <%@ Code. Template %> • Set to true or false • Default to true • Reports line number in template • False, reports line number in generated code
Debugging Templates
Template Events & Overrides • Initialization events • Called once when template is instantiated • On. Init • Called once when template is instantiated • All other events are raised on each use • Parse. Default. Value() • Allows for handling of type conversions • Called for every default value of a property • Get. File. Name() • Override the default output file name
Template Events & Overrides • ‘Render’ events • Similar in concept to ASP. NET events • Called each time template instance is rendered • On. Pre. Render • Called before template rendering begins • Set up default state • Render • If overridden takes over rendering process • Example, if you want a ‘master’ template • On. Post. Render • Called after template is executed • Contains string result of rendered template
Template Events & Overrides
Automated Build Process • Easily fit with your build environment • Constantly validate ability to build code • Example: NAnt, MSBuild • Code. Smith Command line tool • Build project from command line • Code. Smith used for Active Generation • Easily integrated into environment
Command Line Tool • Console Application (cs. exe) • • • XML file identifying templates to run Mirror Visual Studio Custom Tool behavior Execute single template, or… Execute batches of templates Set properties via the Command Line • Example usage: • Sample. ProjectsConsole. Samples • Use /batch: <file> cs. exe /batch: Batch. Mode. Sample. xml
Batch Generation File Format • <default. Template/> • Default template used to generate output • Can be overridden in <property. Set/> • <variables/> • Metadata used in property definitions • <default. Properties/> • Define global properties • <property. Set/> • Serialized representation of template properties
Batch Generation
Merge Strategies • Enable Active Generation • Can’t always generate exactly what you need • Custom logic along with Active Generation • Example • Sample. ProjectsConsole. Samples • Preserve. Regions. Merge. Sample. cst
Merge Strategies
Licensing • Code. Smith 2. 6 • Standard Edition was free • Professional Edition: $79 • Code. Smith 3. 0 • Upgrade from 2. 6 to 3. 0 Professional: $49 • Standard Edition: $49 • Professional Edition: $299 • Support Options • Community Support codesmithtools. com • Premier / Incident support: $99
Conclusion • Code. Smith 3. 0 • Most powerful code generation tool available • Reduces time spent writing trivial code • Be more productive • Template driven means it’s still your code • Saves you time and money • Coming soon: Code. Smith 3. 1 • Minor bug fix, etc. release • Includes updated product documentation
Learn more • www. codesmithtools. com • Download free 30 day trial Contact Us • sales@codesmithtools. com • +1 972 407 0688
- Xero practice manager demo
- Alteryx tips
- Next gen lab corp
- Kronos tips and tricks
- Igcse english language tips
- Homework
- Navision tips and tricks
- Chemdraw tips and tricks
- Alma analytics tips and tricks
- Magento crud
- Stata tips and tricks
- Data analysis tricks
- Matlab tips and tricks
- Ptc manufacturing apps
- Accessibility tips and tricks
- Google scholar tips and tricks
- Qlik sense tips and tricks
- Gp tips and tricks
- Vacuum forming tips and tricks
- C tips and tricks
- Accounts payable tips and tricks
- Wpf tips and tricks
- Uil calculator applications tips and tricks
- Brand tips and tricks
- Advanced excel tips and tricks 2019
- Kronos tips and tricks
- Ssms tips and tricks
- Windows 7 tricks
- Vmware tips and tricks
- Machine learning tips and tricks
- Microsoft flow tips and tricks
- Unit agresso
- Microchip tips and tricks
- Agresso ucc
- Ssis tips and tricks
- Marketplace tips and tricks
- Western blot tips and tricks
- Trainthe trainer
- Nextgen crystal report
- Cecos moodle
- Google ynalac
- Database design tips and tricks
- Database design tips and tricks
- Visual studio 2010 tips and tricks
- Ssrs report design layout tricks
- The 30 greatest lead generation tips tricks & ideas
- Busceral
- Fspos vägledning för kontinuitetshantering
- Novell typiska drag
- Nationell inriktning för artificiell intelligens