Ich befinde mich in einer sehr ähnlichen Situation. Siehe Frage
Zuerst wollte ich WCF verwenden, aber der Delphi-WSDL-Importer konnte es einfach nicht. Jetzt verwende ich ASP.net-Asmx-Webdienste, und die Interoperabilität hat sich erheblich verbessert.
Wir führen eine schrittweise Migration von einem Thick Client mit inkonsistentem Inline-SQL, gespeicherten Prozeduren und bis zu 900-1200 Zeilenmethoden zu einer mehrschichtigen Lösung durch. Sobald die serverseitige Funktionalität vorhanden ist, gehen wir dazu über, die Änderung im Delphi-Client zu implementieren. Auf diese Weise kann die bestehende Anwendung weiter funktionieren, und die Tests und die Bereitstellung können schrittweise erfolgen.
Ich habe mit der Implementierung der DAL begonnen, und mit Hilfe des Entity-Frameworks haben wir alle unsere Datentabellen als Entitäten dargestellt und tauschen Daten mit dem Client über Datentransferobjekte für jede Entität aus.
Als nächstes wird die Geschäftslogik Funktionsbereich für Funktionsbereich migriert, und schließlich wird der Client einfach das tun, was ein Client-Formular tun sollte, nämlich dem Benutzer die Interaktion mit der Anwendung ermöglichen.
Einer der Hauptgründe, warum wir uns für EF entschieden haben, war, dass Visual Studio die Delphi-Klassen automatisch generieren kann, mit Änderungsverfolgung (daran arbeiten wir noch) und Datenpersistenzlogik, indem wir t4-Vorlagen optimieren.
Es gibt noch einen Haken: Datenbindung auf dem Client von einem .Net-Webdienst ist immer noch unmöglich mit Delphi 2010. Wir werden dies daher bis zum Schluss aufschieben.
All dies wird uns in die Lage versetzen, maßgeschneiderte Kundenwünsche schneller auf dem Server umzusetzen, ohne das Client-Design zu untergraben.
Diejenigen, die sich fragen, warum das so ist, und darauf bestehen, dass es immer eine schlechte Idee ist, sollten bedenken, dass in einigen Fällen (wie bei mir) diese gut genutzten Anwendungen sehr komplex sind und nicht alle Delphi-Entwickler noch da sind, um fragwürdige Design- und Programmierentscheidungen zu rechtfertigen. Derzeit ist das Hinzufügen neuer Funktionen immer ein Glücksspiel, wenn Variablen mehrere Bedeutungen haben, und für eine Anwendung dieser Größe ist die IDE von Delphi 2010 unzureichend, was die Wartung zu einem echten Problem macht, wenn man von Visual Studio kommt. Verstehen Sie mich nicht falsch, ich habe Delphi gelernt, um diese Entwicklung zu übernehmen, aber die Art und Weise, wie dieses historische Produkt geschrieben wurde (in Delphi 5), ist völlig unhaltbar.
Die Frage ist nicht, warum, sondern in vielen Fällen: Wie lange können Sie es sich leisten, das Problem zu ignorieren, bevor Sie gezwungen sind, eine umfassende Überarbeitung vorzunehmen oder das Produkt aufzugeben?