Для проекта я должен реализовать связь между базой данных, размещенной на веб-сервере, и несколькими клиентами в Интернете. После прочтения немного и смотреть несколько вводных видео о возможных технологий (Microsoft), я понял, что я, кажется, есть (по крайней мере) три варианта:WCF, веб-службы или службы данных ADO.NET: что мне использовать?
1) Windows Communication Foundation (WCF)
2) ASP. NET Веб-службы
3) ADO.NET Data services
Поскольку я не знаком ни с одной из этих трех технологий, мне нужно учиться (надеюсь, только) один из них по глубине - и вопрос: какой?
Или, если быть точнее: какой из следующих задач?
Данные необходимо загрузить с клиента на сервер/базу данных, а также загрузить некоторые другие данные. На стороне клиента это не произойдет в интерактивном режиме пользователем, который работает в браузере, а скорее как автоматический процесс на клиенте, который будет запускаться периодически (каждые 2 часа, например).
а) на стороне веб-сервера будет:
- SQL-сервер базы данных
- .NET Framework 3.5 SP1
- класс библиотека, представляющая структуру базы данных и моделируется с помощью ADO.NET Entity Framework
- (Веб-приложение ASP.NET, которое будет представлять данные в базе данных в браузере: здесь я помещаю это в скобки, потому что это веб-приложение не имеет особого значения, поскольку указанные выше данные не будут запускаться через графический интерфейс браузера.)
b) Клиентская сторона менее ясна и должна быть более гибкой. Здесь я должен различать два требования:
I) Приоритет один (с точки зрения времени, у меня есть для развития):
- Клиентская сторона находится под моим контролем, это означает, что: у меня есть какой-либо ОС Windows на клиенте, я могу установить .NET Framework, и я могу решить создать службу Windows, консольное приложение, приложение Windows Forms или что-то еще. И у меня есть знания и доступ к библиотеке классов, упомянутой выше.
б) более низкий приоритет, но должен быть будущий вариант:
- мне нужно выставить любой вид описания интерфейса, который позволяет другим разработчикам создавать свои собственные приложения для загрузки/выгрузки данных.
- Клиенты, для которых другие разработчики могут работать, могут работать с любыми ОС (Windows, UNIX, MacOS и т. Д.). Также они должны быть как можно более свободными, чтобы выбрать свой предпочтительный язык программирования.
Из-за последнего момента, заставляющего разработчиков использовать .NET Framework на стороне клиента, не является вариантом. Коммуникация на стороне клиента должна быть любой «стандартной» технологией, доступной с различных платформ и языков.Я читал такие термины, как «SOAP», «REST» или «AtomPub» во время моих небольших исследований, и они кажутся своего рода стандартным протоколом или технологией связи (а не патентованным изобретением Microsoft). Но я не уверен и не знаю, какая технология «обновлена», «лучшее будущее», наиболее распространенное и известное, является самым мощным или самым простым в использовании (с точки зрения других возможных разработчики! Поэтому вопрос заключается в том, что я должен поддерживать, чтобы большинство разработчиков на стороне клиента были довольны).
Последний вопрос: безопасность важна! Загрузка/загрузка данных должна быть ограничена назначенными лицами. Невозможно использовать или исследовать интерфейс без соответствующих учетных данных.
Какая технология лучше всего использовать сейчас? (1), (2) или (3)? И почему вы порекомендовали бы его?
Большое спасибо за любой совет!
WCF может общаться практически с ** любой ** клиентской стороной - Ruby на Mac, iPhones, .NET, Java - вы называете это.Он поддерживает больше отраслевых стандартов, чем что-либо еще .... –