Pull to refresh

PHP Toolkit для ADO.NET Data Services — устраняем грани технологий: PHP + .NET

Reading time 2 min
Views 1.2K
Microsoft Interoperability team объявила о выходе нового проекта, который является мостом между PHP и .NET и еще больше стирает грани технологий. Этот проект позволяет разработчикам на PHP еще более проще обращаться и использовать всю мощь сервисов .NET на основе ADO.NET Data Services.

С точки зрения разработки схема выглядит достаточно классическим образом. В процессе разработки необходимо использовать утилиту PHPDataSvcUtil, которая входит в PHP Toolkit for ADO.NET Data Services. Эта утилита сгенерирует прокси-классы на PHP на основе метаданных, которые доступны для сервиса на базе ADO.NET Data Services. После этого к проекту на PHP также необходимо будет подключить библиотеки PHP Toolkit for ADO.NET Data Services. Далее, после всех этих несложных действий можно будет использовать всю мощь платформы ADO.NET Data Services в рамках приложений на PHP более удобным способом.

Давайте посмотрим каким образом будет выглядеть код на платформе PHP для выполнения запросов к ADO.NET Data Services. Прежде всего необходимо подключить файл с прокси-классами, которые сгененрированы с помощью утилиты PHPDataSvcUtil:

<?PHP
require_once 'NorthwindClient.php';
define("SERVICE_URI", "http://localhost:8080/Northwind.svc");
?>


После этого можно создавать объекты класса, реализующие логику клиента и осуществлять запросы к удаленному сервису. К сожалению, здесь мы не сможем воспользоваться синтаксисом LINQ для построения запросов к сервису. Поэтому запрос в виде URI придется написать вручную.

<?PHP
$client = new NorthwindEntities(SERVICE_URI);
$query = $client->ExecuteQuery("Customers?\$filter=Country eq 'UK'");
?>


Теперь, после успешного конструирования запроса можно обратиться за данными и вывести результат пользователю:

<?PHP
foreach($query as $customer)
{
echo "";
echo $customer->CustomerID;
echo "<br/>";
echo $customer->CompanyName;
echo "";
}
?>


Здесь хорошо видно, что мы обращаемся к строго типизированным объектам, а результат получаем в виде объектных коллекций. Такой способ очень похож на то, как мы работаем с сервисами ADO.NET Data Services в рамках .NET-клиента. Эти классы-сущности были также сгенерированы утилитой PHPDataSvcUtil.

Pablo Castro (program manager, ADO.NET Data Services) и Claudio Caldato (program manager, interoperability, techincal strategy team) сделали небольшой обзор этой библиотеки на Channel 9 (en), в котором они рассказывают чуть больше деталей.

Ну и наконец очень интересно то, что проект является проектом с открытым исходным кодом и доступен на CodePlex. Кроме того, проект разрабатывается компанией Persistent Systems, но оплачивается Microsoft.

Ссылки:
Tags:
Hubs:
+4
Comments 8
Comments Comments 8

Articles