Sujeewa Ediriweera

February 10, 2012

Template Based Code generation

Filed under: General Development — sujeewa.ediriweera @ 11:02 am
Tags: , ,

Code generation is a widely used concept when it comes to enterprise level software development. Generating code will help to increase the speed of software development while keeping the code consistent across. This is especially useful when it comes to distributed teams where you want to follow a general coding practices/guidelines across developers, code generation will become very handy. When it comes to smaller teams or individual developers code generation is being used to complete the repetitive tasks and save time, while the saved time allows more time to be spent on developing actual business logic.

While code generation can help developers, template based code generation will unleash the power of flexibility in generation code. Templates when used let the solution architects/developers to define the coding guidelines and then generate the code based on that. This approach takes the code generation to a next stage, where you are given a great amount of flexibility to stick to the coding guidelines which you are already put in to practice. So that the change is minimal and the results are maximum.

As you start using the templates and generate code, most of the build errors will be dissolved. As the project become mature, alterations to the code can be done at template level and apply across the code base. Unlike in other scenarios at this point you can trust the code which is generated as generated code has been tested iteratively.

When templates are used in a tired architecture most of the templates can be used across many projects to generate the low level tires. Having reusable templates will let the different project teams to follow the consistent coding guidelines and hence improve the manageability across projects. At any stage team members are distributed among different projects the learning curve will be minimal.

By using a code generation tool developer focus will mainly on business logic and rely on the code generation tool to be generating the code for the low level tires. Normally developers spend 40%-60% of the total time to write repetitive code, which by using code generation, can be cut down and re-invest in other areas to improve the quality of the final product.

Developers are human beings which by nature makes mistakes. As you move towards a code generation tool, the ratio for human errors will be minimal hence will save time with bug fixing cycles. This will result in producing a robust and accurate final product.

Code generation tool can be used to generate reusable set of classes and methods. This is highly depending on how you planned to generate code and how your template generates code. This will eventually set the world “reusable” in the developer’s thought process, hence will result in writing reusable components which can not only be re-used within the project but also can be re-used across many other projects. And this is where template based code generation will give fullest flexibility to developers to think through reusable code and write templates to generate reusable code rather than generating code which is less re-usable.

As discussed above template based code generation will improve the software development life cycle in many different spaces. Key improved areas will be productivity, quality and consistency. So it’s worth investing time on learning and putting template based code generation in to practice if you are keen on producing robust and high quality final software product.

SharePoint Auto Coder SPAC



  1. Hi Sujeewa,

    Just watched the YouTube video. Really nice work. Keep the good work up.

    Happy Coding.


    Comment by Jaliya Udagedara — February 16, 2012 @ 6:47 am | Reply

    • Thanks Jaliya .I’ll be giving a free version of SPAC soon for the SharePoint community.

      Comment by sujeewa.ediriweera — February 16, 2012 @ 8:26 am | Reply

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Blog at

%d bloggers like this: