Мнения об использовании модулей с сервера DataSnap REST для клиентского проекта

Я разрабатываю прототип DataSnap REST-сервера с настольным клиентом FireMonkey, и мне было интересно, является ли использование модулей, которые инкапсулируют модели данных на сервере для клиента, хорошей практикой или нет.

То есть у меня есть ряд модулей для серверного проекта, которые представляют объекты и свойства модели данных, и у меня есть серверные методы REST, которые либо принимают эти объекты в качестве параметров, либо возвращают их в качестве результатов.

Поскольку у меня уже есть эти модули, я просто добавил их в клиентский проект там, где это необходимо, однако серверное приложение DataSnap REST также будет использоваться из настольного клиента C# (и, возможно, веб-приложения HTML 5), которое не сможет использовать единицы .PAS, которые у меня есть, и мне потребуются собственные представления объектов.

Не лучше ли мне не использовать серверные единицы проекта, чтобы убедиться, что я не включаю ничего, о чем может знать клиент, не использующий DataSnap, или продолжить, как я, и написать модели C#/Java вручную или существует автоматизированный способ создания этих моделей, аналогичный тому, как Visual Studio генерирует модели классов из WSDL?


person SiBrit    schedule 19.08.2013    source источник


Ответы (1)


С помощью мобильных коннекторов DataSnap можно автоматически генерировать клиентские классы DataSnap в различные языки, такие как C# или Java для Android, например.

Для клиентского приложения HTML5 класс JavaScript proxy также может быть сгенерирован из приложения DataSnap REST. волшебник.

В клиентском приложении FireMonkey у вас есть преимущество в том, что вы можете совместно использовать модули с серверным проектом. Что касается сгенерированных прокси-классов на других языках, еще неизвестно, включена ли бизнес-логика. В любом случае это хорошая отправная точка.

person Erwin    schedule 26.01.2015
comment
Клиентский код, сгенерированный прокси-сервером, создаваемый мобильными коннекторами, ограничен Silverlight, iOS, Java для Blackberry и Java для Android. К сожалению, код Silverlight нельзя использовать непосредственно в обычном приложении C#, а код Java нельзя использовать в клиентском приложении JavaScript или HTML 5. В конце концов, мы просто ожидаем и возвращаем данные в виде JSON в определенных форматах. Как разработчик клиентского приложения хочет обернуть эти данные в виде объектов, зависит от него. - person SiBrit; 13.02.2015