Основные проблемы, с которыми я столкнулся в этой области, связаны с техническим обслуживанием;Создание COM-вызываемой библиотеки DLL не сложно, но сделать ее остаться вызываемой при обновлении (то есть повторном развертывании изменений) может быть настоящей болью.Или, может быть, я только что привык к развертыванию робокопии, чего в этом случае будет недостаточно - и это не помогло, если бы у меня был COM +, с которым также пришлось бороться.Вы действительно хотите сохранить базовый API.Я был бы счастлив бросать строки за границу (возможно, xml, но не единственный выбор), но я бы избегал наборов записей и т. Д. Это просто требует боли.Конечно, у вас может не быть выбора.
В прошлый раз, когда мне пришлось это сделать, я на самом деле сыт по горло, пытаясь бороться с различными слоями, и вместо этого я использовал http для интерфейса;и VB6, и C # более чем способны перебрасывать сообщения http или закреплять базовый http-сервер (либо ASP, либо ASP.NET).Может быть, немного больше накладных расходов, но разделение того стоило.А это значит, что я могу поменять местами либо клиента, либо сервер.