Had to bookmark this older post from ScottGu:
Scott first runs through letting the AJAX ScriptManager control generate JavaScript proxies for accessing server side code asynchronously. I didn’t realise that it was quite that easy!
The rest of the post covers a way of using this feature to render templates to pages. By using ASCX controls as templates this gives you an interesting way to separate controller and view code.