Хочу поделиться с вами примером того как можно использовать такую удобную штуку как Thrift в своих .NET проектах.Для тех кто не знает, Thrift — это фреймворк для облегчения взаимодействия между кодом написанным на разных языках, а именно C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk и OCaml. Thrift используется и был изначально создан Facebook. Так же неоднократно упоминался здесь, на Хабре, но примеров для .NET я не нашел, кстати пошаговое руководство для .NET отсутствует и на официальном сайте. В гугле если честно, тоже не смог найти, хотя может плохо искал. Thrift позволяет один раз описать сервис, структуры данных и даже исключения, а потом сгенерировать код для всех поддерживаемых языков. Таким образом, если вы, например, напишете сервер с использованием Thrift на .NET, то вы Сэкономите кучу времени для написания клиент серверного приложения, например с использованием сокетов.
Почти автоматически получаете клиентов на всех поддерживаемых языках.В своем примере я реализую простейший сервис, который просто будет возвращать время. Но имея такой макет достаточно легко расширить его до чего-нибудь полезного.
Итак нам понадобится:
...
...Шаг 3: Генерируем код из .thrift файла
Опишем наш сервис и структуру данных. Для этого создадим файл TimeService.thrift с таким содержанием: namespace csharp TimeServer.Thrift //Structure for returning Time
struct TimeInfoStruct{
1: string Time
} //Service
service TimeService
{
TimeInfoStruct GetTime()
}
Read more: Habrahabr.ru
QR:
Почти автоматически получаете клиентов на всех поддерживаемых языках.В своем примере я реализую простейший сервис, который просто будет возвращать время. Но имея такой макет достаточно легко расширить его до чего-нибудь полезного.
Итак нам понадобится:
- Исходники Thrift — они нужны нам для того что бы собрать библиотеку (class library) для подключения в наш проект.
- Thrift компилятор — консольная утилита которая генерирует код на необходимом нам языке из .thrift файлов
...
...Шаг 3: Генерируем код из .thrift файла
Опишем наш сервис и структуру данных. Для этого создадим файл TimeService.thrift с таким содержанием: namespace csharp TimeServer.Thrift //Structure for returning Time
struct TimeInfoStruct{
1: string Time
} //Service
service TimeService
{
TimeInfoStruct GetTime()
}
Read more: Habrahabr.ru
QR: