KISS: простое приложение на C #, которое взаимодействует с веб-сервисом RESTful - PullRequest
0 голосов
/ 18 сентября 2009

Следуя принципу KISS , я внезапно осознал следующее:

  • В .NET вы можете использовать Entity Model Framework для обтекания базы данных.
  • Эта модель может быть представлена ​​как веб-сервис через WCF.
  • Этот веб-сервис будет иметь очень стандартизированное определение.
  • Можно создать клиентское приложение, которое может использовать любой такой веб-сервис RESTful.

Я не хочу заново изобретать колесо, и меня не удивит, если кто-то уже сделал это, поэтому мой вопрос прост: Кто-нибудь уже создал простой (настольный, а не веб) клиент приложение, которое может использовать службу RESTful, основанное на Entity Framework и позволяющее пользователю читать и записывать данные непосредственно в эту службу?

В противном случае, я просто должен сам "изобрести" это. : -)


Проблема в том, что уровень базы данных и служба RESTful уже завершены. Служба RESTful останется в проекте только на этапе его разработки, поскольку мы можем использовать сборку уровня базы данных непосредственно из веб-приложений, построенных вокруг него. При развертывании веб-приложения службы RESTful просто не допускаются к развертыванию.

Но в базе данных имеется много данных для управления почти 50 таблицами. При разработке с использованием локальной базы данных мы можем иметь прямой доступ к базе данных, поэтому мне не понадобится этот инструмент для этого. После развертывания веб-приложение будет единственным способом доступа к данным, поэтому я не смог использовать этот инструмент. Но у нас также есть тестовый этап, когда база данных хранится в другой системе за пределами локального домена, и эта база данных недоступна для разработчиков. Только администраторы имеют прямой доступ к этой базе данных, что делает тесты немного более сложными.

Однако через службу RESTful я все еще могу получить доступ к данным напрямую. Таким образом, когда какой-то тест не проходит, я могу восстановить данные через это соединение или просто создать копию данных для тестов в моей локальной системе. Существует множество других функций, и даже можно просто открыть URL-адрес табличного сервиса прямо в Excel или XMLSpy, чтобы просмотреть его содержимое. Но когда я хочу что-то написать обратно, я должен написать специальный код, чтобы сделать это. Универсальный инструмент, который позволил бы мне получить доступ к данным и изменить их было бы легче. Так как это общая настройка для служб данных ADO.NET, это тоже должно быть достаточно просто.

Таким образом, я могу это сделать, но надеялся, что кто-то другой уже сделал нечто подобное. Но, похоже, такого инструмента еще не сделано ...

Ответы [ 2 ]

5 голосов
/ 18 сентября 2009

Вы имеете в виду ADO.Net Data Services . Он в основном создает модель базы данных сущностей и добавляет к службе интерфейс REST, используя ASMX. Статья MS To здесь , посвященная использованию сервиса с использованием .Net, доступна для ознакомления. В прошлом я также делал то же самое, используя обычно класс WebClient в .Net.

Вы также можете взглянуть на WCF REST Starter Kit , если вы хотите создать свой собственный пакет на основе Entity Framework. В стартовый комплект также входит удобный новый класс WebClient, который можно использовать для связи со службами REST.

Разъяснение

Я не знаю заранее готового клиентского приложения, которое бы общалось с этими службами, поскольку они в значительной степени получают доступ к данным с помощью веб-служб. Существует Microsoft Smart Client Factory, который, скорее всего, является самым близким, с которым я работал.

Я упомянул вышеупомянутые 2 варианта, поскольку у них уже есть библиотеки в .Net, которые работают с ними напрямую, либо в качестве ссылочной веб-службы, либо для более приключенческого, включая меня, с использованием библиотеки WebClient в качестве альтернативы новая библиотека HTTPClient в стартовом наборе WCF REST.

Я использовал оба в Windows, Web, Silverlight и WCF. Последние являются самыми легкими, поскольку они сосредоточены на REST.

В настоящее время мы исследуем Prism , который сильно склоняется к использованию этого метода при использовании WCF для фронтальной разработки.

Успение

Что касается этого вопроса, вы делаете общее предположение о том, что оборачивая ADO Entity Framework сервисом WCF, он будет универсальным. ADO.Net Data Services - самый близкий к вам сервис, однако структура базы данных в корне изменит то, как вы взаимодействуете с ней. Переход на более высокий уровень «общим» способом был бы опасен, так как эти две технологии, индивидуально или вместе, уже настолько универсальны, насколько это возможно.

2 голосов
/ 18 сентября 2009

В дополнение к службам данных (+1) рассмотрим службы RIA. Это похоже на доменную версию служб данных для клиентов Silverlight или WPF. Менее гибкий, но более простой, чем службы данных.

...