Here's a talk at ESUG 2005 - porting a VAST/Gemstone app to C# and SQL Server. The cognitive dissonance part?
This experience report presents a process that is currently being used to migrate a large, mission-critical VisualAge GemStone Smalltalk system to C# and .NET. Described is an effective, test-first methodology that assures the .NET version system will be source-code identical to the existing GemStone Smalltalk system. Described are the steps of this migration process. Also presented are techniques to deal with the short-comings of the C# language. Experience with moving from GemStone persistence to SQL server is also discussed.
"source code identical"? What the heck does that mean? Especially given the "dealing the shortcomings of C#" bit. My brain hurts just reading that...