Code Generation in Microsoft .NET
Code generation has the potential to revolutionize application development. Rather than handcrafting each piece of code, developers are increasingly turning to code generation based on templates and applications of business logic to automatically perform a variety of tasks. This book teaches the technical details of code generation in.NET through a coherent series of steps that will help you to incorporate code generation into your own development efforts.
Veteran author Kathleen Dollard teaches code generation as a scripted repeatable process using templates you control, so you're not tied to a particular framework or style. Because you can regenerate code at any time, you can incorporate changes, including database changes, throughout the life of your application. The templates are flexible and designed to work smoothly with the handcrafted code youll use to customize your application. The underlying fundamentals are explained along with three specific techniques: outputting code to a stream, using the Code DOM, and using XSLT-based code generation.
In addition to the text, the tools in the book (downloadable in both VB.NET and C#) include a mechanism to extract information from SQL Server; a tool for editing and running code-generation scripts; a simple, flexible ORM tool that relates your database structure to your runtime class model; and a set of templates you can use as the starting point for your adventures in code generation.
Generating repetitive sections of code frees you to focus on the features that make your application unique. Code generation will turbo-charge your development cycles by offering speed, reusability, agility, and consistency. Go forth and generate!
Coverage of all three significant .NET code generation mechanisms: Manual code generation, XSL/XML and CodeDomReal solutions to the problem of protecting handcrafted code across regeneration Covers code generation in the broader picture of how applications are developed Addresses a new trend in enterprise software development that will reduce costs and improve efficiency and reliability