Check out MetaSapien's Pagemethods:

http://metasapiens.com/PageMethods/Default.aspx