Gordon,
For our FrontEnd, we're using both WinForms and WebForms, C# for everything (IOW, for the ASP.NET pages, we're using C# code-behind). Avoiding COM objects where possible (I think we have one COM object ... in order to use a browser in a WinForm).
WinForm UIs pass data back-and-forth through WebServices as XML, to the middle tier's business objects.
WebForm UIs access the business objects directly, since going through a WebService at that point would be redundant (they're already both server-side).
Business objects call the DataAccess objects and pass DataSets back-and-forth.
BackEnd is SQL Server, which we access strictly through StoredProcedures.
Good enough overview? <g>
~~Bonnie