di norma si usano le inclusioni lato server, mantenendo separati i templati per ciascuna sezione (header, footer, menu, etc) il che implica che tu possa usare un linguaggio qualsiasi tra php, asp.net, java, ruby etc...