Я нахожусь в очень похожей позиции.
См. Вопрос
Сначала я решил использовать WCF, но импортер Delphi WSDL просто не смог его взломать, сейчас я использую веб-сервисы ASP.net asmx, и совместимость значительно улучшилась.
Мы применяем поэтапную миграцию с толстого клиента с непоследовательным встроенным SQL, хранимыми процедурами и до 900 - 1200 строковых методов к многоуровневому решению. Как только функциональность на стороне сервера будет внедрена, мы переходим к реализации изменений в клиенте Delphi. Это позволяет существующему приложению продолжать работу, а тестирование и развертывание можно выполнять поэтапно.
Я начал с реализации DAL и использования платформы Entity, у нас есть все наши таблицы данных, представленные в виде объектов, и мы обмениваемся данными с клиентом, используя объекты передачи данных для каждого объекта.
Затем бизнес-логика будет перенесена из функциональной области в функциональную область, и, наконец, клиент просто сделает то, что должна сделать форма клиента, что позволит пользователю взаимодействовать с приложением.
Одной из основных причин, по которой мы пошли с EF, было разрешение Visual Studio автоматически генерировать классы delphi с отслеживанием изменений (все еще работающим над этим) и логикой сохранения данных путем настройки шаблонов t4.
Есть еще одна загвоздка: привязка данных на клиенте из веб-службы .Net все еще невозможна в Delphi 2010. Поэтому мы собираемся оставить это до последнего.
Все это даст нам возможность быстрее выполнять индивидуальные запросы клиентов на сервере без ущерба для дизайна клиента.
Для тех, кто спрашивает, почему и настаивает на том, что это всегда плохая идея, имейте в виду, что в некоторых случаях (например, в моем) эти хорошо используемые приложения очень сложны, и не все разработчики Delphi до сих пор пытаются оправдать сомнительные дизайнерские и программные решения. В настоящее время добавление новых функциональных возможностей - всегда азартная игра, когда переменные имеют несколько значений, и для приложения такого размера среда разработки Delphi 2010 была неадекватной, создавая настоящую головную боль для обслуживания после выхода из Visual Studio. Не поймите меня неправильно, я научил Delphi взяться за эту разработку, но способ, которым этот исторический продукт был написан (в Delphi 5), совершенно неустойчив.
Вопрос не в том, почему, а во многих случаях: как долго вы можете позволить себе игнорировать проблему, прежде чем ее заставят выполнить основную переписку или отказаться от продукта?