Scaffolding, as used in computing, refers to one of two techniques:
Code generation:
It is a technique related to database access in some model–view–controller frameworks.
Project generation:
It is a technique supported by various programming tools.
Scaffolding is a technique supported by some model–view–controller frameworks, in which the programmer can specify how the application database may be used. The compiler or framework uses this specification, together with pre-defined code templates, to generate the final code that the application can use to create, read, update and delete database entries, effectively treating the templates as a "scaffold" on which to build a more powerful application.
Scaffolding is an evolution of database code generators from earlier development environments, such as Oracle's CASE Generator, and many other 4GL client-server software development products.
Scaffolding was made popular by the Ruby on Rails framework. It has been adapted to other software frameworks, including OutSystems Platform, Express Framework, Blitz.js, Play framework, Django, web2py, MonoRail, Brail, Symfony, Laravel, CodeIgniter, Yii, CakePHP, Phalcon PHP, Model-Glue, PRADO, Grails, Catalyst, Mojolicious, Seam Framework, Spring Roo, JHipster, ASP.NET Dynamic Data, KumbiaPHP and ASP.NET MVC framework's Metadata Template Helpers.
Scaffolding can occur at two different phases of the program lifecycle: design time and run time. Design time scaffolding produces files of code that can later be modified by the programmer to customize the way the application database is used. However, for large-scale applications this approach may be difficult to maintain due to the sheer number of files produced, and the fact that the design of the files was largely fixed when they were generated or copied from the original templates. Alternatively, run time scaffolding produces code on the fly. It allows changes to the design of the templates to be immediately reflected throughout the application.