Понимание .NET веб-сервисов - PullRequest
1 голос
/ 15 июня 2011

В последнее время я смотрел на .net webservices (никогда раньше не пробовал), и я подумал, может ли кто-нибудь помочь мне разобраться в их работе чуть больше.

Прежде всего, я смотрел на asmx web services;я понимаю, что теперь это наследие, но я просто хочу обдумать это, затем я перейду к WCF, который я читал намного лучше / богаче.

Во-первых, действительно, я продолжаю видеть слово веб-сервиспрокси-сервер?Что это такое и какая часть моего решения это тоже ссылка?Когда я создаю свое решение, оно генерирует файл .asmx и файл DLL в каталоге binn.

Что делает DLL, если пользователи подключаются к файлу asmx?

Кроме того, у меня естьв прошлом ссылались на веб-сервисы asmx в последующих решениях .net и легко использовали их в моем коде.Могут ли веб-службы .net asmx использоваться с других платформ и языков, таких как PHP или Java, или они ограничены .net?

Извините за очень простые вопросы ... Я просто начинаю с id:)

Ответы [ 2 ]

4 голосов
/ 15 июня 2011

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

Файл ASMX состоит из двух элементов, один из которых является элементом кода, так же как ASPX имеет ASPX.CS в веб-форме ASP.NET .В этом примере, когда вы компилируете свой код, у вас все еще есть ASPX , но ASPX.CS скомпилирован в DLL для выполнения.NET время выполнения.То же самое с ASMX .

. При создании веб-службы ASMX вы получаете автоматически сгенерированный файл WSDL .это можно посмотреть, добавив '? wsdl' после вашего пути к веб-сервису. WSDL является стандартом и позволяет системам, отличным от .NET (Java, PHP в вашем примере), использовать веб-службу.

Надеюсь, это поможет!

1 голос
/ 15 июня 2011

Ну, ваши вопросы очень простые, но никто не родился со всеми знаниями, и я оглядываюсь назад на годы, когда у меня есть точные вопросы.


DLL файлы

Я не знаю, какой у вас мир программирования (PHP, Java и т. Д.), Но в языках программирования (PHP - это язык сценариев, как и Classic ASP), есть фрагменты кода, которые кто-то написал, иногда мы и мы просто «подключаем» этот код, чтобы использовать его.

В Java это .jar файлы, в .Net это .dll, они представляют код, к которому мы можем получить доступ и использовать. Мы называем это ссылками.

Каждый раз, когда вы компилируете проект, код генерируется, сжимается и компилируется, генерируя DLL.


Proxy

Если вы уже пользовались веб-службами в .NET, как вы упомянули, вы знаете, что, вероятно, вы добавили веб-ссылку и все, веб-служба готова к использованию ...

Хорошо, это действие сгенерировало Proxy , класс, извлеченный из определения веб-службы (WSDL), и теперь вы можете вызывать его просто

myWebServiceClient ws = new myWebServiceClient();
int total = ws.Add(1, 2);

Таким образом, в .NET, и поэтому вы можете использовать строго типизированные объекты, вы создаете прокси-сервер перед началом кодирования веб-службы, в Visual Studio это действие аналогично добавлению веб-ссылки в ваш проект.

Вы также можете сгенерировать прокси вручную, вызвав инструмент командной строки с именем svcutil.exe


Кроссплатформенные

Поскольку веб-службы используют общий язык, в данном случае SOAP любая платформа может использовать веб-службу, созданную на любой другой платформе, если они соответствуют стандартам SOAP.

Если вы знаете PHP, вы можете легко создать веб-сервис в Visual Studio, где он сгенерировал ваш файл asmx, и использовать его любой библиотекой SOAP в PHP, просто указав на созданное определение веб-сервиса, например

htttp://localhost:6543/myservice.asmx?wsdl
...